window.ExamData = window.ExamData || {};
window.ExamData['dp-700'] = {
  meta: {
    id: 'dp-700',
    title: {
      en: 'Implementing Analytics Solutions Using Microsoft Fabric',
      de: 'Implementierung von Analyselösungen mit Microsoft Fabric'
    },
    description: {
      en: 'This exam measures your ability to plan, implement, and manage analytics solutions using Microsoft Fabric, including data preparation, semantic models, and data exploration.',
      de: 'Diese Prüfung misst Ihre Fähigkeit, Analyselösungen mit Microsoft Fabric zu planen, implementieren und verwalten, einschließlich Datenaufbereitung, semantischer Modelle und Datenexploration.'
    },
    icon: '🔷',
    level: 'associate',
    passingScore: 700,
    totalTime: 120,
    questionCount: '40-60',
    msLearnUrl: 'https://learn.microsoft.com/en-us/certifications/exams/dp-700/',
    domains: [
      {
        name: {
          en: 'Plan, Implement, and Manage a Solution',
          de: 'Lösung planen, implementieren und verwalten'
        },
        weight: '10-15%'
      },
      {
        name: {
          en: 'Prepare and Serve Data',
          de: 'Daten vorbereiten und bereitstellen'
        },
        weight: '40-45%'
      },
      {
        name: {
          en: 'Implement and Manage Semantic Models',
          de: 'Semantische Modelle implementieren und verwalten'
        },
        weight: '20-25%'
      },
      {
        name: {
          en: 'Explore and Analyze Data',
          de: 'Daten erkunden und analysieren'
        },
        weight: '20-25%'
      }
    ]
  },
  questions: [
    {
      id: 'dp700-001', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Why should you assign a Fabric workspace to a capacity instead of relying only on shared capacity?',
        de: 'Warum sollten Sie einen Fabric-Arbeitsbereich einer Kapazität zuweisen, statt sich nur auf gemeinsame Kapazität zu verlassen?'
      },
      options: [
        { id: 'A', text: { en: 'It removes the need for workspace roles and permissions.', de: 'Dadurch entfallen Arbeitsbereichsrollen und Berechtigungen.' } },
        { id: 'B', text: { en: 'It provides dedicated compute and more predictable performance for Fabric workloads.', de: 'Sie erhalten dedizierte Rechenleistung und besser planbare Leistung für Fabric-Workloads.' } },
        { id: 'C', text: { en: 'It automatically stores data outside OneLake.', de: 'Daten werden dadurch automatisch außerhalb von OneLake gespeichert.' } },
        { id: 'D', text: { en: 'It forces all semantic models to use Import mode.', de: 'Dadurch werden alle semantischen Modelle in den Importmodus gezwungen.' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A Fabric capacity gives workloads dedicated compute resources, which improves isolation and makes performance more predictable than shared capacity. It also enables enterprise planning for concurrency, scale, and workload management. Workspace roles and storage behavior are separate concerns.',
        de: 'Eine Fabric-Kapazität stellt Workloads dedizierte Rechenressourcen bereit. Dadurch werden Workloads besser isoliert und die Leistung ist planbarer als bei gemeinsamer Kapazität. Außerdem unterstützt sie die Unternehmensplanung für Parallelität, Skalierung und Workload-Steuerung. Arbeitsbereichsrollen und Speicherverhalten sind davon getrennte Themen.'
      },
      hint: {
        en: 'Think about compute isolation and predictable performance.',
        de: 'Denken Sie an Compute-Isolation und planbare Leistung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/enterprise/licenses'
    },
    {
      id: 'dp700-002', type: 'multiple',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two actions improve governance of Fabric content in a workspace?',
        de: 'Welche zwei Maßnahmen verbessern die Governance von Fabric-Inhalten in einem Arbeitsbereich?'
      },
      options: [
        { id: 'A', text: { en: 'Apply sensitivity labels and use Purview lineage for key items.', de: 'Vergeben Sie Vertraulichkeitsbezeichnungen und nutzen Sie Purview-Lineage für wichtige Elemente.' } },
        { id: 'B', text: { en: 'Keep unmanaged source extracts on local desktops as the system of record.', de: 'Bewahren Sie unverwaltete Quellextrakte auf lokalen Desktops als führendes System auf.' } },
        { id: 'C', text: { en: 'Use Promoted or Certified endorsement for trusted data artifacts.', de: 'Verwenden Sie die Kennzeichnungen Hervorgehoben oder Zertifiziert für vertrauenswürdige Datenartefakte.' } },
        { id: 'D', text: { en: 'Grant every user the Admin role to simplify access.', de: 'Geben Sie jedem Benutzer die Rolle Administrator, um den Zugriff zu vereinfachen.' } }
      ],
      correct: ['A', 'C'],
      explanation: {
        en: 'Sensitivity labels and Purview lineage help classify and trace data across Fabric items. Endorsements such as Promoted and Certified help consumers identify trusted artifacts. Local copies and broad admin permissions weaken governance rather than improving it.',
        de: 'Vertraulichkeitsbezeichnungen und Purview-Lineage helfen dabei, Daten über Fabric-Elemente hinweg zu klassifizieren und nachzuverfolgen. Kennzeichnungen wie Hervorgehoben und Zertifiziert helfen Verbrauchern, vertrauenswürdige Artefakte zu erkennen. Lokale Kopien und weitreichende Administratorrechte schwächen die Governance statt sie zu verbessern.'
      },
      hint: {
        en: 'Look for features that increase trust, traceability, and controlled access.',
        de: 'Achten Sie auf Funktionen, die Vertrauen, Nachvollziehbarkeit und kontrollierten Zugriff erhöhen.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/governance/microsoft-purview-fabric'
    },
    {
      id: 'dp700-003', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'hard',
      scenario: {
        en: 'Datum Corporation runs notebooks, warehouse loads, and report activity on the same Fabric capacity. Business users complain that reports become slow every evening during ETL processing.',
        de: 'Datum Corporation führt Notebooks, Warehouse-Ladevorgänge und Berichtsnutzung auf derselben Fabric-Kapazität aus. Fachanwender beschweren sich, dass Berichte jeden Abend während der ETL-Verarbeitung langsam werden.'
      },
      question: {
        en: 'What should you do first to reduce contention and improve manageability?',
        de: 'Was sollten Sie zuerst tun, um Ressourcenkonflikte zu reduzieren und die Verwaltbarkeit zu verbessern?'
      },
      options: [
        { id: 'A', text: { en: 'Convert lakehouse tables to CSV files.', de: 'Konvertieren Sie Lakehouse-Tabellen in CSV-Dateien.' } },
        { id: 'B', text: { en: 'Separate workloads through workspace and capacity planning, then review capacity metrics.', de: 'Trennen Sie Workloads durch Arbeitsbereichs- und Kapazitätsplanung und prüfen Sie anschließend die Kapazitätsmetriken.' } },
        { id: 'C', text: { en: 'Replace notebooks with Excel macros.', de: 'Ersetzen Sie Notebooks durch Excel-Makros.' } },
        { id: 'D', text: { en: 'Remove semantic model relationships.', de: 'Entfernen Sie Beziehungen im semantischen Modell.' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'The issue points to compute contention on a shared capacity plan. The first step is to review workload placement, isolate heavy engineering activity where needed, and use capacity metrics to understand when and where pressure occurs. Changing file formats or model relationships does not address the root cause.',
        de: 'Das Problem deutet auf Compute-Konkurrenz innerhalb einer gemeinsam genutzten Kapazitätsplanung hin. Der erste Schritt ist, die Platzierung der Workloads zu prüfen, bei Bedarf rechenintensive Engineering-Aktivitäten zu isolieren und Kapazitätsmetriken zu verwenden, um Druckspitzen zeitlich und fachlich zu erkennen. Das Ändern von Dateiformaten oder Modellbeziehungen beseitigt die Ursache nicht.'
      },
      hint: {
        en: 'Start with workload isolation and monitoring before redesigning data objects.',
        de: 'Beginnen Sie mit Workload-Isolation und Überwachung, bevor Sie Datenobjekte neu gestalten.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/enterprise/licenses'
    },
    {
      id: 'dp700-004', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Fabric item combines file-based storage in OneLake with tables that can be queried by Spark and SQL?',
        de: 'Welches Fabric-Element kombiniert dateibasierte Speicherung in OneLake mit Tabellen, die per Spark und SQL abgefragt werden können?'
      },
      options: [
        { id: 'A', text: { en: 'Eventstream', de: 'Eventstream' } },
        { id: 'B', text: { en: 'Semantic model', de: 'Semantisches Modell' } },
        { id: 'C', text: { en: 'Lakehouse', de: 'Lakehouse' } },
        { id: 'D', text: { en: 'Dashboard', de: 'Dashboard' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'A Lakehouse stores files and Delta tables in OneLake while supporting both Spark-based engineering and SQL-based analytics. This dual-access pattern is one of the core advantages of Fabric for modern analytics solutions.',
        de: 'Ein Lakehouse speichert Dateien und Delta-Tabellen in OneLake und unterstützt gleichzeitig Spark-basiertes Engineering und SQL-basierte Analysen. Dieses Dual-Access-Muster ist einer der zentralen Vorteile von Fabric für moderne Analyselösungen.'
      },
      hint: {
        en: 'Think of the Fabric item designed for both data lake and warehouse-style access.',
        de: 'Denken Sie an das Fabric-Element, das sowohl für Data-Lake- als auch für Warehouse-Zugriff gedacht ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-overview'
    },
    {
      id: 'dp700-005', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is the main advantage of a OneLake shortcut to data in ADLS Gen2?',
        de: 'Was ist der Hauptvorteil einer OneLake-Verknüpfung zu Daten in ADLS Gen2?'
      },
      options: [
        { id: 'A', text: { en: 'It exposes the data without copying it into Fabric storage.', de: 'Die Daten werden verfügbar gemacht, ohne sie in den Fabric-Speicher zu kopieren.' } },
        { id: 'B', text: { en: 'It automatically converts every file to V-Order.', de: 'Jede Datei wird automatisch in V-Order konvertiert.' } },
        { id: 'C', text: { en: 'It turns streaming data into batch data.', de: 'Streamingdaten werden in Batchdaten umgewandelt.' } },
        { id: 'D', text: { en: 'It replaces role-based security with shortcut permissions only.', de: 'Rollenbasierte Sicherheit wird vollständig durch Shortcut-Berechtigungen ersetzt.' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Shortcuts virtualize access to data that already exists elsewhere, which reduces copies, latency, and storage sprawl. They do not automatically change file format or replace the broader security model.',
        de: 'Shortcuts virtualisieren den Zugriff auf Daten, die bereits an anderer Stelle vorhanden sind. Dadurch werden Kopien, Latenzen und Speicherwildwuchs reduziert. Sie ändern jedoch nicht automatisch das Dateiformat und ersetzen auch nicht das allgemeine Sicherheitsmodell.'
      },
      hint: {
        en: 'The best answer avoids unnecessary data duplication.',
        de: 'Die beste Antwort vermeidet unnötige Datenkopien.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts'
    },
    {
      id: 'dp700-006', type: 'multiple',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: {
        en: 'You work for Tailwind Traders. Combine an orchestrator with a transformation engine.',
        de: 'Sie arbeiten für Tailwind Traders. Kombinieren Sie einen Orchestrator mit einer Transformations-Engine.'
      },
      question: {
        en: 'Which two Fabric capabilities should you use?',
        de: 'Welche zwei Fabric-Funktionen sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Data pipeline activities with dependencies and retry policies', de: 'Data-Pipeline-Aktivitäten mit Abhängigkeiten und Wiederholungsrichtlinien' } },
        { id: 'B', text: { en: 'Notebooks or Dataflows Gen2 for transformation steps', de: 'Notebooks oder Dataflows Gen2 für die Transformationsschritte' } },
        { id: 'C', text: { en: 'Power BI bookmarks to orchestrate the process', de: 'Power-BI-Lesezeichen zur Orchestrierung des Prozesses' } },
        { id: 'D', text: { en: 'Eventstream as the standard orchestrator for nightly SFTP batch ingestion', de: 'Eventstream als Standard-Orchestrator für nächtliche SFTP-Batchaufnahme' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Fabric Data Factory pipelines are built for orchestration, dependency handling, and retries across multi-step data processes. Transformation logic fits naturally in notebooks or Dataflows Gen2 depending on whether you want code-first or low-code processing. Bookmarks and Eventstream are not the right orchestration tools for this batch pattern.',
        de: 'Fabric-Data-Factory-Pipelines sind für Orchestrierung, Abhängigkeitssteuerung und Wiederholungen in mehrstufigen Datenprozessen ausgelegt. Transformationslogik passt je nach Ansatz gut in Notebooks oder Dataflows Gen2, also code-first oder Low-Code. Lesezeichen und Eventstream sind für dieses Batchmuster nicht die passenden Orchestrierungswerkzeuge.'
      },
      hint: {
        en: 'Combine an orchestrator with a transformation engine.',
        de: 'Kombinieren Sie einen Orchestrator mit einer Transformations-Engine.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/pipeline-overview'
    },
    {
      id: 'dp700-007', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statement best describes Dataflows Gen2 in Fabric?',
        de: 'Welche Aussage beschreibt Dataflows Gen2 in Fabric am besten?'
      },
      options: [
        { id: 'A', text: { en: 'They are used only for real-time event routing.', de: 'Sie werden ausschließlich für das Routing von Echtzeitereignissen verwendet.' } },
        { id: 'B', text: { en: 'They can transform data only inside semantic models.', de: 'Sie können Daten nur innerhalb semantischer Modelle transformieren.' } },
        { id: 'C', text: { en: 'They require Spark code for every step.', de: 'Sie erfordern für jeden Schritt Spark-Code.' } },
        { id: 'D', text: { en: 'They use Power Query to ingest and transform data and can load it to destinations such as Lakehouse or Warehouse.', de: 'Sie verwenden Power Query zur Aufnahme und Transformation von Daten und können diese in Ziele wie Lakehouse oder Warehouse laden.' } }
      ],
      correct: ['D'],
      explanation: {
        en: 'Dataflows Gen2 are a low-code data integration capability based on Power Query. They support many sources, rich transformations, and multiple destinations, which makes them useful for preparation tasks in Fabric analytics solutions.',
        de: 'Dataflows Gen2 sind eine Low-Code-Funktion zur Datenintegration auf Basis von Power Query. Sie unterstützen viele Quellen, umfangreiche Transformationen und mehrere Ziele und sind daher sehr nützlich für Vorbereitungsaufgaben in Fabric-Analyselösungen.'
      },
      hint: {
        en: 'Focus on the low-code transformation experience in Fabric.',
        de: 'Konzentrieren Sie sich auf die Low-Code-Transformationserfahrung in Fabric.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/dataflows-gen2-overview'
    },
    {
      id: 'dp700-008', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why would an analyst use the SQL analytics endpoint of a Lakehouse?',
        de: 'Warum würde ein Analyst den SQL-Analyseendpunkt eines Lakehouse verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'To manage workspace permissions', de: 'Um Arbeitsbereichsberechtigungen zu verwalten' } },
        { id: 'B', text: { en: 'To query Delta tables with T-SQL without moving data', de: 'Um Delta-Tabellen mit T-SQL abzufragen, ohne Daten zu verschieben' } },
        { id: 'C', text: { en: 'To publish mobile dashboards', de: 'Um mobile Dashboards zu veröffentlichen' } },
        { id: 'D', text: { en: 'To author KQL functions', de: 'Um KQL-Funktionen zu erstellen' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'The SQL analytics endpoint automatically provides a read-only T-SQL surface over lakehouse Delta tables. This lets SQL users analyze data without writing Spark code or creating extra copies of the same data.',
        de: 'Der SQL-Analyseendpunkt stellt automatisch eine schreibgeschützte T-SQL-Oberfläche über Delta-Tabellen im Lakehouse bereit. Dadurch können SQL-Anwender Daten analysieren, ohne Spark-Code zu schreiben oder zusätzliche Datenkopien anzulegen.'
      },
      hint: {
        en: 'Think about T-SQL access over the same Delta data.',
        de: 'Denken Sie an T-SQL-Zugriff auf dieselben Delta-Daten.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-sql-analytics-endpoint'
    },
    {
      id: 'dp700-009', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which notebook language is commonly used in Fabric to perform distributed data transformations on large datasets?',
        de: 'Welche Notebook-Sprache wird in Fabric häufig verwendet, um verteilte Datentransformationen auf großen Datensätzen durchzuführen?'
      },
      options: [
        { id: 'A', text: { en: 'MDX', de: 'MDX' } },
        { id: 'B', text: { en: 'M', de: 'M' } },
        { id: 'C', text: { en: 'PySpark', de: 'PySpark' } },
        { id: 'D', text: { en: 'HTML', de: 'HTML' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Fabric notebooks are a primary environment for Apache Spark development, and PySpark is one of the most common languages used for large-scale data engineering tasks. It is well suited for transformation, cleansing, and loading patterns in lakehouse architectures.',
        de: 'Fabric-Notebooks sind eine zentrale Umgebung für die Entwicklung mit Apache Spark, und PySpark gehört zu den am häufigsten verwendeten Sprachen für groß angelegte Data-Engineering-Aufgaben. Es eignet sich sehr gut für Transformations-, Bereinigungs- und Lademuster in Lakehouse-Architekturen.'
      },
      hint: {
        en: 'Choose the Spark-oriented programming language.',
        de: 'Wählen Sie die Spark-orientierte Programmiersprache.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/author-execute-notebook'
    },
    {
      id: 'dp700-010', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: {
        en: 'You work for Datum Corporation. Look for a table-level optimization that keeps Delta in place.',
        de: 'Datum Corporation – Ihre kuratierten Delta-Tabellen in einem Lakehouse sind sehr groß, und Benutzer melden eine geringere Lesegeschwindigkeit als erwartet. Sie müssen das offene Delta-Format beibehalten und die Abfrageeffizienz verbessern.'
      },
      question: {
        en: 'Which optimization should you apply?',
        de: 'Welche Optimierung sollten Sie anwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Enable V-Order on the Delta tables', de: 'Aktivieren Sie V-Order für die Delta-Tabellen' } },
        { id: 'B', text: { en: 'Export the tables to CSV', de: 'Exportieren Sie die Tabellen nach CSV' } },
        { id: 'C', text: { en: 'Switch notebooks to R scripts', de: 'Stellen Sie die Notebooks auf R-Skripte um' } },
        { id: 'D', text: { en: 'Disable parquet compression', de: 'Deaktivieren Sie die Parquet-Komprimierung' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'V-Order is a Fabric optimization for Delta and Parquet data that can improve read performance for analytics workloads. It preserves the open table format while helping downstream consumption engines scan and decode data more efficiently.',
        de: 'V-Order ist eine Fabric-Optimierung für Delta- und Parquet-Daten, die die Leseleistung für analytische Workloads verbessern kann. Das offene Tabellenformat bleibt erhalten, während nachgelagerte Verarbeitungs-Engines Daten effizienter scannen und dekodieren können.'
      },
      hint: {
        en: 'Look for a table-level optimization that keeps Delta in place.',
        de: 'Suchen Sie nach einer tabellenbezogenen Optimierung, die Delta beibehält.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/delta-optimization-and-v-order'
    },
    {
      id: 'dp700-011', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You need a strongly typed relational store with T-SQL-centric development and star-schema design for enterprise reporting. Which Fabric item fits best?',
        de: 'Sie benötigen einen stark typisierten relationalen Speicher mit T-SQL-zentrierter Entwicklung und Sternschema-Design für Unternehmensberichte. Welches Fabric-Element passt am besten?'
      },
      options: [
        { id: 'A', text: { en: 'KQL database', de: 'KQL-Datenbank' } },
        { id: 'B', text: { en: 'Dataflow Gen2', de: 'Dataflow Gen2' } },
        { id: 'C', text: { en: 'Lakehouse shortcut', de: 'Lakehouse-Shortcut' } },
        { id: 'D', text: { en: 'Data Warehouse', de: 'Data Warehouse' } }
      ],
      correct: ['D'],
      explanation: {
        en: 'Fabric Data Warehouse is designed for enterprise relational analytics with T-SQL authoring, warehouse patterns, and governed consumption. It is the best choice when the workload centers on curated relational tables and reporting-ready schemas.',
        de: 'Fabric Data Warehouse ist für relationale Unternehmensanalysen mit T-SQL-Entwicklung, Warehouse-Mustern und kontrolliertem Datenkonsum ausgelegt. Es ist die beste Wahl, wenn sich der Workload auf kuratierte relationale Tabellen und berichtsfertige Schemata konzentriert.'
      },
      hint: {
        en: 'Choose the Fabric item optimized for warehouse-style relational design.',
        de: 'Wählen Sie das Fabric-Element, das für relationale Warehouse-Designs optimiert ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/data-warehousing'
    },
    {
      id: 'dp700-012', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'What does OneLake provide to Fabric workloads?',
        de: 'Was stellt OneLake Fabric-Workloads zur Verfügung?'
      },
      options: [
        { id: 'A', text: { en: 'Separate storage accounts for every workspace by default', de: 'Standardmäßig getrennte Speicherkonten für jeden Arbeitsbereich' } },
        { id: 'B', text: { en: 'A single logical data lake for the entire organization', de: 'Einen einzigen logischen Data Lake für die gesamte Organisation' } },
        { id: 'C', text: { en: 'A semantic model for every lakehouse table automatically', de: 'Automatisch ein semantisches Modell für jede Lakehouse-Tabelle' } },
        { id: 'D', text: { en: 'A replacement for Microsoft Entra ID', de: 'Einen Ersatz für Microsoft Entra ID' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'OneLake is the unified logical data lake for Microsoft Fabric. It supports the idea of one copy of data for multiple analytical experiences and reduces fragmentation across teams and workloads.',
        de: 'OneLake ist der einheitliche logische Data Lake von Microsoft Fabric. Er unterstützt die Idee einer einzigen Datenkopie für mehrere analytische Nutzungsszenarien und reduziert die Fragmentierung über Teams und Workloads hinweg.'
      },
      hint: {
        en: 'Think of OneLake as the shared foundation for Fabric storage.',
        de: 'Betrachten Sie OneLake als gemeinsame Grundlage für den Fabric-Speicher.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/onelake/onelake-overview'
    },
    {
      id: 'dp700-013', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Why are Delta tables preferred over loose CSV files for curated Fabric data?',
        de: 'Warum werden Delta-Tabellen für kuratierte Fabric-Daten gegenüber lose abgelegten CSV-Dateien bevorzugt?'
      },
      options: [
        { id: 'A', text: { en: 'Delta can be read only by Spark, which improves isolation.', de: 'Delta kann nur von Spark gelesen werden, was die Isolation verbessert.' } },
        { id: 'B', text: { en: 'Delta eliminates the need for schema design.', de: 'Delta macht Schema-Design überflüssig.' } },
        { id: 'C', text: { en: 'Delta supports ACID transactions, schema enforcement, and efficient operations such as MERGE.', de: 'Delta unterstützt ACID-Transaktionen, Schemakontrolle und effiziente Operationen wie MERGE.' } },
        { id: 'D', text: { en: 'Delta stores only aggregated data, which reduces model size.', de: 'Delta speichert nur aggregierte Daten, was die Modellgröße reduziert.' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Delta Lake adds transactional consistency, schema validation, and update-friendly behavior on top of file storage. Those capabilities are essential for curated data products that require reliable pipelines, incremental processing, and shared analytical consumption.',
        de: 'Delta Lake ergänzt dateibasierte Speicherung um Transaktionskonsistenz, Schemavalidierung und ein updatefreundliches Verhalten. Diese Fähigkeiten sind für kuratierte Datenprodukte entscheidend, wenn zuverlässige Pipelines, inkrementelle Verarbeitung und gemeinsame analytische Nutzung erforderlich sind.'
      },
      hint: {
        en: 'Choose the answer that highlights reliability and managed updates.',
        de: 'Wählen Sie die Antwort, die Zuverlässigkeit und verwaltete Aktualisierungen hervorhebt.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-and-delta-tables'
    },
    {
      id: 'dp700-014', type: 'multiple',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: {
        en: 'At Datum Corporation, a Fabric pipeline runs a notebook, then loads a warehouse table, and finally sends a notification email. The email must be sent only after the earlier steps succeed, and transient load failures should retry automatically.',
        de: 'Bei Datum Corporation: eine Fabric-Pipeline führt ein Notebook aus, lädt dann eine Warehouse-Tabelle und sendet anschließend eine Benachrichtigungs-E-Mail. Die E-Mail darf nur gesendet werden, wenn die vorherigen Schritte erfolgreich waren, und vorübergehende Ladefehler sollen automatisch erneut versucht werden.'
      },
      question: {
        en: 'Which two pipeline features should you configure?',
        de: 'Welche zwei Pipeline-Funktionen sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'Activity dependencies between the notebook, load, and notification steps', de: 'Aktivitätsabhängigkeiten zwischen Notebook-, Lade- und Benachrichtigungsschritten' } },
        { id: 'B', text: { en: 'Deployment pipelines for every retry', de: 'Deployment-Pipelines für jeden Wiederholungsversuch' } },
        { id: 'C', text: { en: 'Warehouse roles on the email step', de: 'Warehouse-Rollen auf dem E-Mail-Schritt' } },
        { id: 'D', text: { en: 'Retry settings on the warehouse load activity', de: 'Wiederholungseinstellungen für die Warehouse-Ladeaktivität' } }
      ],
      correct: ['A', 'D'],
      explanation: {
        en: 'Dependencies control execution order and success conditions between activities. Retry settings handle transient failures without forcing you to rerun the whole pipeline manually. Deployment pipelines and warehouse roles do not solve the operational behavior described in the scenario.',
        de: 'Abhängigkeiten steuern Ausführungsreihenfolge und Erfolgsbedingungen zwischen Aktivitäten. Wiederholungseinstellungen behandeln vorübergehende Fehler, ohne dass die gesamte Pipeline manuell erneut ausgeführt werden muss. Deployment-Pipelines und Warehouse-Rollen lösen das im Szenario beschriebene Betriebsverhalten nicht.'
      },
      hint: {
        en: 'One feature handles order, and the other handles transient failures.',
        de: 'Eine Funktion steuert die Reihenfolge, die andere behandelt vorübergehende Fehler.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/pipeline-overview'
    },
    {
      id: 'dp700-015', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is the main benefit of Direct Lake mode in a Fabric semantic model?',
        de: 'Was ist der Hauptvorteil des Direct-Lake-Modus in einem semantischen Modell von Fabric?'
      },
      options: [
        { id: 'A', text: { en: 'It forces data to be cached as imported copies at every refresh.', de: 'Daten werden bei jeder Aktualisierung zwangsweise als importierte Kopien zwischengespeichert.' } },
        { id: 'B', text: { en: 'It can read Delta tables in OneLake with near-import performance and minimal duplication.', de: 'Es kann Delta-Tabellen in OneLake mit nahezu Import-Leistung und minimaler Datenverdopplung lesen.' } },
        { id: 'C', text: { en: 'It works only with KQL databases.', de: 'Es funktioniert nur mit KQL-Datenbanken.' } },
        { id: 'D', text: { en: 'It removes the need for DAX measures.', de: 'Es macht DAX-Measures überflüssig.' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Direct Lake lets semantic models access data directly from Delta tables in OneLake while still delivering very fast interactive analysis. This reduces the need to duplicate large datasets into traditional import caches and shortens the path from prepared data to reporting.',
        de: 'Direct Lake ermöglicht semantischen Modellen den direkten Zugriff auf Daten aus Delta-Tabellen in OneLake und liefert dennoch sehr schnelle interaktive Analysen. Dadurch sinkt die Notwendigkeit, große Datensätze in klassische Import-Caches zu duplizieren, und der Weg von vorbereiteten Daten zum Reporting wird verkürzt.'
      },
      hint: {
        en: 'Think about low duplication and fast analytics on OneLake data.',
        de: 'Denken Sie an geringe Datenverdopplung und schnelle Analysen auf OneLake-Daten.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/get-started/direct-lake-overview'
    },
    {
      id: 'dp700-016', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'In a typical star schema semantic model, how are relationships usually defined between dimensions and a fact table?',
        de: 'Wie werden Beziehungen in einem typischen Sternschema-Modell normalerweise zwischen Dimensionen und einer Faktentabelle definiert?'
      },
      options: [
        { id: 'A', text: { en: 'One-to-many from each dimension to the fact table', de: 'Eins-zu-viele von jeder Dimension zur Faktentabelle' } },
        { id: 'B', text: { en: 'Many-to-many between every table', de: 'Viele-zu-viele zwischen allen Tabellen' } },
        { id: 'C', text: { en: 'One-to-one from fact to dimension', de: 'Eins-zu-eins von der Faktentabelle zur Dimension' } },
        { id: 'D', text: { en: 'No relationships, only calculated columns', de: 'Keine Beziehungen, nur berechnete Spalten' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A well-designed star schema typically has one-to-many relationships from dimensions to the fact table, usually with single-direction filtering from dimension to fact. This structure simplifies filtering, improves usability, and generally supports better performance.',
        de: 'Ein gut entworfenes Sternschema besitzt typischerweise Eins-zu-viele-Beziehungen von Dimensionen zur Faktentabelle, in der Regel mit einseitiger Filterrichtung von der Dimension zur Faktentabelle. Diese Struktur vereinfacht Filterung, verbessert die Nutzbarkeit und unterstützt meist eine bessere Leistung.'
      },
      hint: {
        en: 'Dimensions describe facts and usually filter them.',
        de: 'Dimensionen beschreiben Fakten und filtern diese normalerweise.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-017', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which DAX measure correctly calculates year-to-date sales when [Total Sales] already exists and a marked Date table named Date is available?',
        de: 'Welche DAX-Measure berechnet den Jahresanfang-bis-heute-Umsatz korrekt, wenn [Total Sales] bereits existiert und eine als Datumstabelle markierte Tabelle Date verfügbar ist?'
      },
      options: [
        { id: 'A', text: { en: 'SUMYTD([Total Sales])', de: 'SUMYTD([Total Sales])' } },
        { id: 'B', text: { en: 'CALCULATE([Total Sales], YEAR(Date[Date]))', de: 'CALCULATE([Total Sales], YEAR(Date[Date]))' } },
        { id: 'C', text: { en: 'TOTALYTD([Total Sales], Date[Date])', de: 'TOTALYTD([Total Sales], Date[Date])' } },
        { id: 'D', text: { en: 'COUNTROWS(DATESYTD(Date[Date]))', de: 'COUNTROWS(DATESYTD(Date[Date]))' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'TOTALYTD is the correct time-intelligence function here because it evaluates the existing [Total Sales] measure over the year-to-date period defined by the Date table. The other expressions are syntactically incorrect for this purpose or return something different from sales.',
        de: 'TOTALYTD ist hier die richtige Time-Intelligence-Funktion, weil sie die vorhandene Measure [Total Sales] über den von der Datumstabelle definierten Zeitraum seit Jahresbeginn auswertet. Die anderen Ausdrücke sind für diesen Zweck entweder syntaktisch ungeeignet oder liefern etwas anderes als Umsätze zurück.'
      },
      hint: {
        en: 'Use a time-intelligence function that wraps the existing measure and a date column.',
        de: 'Verwenden Sie eine Time-Intelligence-Funktion, die die vorhandene Measure und eine Datumsspalte umschließt.'
      },
      reference: 'https://learn.microsoft.com/en-us/dax/totalytd-function-dax'
    },
    {
      id: 'dp700-018', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: {
        en: 'At Tailwind Traders, regional managers must see only rows for their own region in reports built on a shared semantic model, while executives must see all regions.',
        de: 'Bei Tailwind Traders: regionale Manager dürfen in Berichten auf Basis eines gemeinsam genutzten semantischen Modells nur Zeilen ihrer eigenen Region sehen, während Führungskräfte alle Regionen sehen müssen.'
      },
      question: {
        en: 'What is the best implementation approach?',
        de: 'Was ist der beste Implementierungsansatz?'
      },
      options: [
        { id: 'A', text: { en: 'Create separate lakehouses for each region.', de: 'Erstellen Sie separate Lakehouses für jede Region.' } },
        { id: 'B', text: { en: 'Use bookmarks to hide visuals for other regions.', de: 'Verwenden Sie Lesezeichen, um Visuals anderer Regionen auszublenden.' } },
        { id: 'C', text: { en: 'Apply V-Order to the region column.', de: 'Wenden Sie V-Order auf die Regionsspalte an.' } },
        { id: 'D', text: { en: 'Implement dynamic RLS with a user-to-region mapping table and USERPRINCIPALNAME().', de: 'Implementieren Sie dynamische RLS mit einer Zuordnungstabelle Benutzer-zu-Region und USERPRINCIPALNAME().' } }
      ],
      correct: ['D'],
      explanation: {
        en: 'Dynamic row-level security is designed for exactly this type of requirement. A mapping table and USERPRINCIPALNAME() allow the model to filter rows based on the signed-in user, while still keeping one shared semantic model for the organization.',
        de: 'Dynamische Row-Level-Security ist genau für diese Anforderung gedacht. Eine Zuordnungstabelle und USERPRINCIPALNAME() ermöglichen es dem Modell, Zeilen anhand des angemeldeten Benutzers zu filtern und trotzdem ein gemeinsames semantisches Modell für die gesamte Organisation beizubehalten.'
      },
      hint: {
        en: 'Use security rules inside the semantic model, not visual tricks.',
        de: 'Nutzen Sie Sicherheitsregeln im semantischen Modell und keine visuellen Tricks.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/enterprise/service-admin-rls'
    },
    {
      id: 'dp700-019', type: 'multiple',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two practices improve semantic model performance and maintainability?',
        de: 'Welche zwei Vorgehensweisen verbessern Leistung und Wartbarkeit eines semantischen Modells?'
      },
      options: [
        { id: 'A', text: { en: 'Model data as a star schema with clear dimension and fact tables.', de: 'Modellieren Sie Daten als Sternschema mit klaren Dimensionen und Faktentabellen.' } },
        { id: 'B', text: { en: 'Enable bi-directional filtering on every relationship by default.', de: 'Aktivieren Sie standardmäßig bidirektionale Filterung für jede Beziehung.' } },
        { id: 'C', text: { en: 'Prefer measures for business logic instead of storing every calculation as a column.', de: 'Bevorzugen Sie Measures für Geschäftslogik, anstatt jede Berechnung als Spalte zu speichern.' } },
        { id: 'D', text: { en: 'Load every staging table into the model even if it is never used.', de: 'Laden Sie jede Staging-Tabelle in das Modell, auch wenn sie nie verwendet wird.' } }
      ],
      correct: ['A', 'C'],
      explanation: {
        en: 'Star schemas reduce ambiguity and make filtering patterns easier to understand and optimize. Measures are usually more flexible and storage-efficient than materializing every business calculation as a physical column. Blanket bi-directional filtering and unused tables often increase complexity and hurt performance.',
        de: 'Sternschemata reduzieren Mehrdeutigkeiten und machen Filtermuster leichter verständlich und optimierbar. Measures sind in der Regel flexibler und speichereffizienter, als jede Geschäftsberechnung als physische Spalte zu materialisieren. Generell aktivierte bidirektionale Filterung und ungenutzte Tabellen erhöhen häufig die Komplexität und verschlechtern die Leistung.'
      },
      hint: {
        en: 'Choose design practices that keep the model lean and understandable.',
        de: 'Wählen Sie Designpraktiken, die das Modell schlank und verständlich halten.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-020', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which language do you use to query data in a Fabric KQL database or Eventhouse?',
        de: 'Welche Sprache verwenden Sie, um Daten in einer Fabric-KQL-Datenbank oder einem Eventhouse abzufragen?'
      },
      options: [
        { id: 'A', text: { en: 'T-SQL', de: 'T-SQL' } },
        { id: 'B', text: { en: 'KQL', de: 'KQL' } },
        { id: 'C', text: { en: 'DAX', de: 'DAX' } },
        { id: 'D', text: { en: 'M', de: 'M' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Kusto Query Language, or KQL, is the query language used in Real-Time Analytics for KQL databases and Eventhouse scenarios. It is optimized for fast exploration of structured, semi-structured, and time-series data.',
        de: 'Die Kusto Query Language, kurz KQL, ist die Abfragesprache in Real-Time Analytics für KQL-Datenbanken und Eventhouse-Szenarien. Sie ist für die schnelle Analyse strukturierter, semistrukturierter und zeitbezogener Daten optimiert.'
      },
      hint: {
        en: 'Use the language native to Kusto-based analytics.',
        de: 'Verwenden Sie die Sprache, die nativ zu Kusto-basierter Analyse gehört.'
      },
      reference: 'https://learn.microsoft.com/en-us/kusto/query/?view=microsoft-fabric'
    },
    {
      id: 'dp700-021', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is a common purpose of Eventstream in Fabric?',
        de: 'Was ist ein typischer Einsatzzweck von Eventstream in Fabric?'
      },
      options: [
        { id: 'A', text: { en: 'Ingest and route streaming events to destinations such as Eventhouse or Lakehouse', de: 'Streamingereignisse aufnehmen und an Ziele wie Eventhouse oder Lakehouse weiterleiten' } },
        { id: 'B', text: { en: 'Create many-to-many relationships in semantic models', de: 'Viele-zu-viele-Beziehungen in semantischen Modellen erstellen' } },
        { id: 'C', text: { en: 'Optimize Delta tables with V-Order', de: 'Delta-Tabellen mit V-Order optimieren' } },
        { id: 'D', text: { en: 'Manage workspace role assignments', de: 'Arbeitsbereichsrollen verwalten' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Eventstream is designed to bring in streaming events, optionally transform them, and deliver them to supported Fabric destinations. It is part of the real-time path, not a modeling or workspace administration feature.',
        de: 'Eventstream ist dafür vorgesehen, Streamingereignisse aufzunehmen, optional zu transformieren und an unterstützte Fabric-Ziele weiterzuleiten. Es gehört zum Echtzeitpfad und ist keine Funktion für Modellierung oder Arbeitsbereichsverwaltung.'
      },
      hint: {
        en: 'Think about real-time ingestion and routing.',
        de: 'Denken Sie an Echtzeitaufnahme und Weiterleitung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-streams/overview'
    },
    {
      id: 'dp700-022', type: 'multiple',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: {
        en: 'At Datum Corporation, ioT telemetry arrives continuously. You need to calculate the average temperature per device over the last five minutes and expose the result with low latency for analysis.',
        de: 'Bei Datum Corporation: ioT-Telemetrie trifft kontinuierlich ein. Sie müssen die durchschnittliche Temperatur pro Gerät über die letzten fünf Minuten berechnen und das Ergebnis mit geringer Latenz für Analysen bereitstellen.'
      },
      question: {
        en: 'Which two Fabric capabilities are most appropriate?',
        de: 'Welche zwei Fabric-Funktionen sind am besten geeignet?'
      },
      options: [
        { id: 'A', text: { en: 'Dataflow Gen2 scheduled once per day', de: 'Dataflow Gen2 mit täglicher Ausführung' } },
        { id: 'B', text: { en: 'Eventstream to ingest and route the telemetry', de: 'Eventstream zur Aufnahme und Weiterleitung der Telemetrie' } },
        { id: 'C', text: { en: 'KQL queries using summarize with time binning', de: 'KQL-Abfragen mit summarize und Zeit-Binning' } },
        { id: 'D', text: { en: 'Manual CSV loads into a warehouse every hour', de: 'Manuelle CSV-Ladevorgänge in ein Warehouse jede Stunde' } }
      ],
      correct: ['B', 'C'],
      explanation: {
        en: 'This scenario is a classic real-time analytics use case. Eventstream handles ingestion and routing of the telemetry, while KQL is well suited to low-latency windowed aggregations such as average values over recent time bins.',
        de: 'Dieses Szenario ist ein klassischer Anwendungsfall für Echtzeitanalysen. Eventstream übernimmt die Aufnahme und Weiterleitung der Telemetrie, während KQL sehr gut für latenzarme Fensteraggregationen wie Durchschnittswerte über aktuelle Zeitintervalle geeignet ist.'
      },
      hint: {
        en: 'Pair a streaming ingestion service with a time-series query language.',
        de: 'Kombinieren Sie einen Streaming-Aufnahmedienst mit einer Sprache für Zeitreihenabfragen.'
      },
      reference: 'https://learn.microsoft.com/en-us/kusto/query/?view=microsoft-fabric'
    },
    {
      id: 'dp700-023', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'An analyst wants interactive Power BI reports that reuse centralized measures and security already defined in Fabric. What should the report connect to?',
        de: 'Ein Analyst möchte interaktive Power-BI-Berichte erstellen, die zentral definierte Measures und Sicherheit aus Fabric wiederverwenden. Womit sollte der Bericht verbunden werden?'
      },
      options: [
        { id: 'A', text: { en: 'The capacity metrics app', de: 'Der Kapazitätsmetriken-App' } },
        { id: 'B', text: { en: 'A raw CSV export from the lakehouse', de: 'Einem rohen CSV-Export aus dem Lakehouse' } },
        { id: 'C', text: { en: 'The notebook session', de: 'Der Notebook-Sitzung' } },
        { id: 'D', text: { en: 'The Fabric semantic model', de: 'Dem semantischen Modell in Fabric' } }
      ],
      correct: ['D'],
      explanation: {
        en: 'A semantic model is the reusable analytical layer for Power BI reports. It centralizes measures, relationships, and security rules so multiple reports can use the same governed business logic instead of rebuilding it in each report.',
        de: 'Ein semantisches Modell ist die wiederverwendbare analytische Schicht für Power-BI-Berichte. Es zentralisiert Measures, Beziehungen und Sicherheitsregeln, sodass mehrere Berichte dieselbe kontrollierte Geschäftslogik nutzen können, anstatt sie in jedem Bericht neu aufzubauen.'
      },
      hint: {
        en: 'Connect to the governed analytical layer, not to a raw export.',
        de: 'Verbinden Sie sich mit der kontrollierten analytischen Schicht und nicht mit einem Rohdatenexport.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/get-started/direct-lake-overview'
    },
    {
      id: 'dp700-024', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which option lets T-SQL users explore Lakehouse data without writing Spark code?',
        de: 'Welche Option ermöglicht es T-SQL-Benutzern, Lakehouse-Daten zu erkunden, ohne Spark-Code zu schreiben?'
      },
      options: [
        { id: 'A', text: { en: 'Query the SQL analytics endpoint', de: 'Abfragen über den SQL-Analyseendpunkt' } },
        { id: 'B', text: { en: 'Create a Dataflow Gen2 only', de: 'Ausschließlich einen Dataflow Gen2 erstellen' } },
        { id: 'C', text: { en: 'Use a KQL dashboard', de: 'Ein KQL-Dashboard verwenden' } },
        { id: 'D', text: { en: 'Open the Eventstream designer', de: 'Den Eventstream-Designer öffnen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The SQL analytics endpoint exposes lakehouse Delta tables through T-SQL, which makes the data approachable for analysts with SQL skills. This is the correct choice when the requirement is exploration through SQL rather than Spark notebooks.',
        de: 'Der SQL-Analyseendpunkt stellt Delta-Tabellen aus dem Lakehouse per T-SQL bereit und macht die Daten damit für Analysten mit SQL-Kenntnissen gut nutzbar. Das ist die richtige Wahl, wenn die Anforderung in SQL-basierter Exploration und nicht in Spark-Notebooks besteht.'
      },
      hint: {
        en: 'Pick the feature that gives SQL access directly over lakehouse tables.',
        de: 'Wählen Sie die Funktion, die direkten SQL-Zugriff auf Lakehouse-Tabellen bietet.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-sql-analytics-endpoint'
    },
    {
      id: 'dp700-025', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'How does Microsoft Purview add value for data discovery and governance in Fabric?',
        de: 'Wie schafft Microsoft Purview Mehrwert für Datenermittlung und Governance in Fabric?'
      },
      options: [
        { id: 'A', text: { en: 'It replaces OneLake shortcuts with physical copies.', de: 'Es ersetzt OneLake-Shortcuts durch physische Kopien.' } },
        { id: 'B', text: { en: 'It schedules notebook sessions automatically.', de: 'Es plant Notebooksitzungen automatisch.' } },
        { id: 'C', text: { en: 'It provides lineage, catalog, and governance context across Fabric items.', de: 'Es liefert Lineage-, Katalog- und Governance-Kontext über Fabric-Elemente hinweg.' } },
        { id: 'D', text: { en: 'It converts Direct Lake models to Import mode.', de: 'Es konvertiert Direct-Lake-Modelle in den Importmodus.' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Purview complements Fabric by helping users discover data assets, understand lineage, and apply governance context across the analytical estate. This improves trust and helps analysts find the right data products more quickly.',
        de: 'Purview ergänzt Fabric, indem es Benutzern hilft, Datenbestände zu finden, Lineage nachzuvollziehen und Governance-Kontext über die gesamte analytische Landschaft hinweg bereitzustellen. Das erhöht das Vertrauen und hilft Analysten, die richtigen Datenprodukte schneller zu finden.'
      },
      hint: {
        en: 'Look for metadata, lineage, and discoverability.',
        de: 'Achten Sie auf Metadaten, Lineage und Auffindbarkeit.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/governance/microsoft-purview-fabric'
    },
    {
      id: 'dp700-026', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Fabric workspace role should you assign to a user who must create and edit items but must not manage workspace access?',
        de: 'Welche Fabric-Arbeitsbereichsrolle sollten Sie einem Benutzer zuweisen, der Elemente erstellen und bearbeiten muss, aber den Arbeitsbereichszugriff nicht verwalten darf?'
      },
      options: [
        { id: 'A', text: { en: 'Admin', de: 'Administrator' } },
        { id: 'B', text: { en: 'Member', de: 'Mitglied' } },
        { id: 'C', text: { en: 'Contributor', de: 'Mitwirkender' } },
        { id: 'D', text: { en: 'Viewer', de: 'Betrachter' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Contributor is the least-privileged role that still supports content authoring. It allows users to create and edit items, while Member and Admin include broader management abilities and Viewer is read-only.',
        de: 'Mitwirkender ist die Rolle mit den geringsten Rechten, die dennoch die Inhaltserstellung unterstützt. Sie erlaubt Benutzern, Elemente zu erstellen und zu bearbeiten, während Mitglied und Administrator weitergehende Verwaltungsrechte besitzen und Betrachter nur lesen darf.'
      },
      hint: {
        en: 'Choose the least-privileged role that still supports authoring.',
        de: 'Wählen Sie die Rolle mit den geringsten Rechten, die dennoch die Inhaltserstellung erlaubt.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/get-started/roles-workspaces'
    },
    {
      id: 'dp700-027', type: 'multiple',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two capabilities are provided by Fabric deployment pipelines for BI content?',
        de: 'Welche zwei Funktionen bieten Fabric-Deployment-Pipelines für BI-Inhalte?'
      },
      options: [
        { id: 'A', text: { en: 'Promote content through development, test, and production stages', de: 'Inhalte durch Entwicklungs-, Test- und Produktionsstufen fördern' } },
        { id: 'B', text: { en: 'Compare source and target stages before deployment', de: 'Quell- und Zielstufen vor der Bereitstellung vergleichen' } },
        { id: 'C', text: { en: 'Automatically convert Import models to Direct Lake', de: 'Importmodelle automatisch in Direct Lake konvertieren' } },
        { id: 'D', text: { en: 'Replace workspace permissions with pipeline-specific security', de: 'Arbeitsbereichsberechtigungen durch pipelinespezifische Sicherheit ersetzen' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Deployment pipelines are meant to move and validate content safely across environments. They help teams compare what is different between stages before promotion, but they do not replace security or automatically change storage modes.',
        de: 'Deployment-Pipelines dienen dazu, Inhalte sicher zwischen Umgebungen zu verschieben und zu validieren. Sie helfen Teams, Unterschiede zwischen Stufen vor der Förderung zu vergleichen, ersetzen jedoch keine Sicherheit und ändern auch nicht automatisch Speichermodi.'
      },
      hint: {
        en: 'Think about controlled promotion and comparison across environments.',
        de: 'Denken Sie an kontrollierte Förderung und Vergleich zwischen Umgebungen.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/cicd/deployment-pipelines/intro-to-deployment-pipelines'
    },
    {
      id: 'dp700-028', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Your organization wants sales, finance, and operations teams to own their own data products while staying discoverable under shared governance. Which Fabric governance feature best supports this approach?',
        de: 'Ihre Organisation möchte, dass Vertriebs-, Finanz- und Betriebsteams ihre eigenen Datenprodukte besitzen, diese aber unter gemeinsamer Governance auffindbar bleiben. Welche Fabric-Governance-Funktion unterstützt diesen Ansatz am besten?'
      },
      options: [
        { id: 'A', text: { en: 'Domains', de: 'Domänen' } },
        { id: 'B', text: { en: 'Capacity Metrics app', de: 'Kapazitätsmetriken-App' } },
        { id: 'C', text: { en: 'Eventstream', de: 'Eventstream' } },
        { id: 'D', text: { en: 'Bookmarks', de: 'Lesezeichen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Domains organize data by business area and support delegated ownership, which aligns well with data mesh ideas. They improve discoverability and governance without forcing every asset into a single central team structure.',
        de: 'Domänen organisieren Daten nach Geschäftsbereichen und unterstützen delegierte Verantwortung, was gut zu Data-Mesh-Ideen passt. Sie verbessern Auffindbarkeit und Governance, ohne alle Artefakte in eine einzige zentrale Teamstruktur zu zwingen.'
      },
      hint: {
        en: 'Choose the feature built for business-aligned ownership and discovery.',
        de: 'Wählen Sie die Funktion, die für geschäftsorientierte Verantwortung und Auffindbarkeit gedacht ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/governance/domains'
    },
    {
      id: 'dp700-029', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What question is the Microsoft Fabric Capacity Metrics app best suited to answer?',
        de: 'Welche Frage lässt sich mit der Microsoft Fabric Capacity Metrics App am besten beantworten?'
      },
      options: [
        { id: 'A', text: { en: 'Which DAX measure definitions are missing descriptions?', de: 'Welche DAX-Measuredefinitionen haben keine Beschreibung?' } },
        { id: 'B', text: { en: 'Which workspaces and operations consumed the most capacity units and when did throttling occur?', de: 'Welche Arbeitsbereiche und Vorgänge haben die meisten Capacity Units verbraucht und wann trat Drosselung auf?' } },
        { id: 'C', text: { en: 'Which lakehouse tables have duplicate keys?', de: 'Welche Lakehouse-Tabellen haben doppelte Schlüssel?' } },
        { id: 'D', text: { en: 'Which notebook cells contain Python syntax errors?', de: 'Welche Notebook-Zellen enthalten Python-Syntaxfehler?' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'The Capacity Metrics app is for monitoring capacity health, resource consumption, and throttling behavior over time. It helps administrators find heavy consumers and decide whether to redistribute workloads or scale capacity.',
        de: 'Die Capacity Metrics App dient zur Überwachung des Kapazitätszustands, des Ressourcenverbrauchs und des Drosselungsverhaltens im Zeitverlauf. Sie hilft Administratoren, starke Verbraucher zu identifizieren und zu entscheiden, ob Workloads umverteilt oder Kapazitäten skaliert werden sollten.'
      },
      hint: {
        en: 'Focus on monitoring compute usage and throttling, not modeling logic.',
        de: 'Konzentrieren Sie sich auf die Überwachung von Compute-Nutzung und Drosselung, nicht auf Modellierungslogik.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/enterprise/metrics-app'
    },
    {
      id: 'dp700-030', type: 'multiple',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which two practices align with a data mesh approach in Fabric?',
        de: 'Welche zwei Vorgehensweisen entsprechen einem Data-Mesh-Ansatz in Fabric?'
      },
      options: [
        { id: 'A', text: { en: 'Let domain teams own and publish their data products', de: 'Domänenteams ihre Datenprodukte besitzen und veröffentlichen lassen' } },
        { id: 'B', text: { en: 'Apply common enterprise governance standards across domains', de: 'Gemeinsame Governance-Standards des Unternehmens über Domänen hinweg anwenden' } },
        { id: 'C', text: { en: 'Copy every domain\'s data into unmanaged desktop files', de: 'Die Daten jeder Domäne in unverwaltete Desktop-Dateien kopieren' } },
        { id: 'D', text: { en: 'Make every consumer an admin of every workspace', de: 'Jeden Verbraucher zum Administrator jedes Arbeitsbereichs machen' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Data mesh balances decentralized ownership with centrally defined standards. Domain teams should own their products, but governance, discoverability, and interoperability still need consistent enterprise guardrails.',
        de: 'Data Mesh verbindet dezentrale Verantwortung mit zentral definierten Standards. Domänenteams sollten ihre Produkte besitzen, aber Governance, Auffindbarkeit und Interoperabilität benötigen dennoch konsistente Unternehmensleitplanken.'
      },
      hint: {
        en: 'One answer is about ownership, and the other is about shared standards.',
        de: 'Eine Antwort betrifft Verantwortung, die andere gemeinsame Standards.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/governance/domains'
    },
    {
      id: 'dp700-031', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'When should you prefer a Fabric Lakehouse over a Fabric Warehouse?',
        de: 'Wann sollten Sie ein Fabric Lakehouse einem Fabric Warehouse vorziehen?'
      },
      options: [
        { id: 'A', text: { en: 'When the team needs Spark, open Delta files, and file-level access in OneLake', de: 'Wenn das Team Spark, offene Delta-Dateien und Dateizugriff in OneLake benötigt' } },
        { id: 'B', text: { en: 'When the team needs only paginated report subscriptions', de: 'Wenn das Team nur Abonnements für paginierte Berichte benötigt' } },
        { id: 'C', text: { en: 'When the team wants to manage workspace roles from SQL', de: 'Wenn das Team Arbeitsbereichsrollen aus SQL heraus verwalten möchte' } },
        { id: 'D', text: { en: 'When the team must avoid file-based storage entirely', de: 'Wenn das Team dateibasierte Speicherung vollständig vermeiden muss' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A Lakehouse is ideal when engineers need open files in OneLake together with Spark processing and SQL analytics over the same data. A Warehouse is stronger when the main requirement is a governed relational serving layer with T-SQL-centric development.',
        de: 'Ein Lakehouse ist ideal, wenn Engineers offene Dateien in OneLake zusammen mit Spark-Verarbeitung und SQL-Analysen über dieselben Daten benötigen. Ein Warehouse ist stärker, wenn die Hauptanforderung eine kontrollierte relationale Bereitstellungsschicht mit T-SQL-zentrierter Entwicklung ist.'
      },
      hint: {
        en: 'Look for Spark plus open Delta storage.',
        de: 'Achten Sie auf Spark plus offene Delta-Speicherung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-overview'
    },
    {
      id: 'dp700-032', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Your team needs near real-time analytics on an Azure SQL operational database with minimal custom ingestion code. Which Fabric item is the best starting point?',
        de: 'Ihr Team benötigt nahezu Echtzeitanalysen auf einer operativen Azure-SQL-Datenbank mit minimalem benutzerdefiniertem Ingestionscode. Welches Fabric-Element ist der beste Ausgangspunkt?'
      },
      options: [
        { id: 'A', text: { en: 'A daily Copy activity into CSV files', de: 'Eine tägliche Copy-Aktivität in CSV-Dateien' } },
        { id: 'B', text: { en: 'A mirrored database', de: 'Eine gespiegelte Datenbank' } },
        { id: 'C', text: { en: 'A Power BI bookmark', de: 'Ein Power-BI-Lesezeichen' } },
        { id: 'D', text: { en: 'A paginated report', de: 'Ein paginierter Bericht' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Mirroring is designed to replicate supported source systems into OneLake with low latency and minimal engineering overhead. It is a better fit than batch copies when the goal is continuous analytical availability of operational data.',
        de: 'Mirroring ist dafür ausgelegt, unterstützte Quellsysteme mit geringer Latenz und minimalem Engineering-Aufwand nach OneLake zu replizieren. Es passt besser als Batch-Kopien, wenn das Ziel die kontinuierliche analytische Verfügbarkeit operativer Daten ist.'
      },
      hint: {
        en: 'Choose the feature built for low-latency replication from operational sources.',
        de: 'Wählen Sie die Funktion, die für Replikation mit geringer Latenz aus operativen Quellen entwickelt wurde.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/mirroring/overview'
    },
    {
      id: 'dp700-033', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why is separating development, test, and production workspaces a good Fabric governance practice?',
        de: 'Warum ist die Trennung von Entwicklungs-, Test- und Produktionsarbeitsbereichen eine gute Governance-Praxis in Fabric?'
      },
      options: [
        { id: 'A', text: { en: 'It isolates change, validation, and permissions before production promotion', de: 'Sie isoliert Änderungen, Validierung und Berechtigungen vor der Produktionsförderung' } },
        { id: 'B', text: { en: 'It removes the need for deployment pipelines', de: 'Sie macht Deployment-Pipelines überflüssig' } },
        { id: 'C', text: { en: 'It forces every semantic model into DirectQuery mode', de: 'Sie zwingt jedes semantische Modell in den DirectQuery-Modus' } },
        { id: 'D', text: { en: 'It disables OneLake shortcuts', de: 'Sie deaktiviert OneLake-Shortcuts' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Separate workspaces reduce the risk of untested content reaching production and make permissions easier to control by environment. They work together with deployment pipelines instead of replacing them.',
        de: 'Getrennte Arbeitsbereiche verringern das Risiko, dass ungetestete Inhalte in die Produktion gelangen, und erleichtern die Berechtigungssteuerung je Umgebung. Sie arbeiten mit Deployment-Pipelines zusammen, anstatt sie zu ersetzen.'
      },
      hint: {
        en: 'Think about environment isolation and safe promotion.',
        de: 'Denken Sie an Umgebungsisolation und sichere Förderung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/cicd/deployment-pipelines/intro-to-deployment-pipelines'
    },
    {
      id: 'dp700-034', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Before changing a shared upstream table, which capability helps you understand downstream impact across Fabric items?',
        de: 'Welche Funktion hilft Ihnen vor der Änderung einer gemeinsam genutzten Upstream-Tabelle, die nachgelagerten Auswirkungen über Fabric-Elemente hinweg zu verstehen?'
      },
      options: [
        { id: 'A', text: { en: 'Purview lineage', de: 'Purview-Lineage' } },
        { id: 'B', text: { en: 'Notebook cell output history', de: 'Ausgabehistorie von Notebook-Zellen' } },
        { id: 'C', text: { en: 'Visual bookmarks', de: 'Visuelle Lesezeichen' } },
        { id: 'D', text: { en: 'Dataflow themes', de: 'Dataflow-Designs' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Lineage shows how data assets relate to downstream models, reports, and other items. That visibility is essential for impact analysis so teams can change shared data products more safely.',
        de: 'Lineage zeigt, wie Datenbestände mit nachgelagerten Modellen, Berichten und anderen Elementen zusammenhängen. Diese Sichtbarkeit ist für Impact-Analysen wichtig, damit Teams gemeinsam genutzte Datenprodukte sicherer ändern können.'
      },
      hint: {
        en: 'Choose the governance feature that maps dependencies.',
        de: 'Wählen Sie die Governance-Funktion, die Abhängigkeiten abbildet.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/governance/microsoft-purview-fabric'
    },
    {
      id: 'dp700-035', type: 'single',
      domain: { en: 'Plan, Implement, and Manage a Solution', de: 'Lösung planen, implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'The Capacity Metrics app shows sustained throttling during business hours and business-critical reports are slowing down. What is the most appropriate next action?',
        de: 'Die Capacity Metrics App zeigt während der Geschäftszeiten anhaltende Drosselung und geschäftskritische Berichte werden langsamer. Was ist die angemessenste nächste Maßnahme?'
      },
      options: [
        { id: 'A', text: { en: 'Scale the capacity or redistribute heavy workloads based on the metrics findings', de: 'Die Kapazität skalieren oder schwere Workloads basierend auf den Metrikergebnissen umverteilen' } },
        { id: 'B', text: { en: 'Delete all report relationships', de: 'Alle Berichtsbeziehungen löschen' } },
        { id: 'C', text: { en: 'Convert every Delta table to CSV', de: 'Jede Delta-Tabelle in CSV konvertieren' } },
        { id: 'D', text: { en: 'Disable lineage features', de: 'Lineage-Funktionen deaktivieren' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Sustained throttling indicates real resource pressure, so the correct response is capacity planning based on evidence. That usually means scaling, shifting workloads, or improving workload isolation rather than changing unrelated model features.',
        de: 'Anhaltende Drosselung zeigt echten Ressourcendruck an, daher ist die richtige Reaktion eine kapazitätsbezogene Planung auf Basis von Fakten. Das bedeutet meist Skalierung, Verlagerung von Workloads oder bessere Workload-Isolation statt Änderungen an nicht zusammenhängenden Modellfunktionen.'
      },
      hint: {
        en: 'Respond to measured capacity pressure with capacity planning.',
        de: 'Reagieren Sie auf gemessenen Kapazitätsdruck mit Kapazitätsplanung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/enterprise/metrics-app'
    },
    {
      id: 'dp700-036', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Delta Lake operation is designed for upsert logic that updates matching rows and inserts new rows?',
        de: 'Welche Delta-Lake-Operation ist für Upsert-Logik vorgesehen, die passende Zeilen aktualisiert und neue Zeilen einfügt?'
      },
      options: [
        { id: 'A', text: { en: 'MERGE', de: 'MERGE' } },
        { id: 'B', text: { en: 'TRUNCATE', de: 'TRUNCATE' } },
        { id: 'C', text: { en: 'RENAME', de: 'RENAME' } },
        { id: 'D', text: { en: 'GRANT', de: 'GRANT' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'MERGE is the standard Delta operation for applying matched updates and unmatched inserts in one transaction. It is widely used for incremental ingestion, deduplication, and slowly changing dimension patterns.',
        de: 'MERGE ist die Standard-Delta-Operation, um passende Aktualisierungen und nicht passende Einfügungen in einer Transaktion anzuwenden. Sie wird häufig für inkrementelle Ingestion, Deduplizierung und Slowly-Changing-Dimension-Muster verwendet.'
      },
      hint: {
        en: 'Pick the Delta command used for transactional upserts.',
        de: 'Wählen Sie den Delta-Befehl, der für transaktionale Upserts verwendet wird.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-and-delta-tables'
    },
    {
      id: 'dp700-037', type: 'multiple',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two statements correctly describe Dataflows Gen2 in Fabric?',
        de: 'Welche zwei Aussagen beschreiben Dataflows Gen2 in Fabric korrekt?'
      },
      options: [
        { id: 'A', text: { en: 'They provide a low-code Power Query experience for ingestion and transformation', de: 'Sie bieten eine Low-Code-Power-Query-Erfahrung für Ingestion und Transformation' } },
        { id: 'B', text: { en: 'They can load prepared data to destinations such as Lakehouse or Warehouse', de: 'Sie können vorbereitete Daten in Ziele wie Lakehouse oder Warehouse laden' } },
        { id: 'C', text: { en: 'They are only for streaming event routing', de: 'Sie sind nur für das Routing von Streamingereignissen gedacht' } },
        { id: 'D', text: { en: 'They require PySpark code in every step', de: 'Sie erfordern in jedem Schritt PySpark-Code' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Dataflows Gen2 are built on Power Query and focus on low-code data preparation. They support multiple sources and destinations, which makes them useful when business-friendly transformation and loading are needed without Spark coding.',
        de: 'Dataflows Gen2 basieren auf Power Query und konzentrieren sich auf Low-Code-Datenaufbereitung. Sie unterstützen mehrere Quellen und Ziele und sind daher nützlich, wenn eine fachanwenderfreundliche Transformation und Beladung ohne Spark-Code erforderlich ist.'
      },
      hint: {
        en: 'Think low-code transformation plus loading to Fabric destinations.',
        de: 'Denken Sie an Low-Code-Transformation plus Laden in Fabric-Ziele.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/dataflows-gen2-overview'
    },
    {
      id: 'dp700-038', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why would you create a stored procedure in a Fabric Warehouse?',
        de: 'Warum würden Sie in einem Fabric Warehouse eine Stored Procedure erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'To store report bookmarks in SQL', de: 'Um Berichtslesezeichen in SQL zu speichern' } },
        { id: 'B', text: { en: 'To encapsulate reusable T-SQL logic for repeatable data-serving tasks', de: 'Um wiederverwendbare T-SQL-Logik für wiederholbare Datenbereitstellungsaufgaben zu kapseln' } },
        { id: 'C', text: { en: 'To replace semantic model relationships', de: 'Um Beziehungen im semantischen Modell zu ersetzen' } },
        { id: 'D', text: { en: 'To manage OneLake security roles', de: 'Um OneLake-Sicherheitsrollen zu verwalten' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Stored procedures are useful when you want centralized, reusable SQL logic for tasks such as post-load processing, standard data-serving routines, or controlled execution paths. They do not replace report modeling or workspace security.',
        de: 'Stored Procedures sind nützlich, wenn Sie zentrale, wiederverwendbare SQL-Logik für Aufgaben wie Nachladeverarbeitung, standardisierte Datenbereitstellungsroutinen oder kontrollierte Ausführungspfade möchten. Sie ersetzen weder Berichtsmodellierung noch Arbeitsbereichssicherheit.'
      },
      hint: {
        en: 'Look for reusable server-side T-SQL logic.',
        de: 'Achten Sie auf wiederverwendbare serverseitige T-SQL-Logik.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/tsql-surface-area'
    },
    {
      id: 'dp700-039', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'What is the main benefit of a Fabric Warehouse cross-database query?',
        de: 'Was ist der Hauptvorteil einer Fabric-Warehouse-Cross-Database-Abfrage?'
      },
      options: [
        { id: 'A', text: { en: 'It lets you join data across supported Fabric databases without copying it first', de: 'Sie ermöglicht das Verbinden von Daten über unterstützte Fabric-Datenbanken hinweg, ohne sie zuerst zu kopieren' } },
        { id: 'B', text: { en: 'It converts all source data to Direct Lake', de: 'Sie konvertiert alle Quelldaten in Direct Lake' } },
        { id: 'C', text: { en: 'It removes the need for relationships in semantic models', de: 'Sie macht Beziehungen in semantischen Modellen überflüssig' } },
        { id: 'D', text: { en: 'It allows KQL syntax inside T-SQL procedures', de: 'Sie erlaubt KQL-Syntax innerhalb von T-SQL-Stored-Procedures' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Cross-database queries reduce unnecessary movement by letting you query related Fabric data where it already lives. This is valuable for federated analytics and governed reuse across warehouses and SQL analytics endpoints in the same workspace context.',
        de: 'Cross-Database-Abfragen reduzieren unnötige Datenbewegungen, indem sie verwandte Fabric-Daten dort abfragen lassen, wo sie bereits liegen. Das ist wertvoll für föderierte Analysen und kontrollierte Wiederverwendung über Warehouses und SQL-Analyseendpunkte im selben Arbeitsbereichskontext hinweg.'
      },
      hint: {
        en: 'The key idea is joining across databases without ETL copies.',
        de: 'Die Kernidee ist das Verbinden über Datenbanken hinweg ohne ETL-Kopien.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/tutorial-sql-cross-warehouse-query-editor'
    },
    {
      id: 'dp700-040', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You need to expose files from ADLS Gen2 in a Fabric Lakehouse quickly and without creating another physical copy. What should you use?',
        de: 'Sie müssen Dateien aus ADLS Gen2 schnell und ohne eine weitere physische Kopie in einem Fabric Lakehouse bereitstellen. Was sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'A OneLake shortcut', de: 'Einen OneLake-Shortcut' } },
        { id: 'B', text: { en: 'A manual CSV export', de: 'Einen manuellen CSV-Export' } },
        { id: 'C', text: { en: 'A paginated report', de: 'Einen paginierten Bericht' } },
        { id: 'D', text: { en: 'A DAX measure', de: 'Eine DAX-Measure' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Shortcuts virtualize access to data that already exists elsewhere, which is exactly what this scenario needs. They reduce duplication and make externally stored data available inside Fabric experiences more quickly.',
        de: 'Shortcuts virtualisieren den Zugriff auf Daten, die bereits an anderer Stelle vorhanden sind, was genau zu diesem Szenario passt. Sie reduzieren Duplikate und machen extern gespeicherte Daten schneller in Fabric-Erfahrungen verfügbar.'
      },
      hint: {
        en: 'Choose the no-copy exposure mechanism.',
        de: 'Wählen Sie den Mechanismus zur Bereitstellung ohne Kopie.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts'
    },
    {
      id: 'dp700-041', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is a major benefit of Fabric mirroring for operational source systems?',
        de: 'Was ist ein wesentlicher Vorteil von Fabric-Mirroring für operative Quellsysteme?'
      },
      options: [
        { id: 'A', text: { en: 'It continuously lands replicated data in OneLake for analytics with low latency', de: 'Es repliziert Daten kontinuierlich mit geringer Latenz nach OneLake für Analysen' } },
        { id: 'B', text: { en: 'It replaces row-level security in semantic models', de: 'Es ersetzt Row-Level-Security in semantischen Modellen' } },
        { id: 'C', text: { en: 'It stores data only in Excel format', de: 'Es speichert Daten nur im Excel-Format' } },
        { id: 'D', text: { en: 'It requires every consumer to write Spark ingestion code', de: 'Es erfordert von jedem Verbraucher das Schreiben von Spark-Ingestionscode' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Mirroring is designed to keep supported source data synchronized into OneLake for analytics. That shortens the path from operational change to analytical availability and reduces the need for custom low-latency ingestion pipelines.',
        de: 'Mirroring ist dafür konzipiert, unterstützte Quelldaten für Analysen in OneLake synchron zu halten. Das verkürzt den Weg von operativen Änderungen bis zur analytischen Verfügbarkeit und reduziert den Bedarf an benutzerdefinierten Ingestionspipelines mit geringer Latenz.'
      },
      hint: {
        en: 'Think of replication into OneLake, not report security.',
        de: 'Denken Sie an Replikation nach OneLake, nicht an Berichtssicherheit.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/mirroring/overview'
    },
    {
      id: 'dp700-042', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'A data engineer must run custom Python logic over billions of rows, join multiple Delta tables, and use distributed compute. Which Fabric capability is the best fit?',
        de: 'Ein Data Engineer muss benutzerdefinierte Python-Logik über Milliarden von Zeilen ausführen, mehrere Delta-Tabellen verbinden und verteilte Rechenleistung nutzen. Welche Fabric-Funktion passt am besten?'
      },
      options: [
        { id: 'A', text: { en: 'A Spark notebook', de: 'Ein Spark-Notebook' } },
        { id: 'B', text: { en: 'A report bookmark', de: 'Ein Berichtslesezeichen' } },
        { id: 'C', text: { en: 'A workspace domain', de: 'Eine Arbeitsbereichsdomäne' } },
        { id: 'D', text: { en: 'A paginated report', de: 'Ein paginierter Bericht' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Spark notebooks are the code-first option for large-scale distributed data engineering in Fabric. They support PySpark, complex transformations, custom libraries, and direct interaction with lakehouse Delta tables.',
        de: 'Spark-Notebooks sind die Code-First-Option für groß angelegtes verteiltes Data Engineering in Fabric. Sie unterstützen PySpark, komplexe Transformationen, benutzerdefinierte Bibliotheken und die direkte Arbeit mit Delta-Tabellen im Lakehouse.'
      },
      hint: {
        en: 'Choose the distributed engineering environment.',
        de: 'Wählen Sie die verteilte Engineering-Umgebung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/author-execute-notebook'
    },
    {
      id: 'dp700-043', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'In a medallion architecture, what should the bronze layer usually contain?',
        de: 'Was sollte die Bronze-Schicht in einer Medallion-Architektur normalerweise enthalten?'
      },
      options: [
        { id: 'A', text: { en: 'Raw or minimally processed source data', de: 'Rohe oder nur minimal verarbeitete Quelldaten' } },
        { id: 'B', text: { en: 'Only aggregated executive KPIs', de: 'Nur aggregierte Executive-KPIs' } },
        { id: 'C', text: { en: 'Only semantic model measures', de: 'Nur Measures des semantischen Modells' } },
        { id: 'D', text: { en: 'Only paginated report exports', de: 'Nur Exporte paginierter Berichte' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The bronze layer is usually the landing area for source-aligned data with minimal transformation. Keeping it close to the source helps with traceability, replay, and downstream refinement into silver and gold layers.',
        de: 'Die Bronze-Schicht ist in der Regel der Landebereich für quellnahe Daten mit minimaler Transformation. Die Nähe zur Quelle unterstützt Nachvollziehbarkeit, Wiederverarbeitung und die nachgelagerte Veredelung in Silver- und Gold-Schichten.'
      },
      hint: {
        en: 'Bronze is the raw landing zone.',
        de: 'Bronze ist die rohe Landezone.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-overview'
    },
    {
      id: 'dp700-044', type: 'multiple',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two modeling practices usually improve a reporting-oriented warehouse design?',
        de: 'Welche zwei Modellierungspraktiken verbessern normalerweise ein berichtsorientiertes Warehouse-Design?'
      },
      options: [
        { id: 'A', text: { en: 'Separate fact and dimension tables clearly', de: 'Fakt- und Dimensionstabellen klar trennen' } },
        { id: 'B', text: { en: 'Use surrogate keys for dimensions where appropriate', de: 'Geeignete Surrogatschlüssel für Dimensionen verwenden' } },
        { id: 'C', text: { en: 'Store all attributes in one very wide fact table', de: 'Alle Attribute in einer sehr breiten Faktentabelle speichern' } },
        { id: 'D', text: { en: 'Avoid relationships entirely', de: 'Beziehungen vollständig vermeiden' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Clear fact and dimension separation supports a star schema that is easier to understand and optimize. Surrogate keys help manage dimension history and create stable joins for analytical workloads.',
        de: 'Eine klare Trennung von Fakten und Dimensionen unterstützt ein Sternschema, das leichter zu verstehen und zu optimieren ist. Surrogatschlüssel helfen bei der Verwaltung von Dimensionshistorie und schaffen stabile Joins für analytische Workloads.'
      },
      hint: {
        en: 'Choose the options that support a classic star schema.',
        de: 'Wählen Sie die Optionen, die ein klassisches Sternschema unterstützen.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-045', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is an important characteristic of the SQL analytics endpoint for a Lakehouse?',
        de: 'Was ist eine wichtige Eigenschaft des SQL-Analyseendpunkts für ein Lakehouse?'
      },
      options: [
        { id: 'A', text: { en: 'It provides a read-only T-SQL surface over lakehouse tables', de: 'Er bietet eine schreibgeschützte T-SQL-Oberfläche über Lakehouse-Tabellen' } },
        { id: 'B', text: { en: 'It lets you manage workspace roles with SQL', de: 'Er ermöglicht die Verwaltung von Arbeitsbereichsrollen mit SQL' } },
        { id: 'C', text: { en: 'It runs KQL queries instead of T-SQL', de: 'Er führt KQL-Abfragen statt T-SQL aus' } },
        { id: 'D', text: { en: 'It stores data outside OneLake', de: 'Er speichert Daten außerhalb von OneLake' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The SQL analytics endpoint is for querying lakehouse Delta tables with T-SQL, not for administering Fabric itself. It is read-only, which makes it ideal for analysis and serving scenarios rather than write-heavy engineering operations.',
        de: 'Der SQL-Analyseendpunkt dient dazu, Delta-Tabellen im Lakehouse mit T-SQL abzufragen, nicht zur Verwaltung von Fabric selbst. Er ist schreibgeschützt und eignet sich daher ideal für Analyse- und Bereitstellungsszenarien statt für schreibintensive Engineering-Vorgänge.'
      },
      hint: {
        en: 'Remember that the endpoint is analytical and read-only.',
        de: 'Denken Sie daran, dass der Endpunkt analytisch und schreibgeschützt ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-overview'
    },
    {
      id: 'dp700-046', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Your Delta table has accumulated many small files and query performance is degrading. Which action is most appropriate?',
        de: 'Ihre Delta-Tabelle hat viele kleine Dateien angesammelt und die Abfrageleistung verschlechtert sich. Welche Maßnahme ist am sinnvollsten?'
      },
      options: [
        { id: 'A', text: { en: 'Optimize or compact the Delta table', de: 'Die Delta-Tabelle optimieren oder kompaktieren' } },
        { id: 'B', text: { en: 'Convert the table to PNG files', de: 'Die Tabelle in PNG-Dateien konvertieren' } },
        { id: 'C', text: { en: 'Disable partition pruning', de: 'Partition Pruning deaktivieren' } },
        { id: 'D', text: { en: 'Replace the table with report screenshots', de: 'Die Tabelle durch Berichtsscreenshots ersetzen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Many small files increase metadata overhead and can hurt scan efficiency. Delta optimization and compaction reduce file fragmentation so engines can read the data more efficiently.',
        de: 'Viele kleine Dateien erhöhen den Metadatenaufwand und können die Scan-Effizienz verschlechtern. Delta-Optimierung und Kompaktierung reduzieren die Dateifragmentierung, sodass Engines die Daten effizienter lesen können.'
      },
      hint: {
        en: 'Look for a maintenance action that reduces small-file overhead.',
        de: 'Suchen Sie nach einer Wartungsmaßnahme, die den Overhead vieler kleiner Dateien reduziert.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/delta-optimization-and-v-order'
    },
    {
      id: 'dp700-047', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Nightly ingestion should load only rows changed since the last successful run. Which design pattern best fits this requirement?',
        de: 'Die nächtliche Ingestion soll nur Zeilen laden, die sich seit dem letzten erfolgreichen Lauf geändert haben. Welches Entwurfsmuster passt am besten zu dieser Anforderung?'
      },
      options: [
        { id: 'A', text: { en: 'Incremental loading based on a watermark or change tracking column', de: 'Inkrementelles Laden auf Basis eines Wasserzeichens oder einer Änderungsverfolgungsspalte' } },
        { id: 'B', text: { en: 'A full reload of all history every hour', de: 'Ein vollständiges Neuladen der gesamten Historie jede Stunde' } },
        { id: 'C', text: { en: 'Manual CSV downloads by analysts', de: 'Manuelle CSV-Downloads durch Analysten' } },
        { id: 'D', text: { en: 'Creating a new workspace every night', de: 'Jede Nacht einen neuen Arbeitsbereich erstellen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Incremental loading minimizes movement and processing by focusing only on new or changed rows. Watermark values, last-modified timestamps, or source-side change tracking are common ways to implement it in Fabric pipelines.',
        de: 'Inkrementelles Laden minimiert Datenbewegung und Verarbeitung, indem es sich nur auf neue oder geänderte Zeilen konzentriert. Wasserzeichen, Änderungszeitstempel oder quellenbasierte Änderungsverfolgung sind gängige Methoden zur Umsetzung in Fabric-Pipelines.'
      },
      hint: {
        en: 'Pick the pattern that avoids reloading unchanged history.',
        de: 'Wählen Sie das Muster, das unveränderte Historie nicht erneut lädt.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/pipeline-overview'
    },
    {
      id: 'dp700-048', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why would you create a view in a Fabric Warehouse?',
        de: 'Warum würden Sie in einem Fabric Warehouse eine View erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'To provide a reusable relational abstraction without copying data', de: 'Um eine wiederverwendbare relationale Abstraktion bereitzustellen, ohne Daten zu kopieren' } },
        { id: 'B', text: { en: 'To replace all lakehouse files permanently', de: 'Um alle Lakehouse-Dateien dauerhaft zu ersetzen' } },
        { id: 'C', text: { en: 'To publish mobile notifications', de: 'Um mobile Benachrichtigungen zu veröffentlichen' } },
        { id: 'D', text: { en: 'To assign workspace roles', de: 'Um Arbeitsbereichsrollen zuzuweisen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Views centralize SQL logic and present curated relational shapes for downstream consumers. They are helpful when you want a consistent serving contract over existing warehouse tables without materializing another copy.',
        de: 'Views zentralisieren SQL-Logik und stellen kuratierte relationale Sichten für nachgelagerte Verbraucher bereit. Sie sind hilfreich, wenn Sie einen konsistenten Bereitstellungsvertrag über bestehenden Warehouse-Tabellen möchten, ohne eine weitere Kopie zu materialisieren.'
      },
      hint: {
        en: 'Think reusable SQL presentation, not data duplication.',
        de: 'Denken Sie an wiederverwendbare SQL-Bereitstellung, nicht an Datenverdopplung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/data-warehousing'
    },
    {
      id: 'dp700-049', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'A notebook writes a transformed DataFrame back to a curated Delta table and should replace the previous contents completely. Which write mode should you use?',
        de: 'Ein Notebook schreibt einen transformierten DataFrame zurück in eine kuratierte Delta-Tabelle und soll den bisherigen Inhalt vollständig ersetzen. Welchen Schreibmodus sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'append', de: 'append' } },
        { id: 'B', text: { en: 'overwrite', de: 'overwrite' } },
        { id: 'C', text: { en: 'ignore', de: 'ignore' } },
        { id: 'D', text: { en: 'errorifexists', de: 'errorifexists' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Overwrite replaces the existing table contents with the newly written result. Append would add rows, and the other modes are for different existence behaviors rather than a full replacement scenario.',
        de: 'Overwrite ersetzt den vorhandenen Tabelleninhalt durch das neu geschriebene Ergebnis. Append würde Zeilen hinzufügen, und die anderen Modi betreffen anderes Verhalten beim Vorhandensein der Tabelle statt eines vollständigen Ersatzes.'
      },
      hint: {
        en: 'Choose the mode that replaces rather than adds.',
        de: 'Wählen Sie den Modus, der ersetzt statt hinzufügt.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/author-execute-notebook'
    },
    {
      id: 'dp700-050', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why can partitioning a large Delta table by date improve performance for time-based queries?',
        de: 'Warum kann die Partitionierung einer großen Delta-Tabelle nach Datum die Leistung zeitbasierter Abfragen verbessern?'
      },
      options: [
        { id: 'A', text: { en: 'Because query engines can skip irrelevant partitions during scans', de: 'Weil Abfrage-Engines irrelevante Partitionen beim Scannen überspringen können' } },
        { id: 'B', text: { en: 'Because it disables schema enforcement', de: 'Weil dadurch die Schemakontrolle deaktiviert wird' } },
        { id: 'C', text: { en: 'Because it converts T-SQL into KQL', de: 'Weil dadurch T-SQL in KQL konvertiert wird' } },
        { id: 'D', text: { en: 'Because it forces data into semantic models automatically', de: 'Weil Daten dadurch automatisch in semantische Modelle erzwungen werden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Date partitioning can reduce the amount of data scanned when queries filter on time ranges. When partitioning matches common access patterns, engines can prune whole partitions instead of reading the entire table.',
        de: 'Die Partitionierung nach Datum kann die gescannte Datenmenge reduzieren, wenn Abfragen nach Zeitbereichen filtern. Wenn die Partitionierung zu typischen Zugriffsmustern passt, können Engines ganze Partitionen ausschließen, statt die gesamte Tabelle zu lesen.'
      },
      hint: {
        en: 'Think about pruning data before scanning it.',
        de: 'Denken Sie daran, Daten vor dem Scan auszuschließen.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-and-delta-tables'
    },
    {
      id: 'dp700-051', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You need a continuously updated analytical replica of an Azure SQL database in OneLake. Which feature is a better fit than a shortcut?',
        de: 'Sie benötigen ein kontinuierlich aktualisiertes analytisches Replikat einer Azure-SQL-Datenbank in OneLake. Welche Funktion ist dafür besser geeignet als ein Shortcut?'
      },
      options: [
        { id: 'A', text: { en: 'Mirroring', de: 'Mirroring' } },
        { id: 'B', text: { en: 'A report subscription', de: 'Ein Berichtsabonnement' } },
        { id: 'C', text: { en: 'A bookmark', de: 'Ein Lesezeichen' } },
        { id: 'D', text: { en: 'A manual import to Excel', de: 'Ein manueller Import nach Excel' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Shortcuts expose existing external data, but they do not create a continuously replicated analytical copy in OneLake. Mirroring is designed for replication and synchronization of supported operational sources.',
        de: 'Shortcuts stellen vorhandene externe Daten bereit, erzeugen jedoch keine kontinuierlich replizierte analytische Kopie in OneLake. Mirroring ist für die Replikation und Synchronisierung unterstützter operativer Quellen vorgesehen.'
      },
      hint: {
        en: 'Choose replication, not virtualization only.',
        de: 'Wählen Sie Replikation, nicht nur Virtualisierung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/mirroring/overview'
    },
    {
      id: 'dp700-052', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'What is the primary purpose of a Copy activity in a Fabric pipeline?',
        de: 'Was ist der Hauptzweck einer Copy-Aktivität in einer Fabric-Pipeline?'
      },
      options: [
        { id: 'A', text: { en: 'Move data from a source to a destination efficiently', de: 'Daten effizient von einer Quelle zu einem Ziel verschieben' } },
        { id: 'B', text: { en: 'Define DAX measures', de: 'DAX-Measures definieren' } },
        { id: 'C', text: { en: 'Render a paginated report', de: 'Einen paginierten Bericht rendern' } },
        { id: 'D', text: { en: 'Assign domain ownership', de: 'Domänenverantwortung zuweisen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Copy activity is the core ingestion building block for moving data between supported sources and destinations. It focuses on data movement, while other Fabric experiences handle semantic modeling, reporting, and governance.',
        de: 'Die Copy-Aktivität ist der zentrale Ingestionsbaustein zum Verschieben von Daten zwischen unterstützten Quellen und Zielen. Sie konzentriert sich auf Datenbewegung, während andere Fabric-Erfahrungen semantische Modellierung, Berichterstellung und Governance übernehmen.'
      },
      hint: {
        en: 'Choose the pipeline component for movement, not analysis.',
        de: 'Wählen Sie die Pipeline-Komponente für Datenbewegung, nicht für Analyse.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/pipeline-overview'
    },
    {
      id: 'dp700-053', type: 'multiple',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which two design elements are typical for a Type 2 slowly changing dimension?',
        de: 'Welche zwei Entwurfselemente sind typisch für eine Slowly Changing Dimension vom Typ 2?'
      },
      options: [
        { id: 'A', text: { en: 'A surrogate key in the dimension', de: 'Ein Surrogatschlüssel in der Dimension' } },
        { id: 'B', text: { en: 'Effective start and end date columns to track version validity', de: 'Spalten für effektives Start- und Enddatum zur Nachverfolgung der Versionsgültigkeit' } },
        { id: 'C', text: { en: 'Deleting all historical versions during each load', de: 'Löschen aller historischen Versionen bei jeder Ladung' } },
        { id: 'D', text: { en: 'Storing the dimension only as a CSV attachment in email', de: 'Speichern der Dimension nur als CSV-Anhang in E-Mails' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Type 2 dimensions preserve history by creating new versions of a row when tracked attributes change. Surrogate keys and validity dates are common building blocks for this pattern.',
        de: 'Typ-2-Dimensionen erhalten Historie, indem sie neue Versionen einer Zeile erstellen, wenn sich verfolgte Attribute ändern. Surrogatschlüssel und Gültigkeitsdaten sind typische Bausteine dieses Musters.'
      },
      hint: {
        en: 'One answer preserves identity, the other preserves validity over time.',
        de: 'Eine Antwort bewahrt die Identität, die andere die zeitliche Gültigkeit.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-054', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What should you define before loading a fact table to a warehouse star schema?',
        de: 'Was sollten Sie definieren, bevor Sie eine Faktentabelle in ein Warehouse-Sternschema laden?'
      },
      options: [
        { id: 'A', text: { en: 'The fact table grain', de: 'Die Granularität der Faktentabelle' } },
        { id: 'B', text: { en: 'The report theme colors', de: 'Die Farben des Berichtsthemas' } },
        { id: 'C', text: { en: 'The workspace emoji', de: 'Das Emoji des Arbeitsbereichs' } },
        { id: 'D', text: { en: 'The mobile app icon', de: 'Das Symbol der mobilen App' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The grain defines exactly what one row in the fact table represents. Getting grain right is foundational because it drives measures, keys, relationship design, and the correctness of downstream analysis.',
        de: 'Die Granularität definiert genau, was eine Zeile in der Faktentabelle repräsentiert. Eine korrekte Granularität ist grundlegend, weil sie Measures, Schlüssel, Beziehungsdesign und die Korrektheit nachgelagerter Analysen bestimmt.'
      },
      hint: {
        en: 'Start with what one row means.',
        de: 'Beginnen Sie damit, was eine einzelne Zeile bedeutet.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-055', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Fabric capability is most suitable for analysts who prefer a Power Query interface for cleansing and shaping data?',
        de: 'Welche Fabric-Funktion eignet sich am besten für Analysten, die eine Power-Query-Oberfläche zum Bereinigen und Formen von Daten bevorzugen?'
      },
      options: [
        { id: 'A', text: { en: 'Dataflows Gen2', de: 'Dataflows Gen2' } },
        { id: 'B', text: { en: 'KQL dashboard', de: 'KQL-Dashboard' } },
        { id: 'C', text: { en: 'Deployment pipeline', de: 'Deployment-Pipeline' } },
        { id: 'D', text: { en: 'Workspace domain', de: 'Arbeitsbereichsdomäne' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Dataflows Gen2 provide the familiar Power Query transformation experience in Fabric. They are a strong choice when low-code preparation is preferred over code-first notebook development.',
        de: 'Dataflows Gen2 bieten die vertraute Power-Query-Transformationserfahrung in Fabric. Sie sind eine starke Wahl, wenn Low-Code-Aufbereitung gegenüber code-first Notebook-Entwicklung bevorzugt wird.'
      },
      hint: {
        en: 'Choose the Power Query based option.',
        de: 'Wählen Sie die auf Power Query basierende Option.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/dataflows-gen2-overview'
    },
    {
      id: 'dp700-056', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'A new nullable column appears in the source and should be accepted intentionally when writing to a Delta table. Which capability helps with this scenario?',
        de: 'In der Quelle erscheint eine neue nullable Spalte und soll beim Schreiben in eine Delta-Tabelle gezielt übernommen werden. Welche Funktion hilft in diesem Szenario?'
      },
      options: [
        { id: 'A', text: { en: 'Schema evolution for the Delta write operation', de: 'Schema-Evolution für den Delta-Schreibvorgang' } },
        { id: 'B', text: { en: 'Disabling all schema checks forever', de: 'Alle Schemaüberprüfungen dauerhaft deaktivieren' } },
        { id: 'C', text: { en: 'A report-level bookmark', de: 'Ein berichtsbezogenes Lesezeichen' } },
        { id: 'D', text: { en: 'A capacity scale-down', de: 'Eine Kapazitätsverkleinerung' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Delta supports managed schema evolution scenarios so pipelines can accommodate expected structural changes safely. That is different from simply abandoning schema control altogether.',
        de: 'Delta unterstützt verwaltete Schema-Evolution-Szenarien, sodass Pipelines erwartete Strukturänderungen kontrolliert übernehmen können. Das unterscheidet sich davon, die Schemakontrolle vollständig aufzugeben.'
      },
      hint: {
        en: 'Look for controlled acceptance of schema change.',
        de: 'Suchen Sie nach einer kontrollierten Übernahme von Schemaänderungen.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-and-delta-tables'
    },
    {
      id: 'dp700-057', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'In a medallion architecture, which layer should contain business-ready curated data for broad reporting consumption?',
        de: 'Welche Schicht einer Medallion-Architektur sollte geschäftsfertige, kuratierte Daten für eine breite Berichtsnutzung enthalten?'
      },
      options: [
        { id: 'A', text: { en: 'Bronze', de: 'Bronze' } },
        { id: 'B', text: { en: 'Silver', de: 'Silver' } },
        { id: 'C', text: { en: 'Gold', de: 'Gold' } },
        { id: 'D', text: { en: 'Sandbox', de: 'Sandbox' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'The gold layer is where data is typically refined into business-ready structures for analytics and reporting. Bronze is raw, and silver is usually the cleansed and conformed intermediate layer.',
        de: 'Die Gold-Schicht ist der Bereich, in dem Daten typischerweise zu geschäftsfertigen Strukturen für Analysen und Berichte veredelt werden. Bronze ist roh, und Silver ist meist die bereinigte und konforme Zwischenschicht.'
      },
      hint: {
        en: 'Gold is the consumption-oriented layer.',
        de: 'Gold ist die verbraucherorientierte Schicht.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-overview'
    },
    {
      id: 'dp700-058', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'A dimension table contains duplicate business keys, preventing a clean one-to-many relationship from the dimension to the fact table. What is the best fix?',
        de: 'Eine Dimensionstabelle enthält doppelte Geschäftsschlüssel und verhindert dadurch eine saubere Eins-zu-viele-Beziehung von der Dimension zur Faktentabelle. Was ist die beste Korrektur?'
      },
      options: [
        { id: 'A', text: { en: 'Deduplicate the dimension keys and introduce surrogate keys where needed', de: 'Die Dimensionsschlüssel deduplizieren und bei Bedarf Surrogatschlüssel einführen' } },
        { id: 'B', text: { en: 'Make every relationship many-to-many', de: 'Jede Beziehung auf Viele-zu-viele setzen' } },
        { id: 'C', text: { en: 'Delete the fact table', de: 'Die Faktentabelle löschen' } },
        { id: 'D', text: { en: 'Use bookmarks to hide the issue', de: 'Das Problem mit Lesezeichen ausblenden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A dimension should normally provide a unique key per member for predictable filtering. Deduplicating and using surrogate keys preserves analytical correctness much better than forcing many-to-many relationships everywhere.',
        de: 'Eine Dimension sollte normalerweise pro Element einen eindeutigen Schlüssel für vorhersehbare Filterung bereitstellen. Deduplizierung und Surrogatschlüssel bewahren die analytische Korrektheit deutlich besser, als überall Viele-zu-viele-Beziehungen zu erzwingen.'
      },
      hint: {
        en: 'Fix the dimension design, not the report symptoms.',
        de: 'Beheben Sie das Dimensionsdesign, nicht die Berichtssymptome.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-059', type: 'multiple',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two benefits are common reasons to use OneLake shortcuts instead of copying source data?',
        de: 'Welche zwei Vorteile sind häufige Gründe, OneLake-Shortcuts statt Kopien von Quelldaten zu verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Reduced data duplication', de: 'Reduzierte Datenduplizierung' } },
        { id: 'B', text: { en: 'Faster exposure of existing data to Fabric workloads', de: 'Schnellere Bereitstellung vorhandener Daten für Fabric-Workloads' } },
        { id: 'C', text: { en: 'Automatic conversion of every source into semantic models', de: 'Automatische Konvertierung jeder Quelle in semantische Modelle' } },
        { id: 'D', text: { en: 'Permanent removal of source-system security requirements', de: 'Dauerhafte Entfernung der Sicherheitsanforderungen des Quellsystems' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Shortcuts help teams reuse existing data without paying the cost of another copy. They also make it faster to expose that data to Fabric experiences because you do not need a full ingestion process first.',
        de: 'Shortcuts helfen Teams, vorhandene Daten wiederzuverwenden, ohne die Kosten einer weiteren Kopie zu tragen. Sie machen die Bereitstellung dieser Daten für Fabric-Erfahrungen auch schneller, weil kein vollständiger Ingestionsprozess vorab nötig ist.'
      },
      hint: {
        en: 'The right answers both reduce movement and accelerate access.',
        de: 'Die richtigen Antworten reduzieren beide die Datenbewegung und beschleunigen den Zugriff.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts'
    },
    {
      id: 'dp700-060', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why should you parameterize source and destination values in a Fabric pipeline?',
        de: 'Warum sollten Sie Quell- und Zielwerte in einer Fabric-Pipeline parametrisieren?'
      },
      options: [
        { id: 'A', text: { en: 'To make the pipeline reusable across environments and datasets', de: 'Um die Pipeline über Umgebungen und Datensätze hinweg wiederverwendbar zu machen' } },
        { id: 'B', text: { en: 'To remove the need for monitoring', de: 'Um die Notwendigkeit der Überwachung zu entfernen' } },
        { id: 'C', text: { en: 'To disable retries', de: 'Um Wiederholungen zu deaktivieren' } },
        { id: 'D', text: { en: 'To convert notebooks into reports', de: 'Um Notebooks in Berichte umzuwandeln' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Parameters reduce hard-coded values so the same pipeline logic can work for different folders, tables, or environments. That improves maintainability and supports cleaner promotion from development to production.',
        de: 'Parameter reduzieren fest kodierte Werte, sodass dieselbe Pipeline-Logik für verschiedene Ordner, Tabellen oder Umgebungen funktionieren kann. Das verbessert die Wartbarkeit und unterstützt eine sauberere Förderung von Entwicklung nach Produktion.'
      },
      hint: {
        en: 'Think reuse and environment flexibility.',
        de: 'Denken Sie an Wiederverwendung und Umgebungsflexibilität.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/pipeline-overview'
    },
    {
      id: 'dp700-061', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Fabric item is best when the serving layer must center on T-SQL views, stored procedures, and relational tables?',
        de: 'Welches Fabric-Element ist am besten geeignet, wenn sich die Bereitstellungsschicht auf T-SQL-Views, Stored Procedures und relationale Tabellen stützen muss?'
      },
      options: [
        { id: 'A', text: { en: 'Warehouse', de: 'Warehouse' } },
        { id: 'B', text: { en: 'Eventstream', de: 'Eventstream' } },
        { id: 'C', text: { en: 'KQL dashboard', de: 'KQL-Dashboard' } },
        { id: 'D', text: { en: 'Bookmark', de: 'Lesezeichen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A Fabric Warehouse is optimized for relational analytics and T-SQL-centric serving patterns. It is the right choice when the main workload is governed SQL consumption rather than Spark-first engineering.',
        de: 'Ein Fabric Warehouse ist für relationale Analysen und T-SQL-zentrierte Bereitstellungsmuster optimiert. Es ist die richtige Wahl, wenn der Haupt-Workload kontrollierter SQL-Konsum und nicht Spark-zentriertes Engineering ist.'
      },
      hint: {
        en: 'Pick the relational T-SQL serving engine.',
        de: 'Wählen Sie die relationale T-SQL-Bereitstellungs-Engine.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/data-warehousing'
    },
    {
      id: 'dp700-062', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Fabric capability should you use when a notebook must run as one step inside a larger orchestrated ingestion process?',
        de: 'Welche Fabric-Funktion sollten Sie verwenden, wenn ein Notebook als Schritt innerhalb eines größeren orchestrierten Ingestionsprozesses ausgeführt werden muss?'
      },
      options: [
        { id: 'A', text: { en: 'A pipeline activity that executes the notebook', de: 'Eine Pipeline-Aktivität, die das Notebook ausführt' } },
        { id: 'B', text: { en: 'A report bookmark', de: 'Ein Berichtslesezeichen' } },
        { id: 'C', text: { en: 'A workspace viewer role', de: 'Eine Viewer-Rolle im Arbeitsbereich' } },
        { id: 'D', text: { en: 'A sensitivity label', de: 'Eine Vertraulichkeitsbezeichnung' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Pipelines are the orchestration layer in Fabric and can execute notebooks as part of a controlled workflow. That lets you combine ingestion, transformation, loading, retries, and scheduling in one process.',
        de: 'Pipelines sind die Orchestrierungsschicht in Fabric und können Notebooks als Teil eines kontrollierten Workflows ausführen. So lassen sich Ingestion, Transformation, Laden, Wiederholungen und Zeitplanung in einem Prozess kombinieren.'
      },
      hint: {
        en: 'Use the orchestrator, not a reporting feature.',
        de: 'Nutzen Sie den Orchestrator, nicht eine Berichtsfunktion.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/pipeline-overview'
    },
    {
      id: 'dp700-063', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Why can a stored procedure be useful after loading warehouse tables?',
        de: 'Warum kann eine Stored Procedure nach dem Laden von Warehouse-Tabellen nützlich sein?'
      },
      options: [
        { id: 'A', text: { en: 'It can centralize post-load business logic and controlled execution in SQL', de: 'Sie kann Nachlade-Geschäftslogik und kontrollierte Ausführung in SQL zentralisieren' } },
        { id: 'B', text: { en: 'It can create OneLake shortcuts automatically for all files', de: 'Sie kann automatisch OneLake-Shortcuts für alle Dateien erstellen' } },
        { id: 'C', text: { en: 'It replaces the need for dimensions', de: 'Sie ersetzt die Notwendigkeit von Dimensionen' } },
        { id: 'D', text: { en: 'It renders KQL dashboards', de: 'Sie rendert KQL-Dashboards' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Post-load validation, standardization, and publishing logic are often easier to manage when encapsulated in stored procedures. This keeps repeatable SQL routines centralized and easier to govern.',
        de: 'Nachladevalidierung, Standardisierung und Veröffentlichungslogik lassen sich oft einfacher verwalten, wenn sie in Stored Procedures gekapselt sind. Dadurch bleiben wiederholbare SQL-Routinen zentral und leichter kontrollierbar.'
      },
      hint: {
        en: 'Think about reusable post-load SQL routines.',
        de: 'Denken Sie an wiederverwendbare SQL-Routinen nach dem Laden.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/tsql-surface-area'
    },
    {
      id: 'dp700-064', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'How is mirrored data typically stored in OneLake for analytical use?',
        de: 'Wie werden gespiegelte Daten in OneLake typischerweise für analytische Nutzung gespeichert?'
      },
      options: [
        { id: 'A', text: { en: 'As open Delta/Parquet data accessible to Fabric engines', de: 'Als offene Delta-/Parquet-Daten, auf die Fabric-Engines zugreifen können' } },
        { id: 'B', text: { en: 'Only as PowerPoint files', de: 'Nur als PowerPoint-Dateien' } },
        { id: 'C', text: { en: 'Only in semantic model memory', de: 'Nur im Arbeitsspeicher des semantischen Modells' } },
        { id: 'D', text: { en: 'Only as email attachments', de: 'Nur als E-Mail-Anhänge' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Mirroring brings source data into OneLake in an open analytical form so multiple Fabric engines can consume it. That openness is one reason mirrored data becomes useful across SQL, Spark, and BI scenarios.',
        de: 'Mirroring bringt Quelldaten in offener analytischer Form nach OneLake, sodass mehrere Fabric-Engines sie nutzen können. Diese Offenheit ist ein Grund dafür, dass gespiegelte Daten in SQL-, Spark- und BI-Szenarien nutzbar werden.'
      },
      hint: {
        en: 'Choose the open analytical storage answer.',
        de: 'Wählen Sie die Antwort mit offener analytischer Speicherung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/mirroring/overview'
    },
    {
      id: 'dp700-065', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Sales data is in a warehouse and customer reference data is exposed through a lakehouse SQL analytics endpoint in the same workspace. What is the best way to analyze them together without new copies?',
        de: 'Verkaufsdaten befinden sich in einem Warehouse und Kundenreferenzdaten werden über den SQL-Analyseendpunkt eines Lakehouse im selben Arbeitsbereich bereitgestellt. Wie analysieren Sie beides am besten gemeinsam, ohne neue Kopien zu erzeugen?'
      },
      options: [
        { id: 'A', text: { en: 'Use a cross-database T-SQL query', de: 'Eine T-SQL-Cross-Database-Abfrage verwenden' } },
        { id: 'B', text: { en: 'Export both sources to CSV first', de: 'Beide Quellen zuerst nach CSV exportieren' } },
        { id: 'C', text: { en: 'Create a paginated report only', de: 'Nur einen paginierten Bericht erstellen' } },
        { id: 'D', text: { en: 'Replace the warehouse with bookmarks', de: 'Das Warehouse durch Lesezeichen ersetzen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Cross-database queries are specifically designed for this kind of federated access pattern. They let you join supported Fabric data sources in SQL without introducing another persistence layer.',
        de: 'Cross-Database-Abfragen sind speziell für diese Art föderierten Zugriffs konzipiert. Sie ermöglichen es, unterstützte Fabric-Datenquellen in SQL zu verbinden, ohne eine weitere Persistenzschicht einzuführen.'
      },
      hint: {
        en: 'Join in place rather than creating another ETL step.',
        de: 'Verbinden Sie die Daten am Ort statt einen weiteren ETL-Schritt zu erzeugen.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/tutorial-sql-cross-warehouse-query-editor'
    },
    {
      id: 'dp700-066', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'What is the default distributed compute engine behind Fabric notebooks for large-scale data engineering?',
        de: 'Welche standardmäßige verteilte Rechen-Engine steckt hinter Fabric-Notebooks für groß angelegtes Data Engineering?'
      },
      options: [
        { id: 'A', text: { en: 'Apache Spark', de: 'Apache Spark' } },
        { id: 'B', text: { en: 'Microsoft Word', de: 'Microsoft Word' } },
        { id: 'C', text: { en: 'DAX', de: 'DAX' } },
        { id: 'D', text: { en: 'HTML', de: 'HTML' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Fabric notebooks are built for Spark-based data engineering workloads. Spark provides the distributed execution model needed for large data transformation tasks.',
        de: 'Fabric-Notebooks sind für Spark-basierte Data-Engineering-Workloads ausgelegt. Spark stellt das verteilte Ausführungsmodell bereit, das für große Datentransformationsaufgaben erforderlich ist.'
      },
      hint: {
        en: 'Pick the distributed analytics engine.',
        de: 'Wählen Sie die verteilte Analyse-Engine.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/author-execute-notebook'
    },
    {
      id: 'dp700-067', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'A central master data team publishes product reference data that many workspaces need to consume without maintaining separate copies. What should the consuming teams use?',
        de: 'Ein zentrales Stammdatenteam veröffentlicht Produktreferenzdaten, die viele Arbeitsbereiche konsumieren müssen, ohne separate Kopien zu pflegen. Was sollten die konsumierenden Teams verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'OneLake shortcuts', de: 'OneLake-Shortcuts' } },
        { id: 'B', text: { en: 'Notebook screenshots', de: 'Notebook-Screenshots' } },
        { id: 'C', text: { en: 'Manual email attachments', de: 'Manuelle E-Mail-Anhänge' } },
        { id: 'D', text: { en: 'Workbook macros', de: 'Arbeitsmappen-Makros' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Shortcuts are well suited for sharing centrally managed data across teams while avoiding additional storage copies. This supports reuse and consistency across workspaces.',
        de: 'Shortcuts eignen sich gut, um zentral verwaltete Daten teamübergreifend zu teilen und dabei zusätzliche Speicherkopien zu vermeiden. Das unterstützt Wiederverwendung und Konsistenz über Arbeitsbereiche hinweg.'
      },
      hint: {
        en: 'Use virtualization to share master data broadly.',
        de: 'Verwenden Sie Virtualisierung, um Stammdaten breit zu teilen.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts'
    },
    {
      id: 'dp700-068', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'A pipeline must run a copy, then a notebook, then a warehouse load in that exact order. Which pipeline concept enforces this behavior?',
        de: 'Eine Pipeline muss eine Kopieraktivität, dann ein Notebook und anschließend einen Warehouse-Ladevorgang genau in dieser Reihenfolge ausführen. Welches Pipeline-Konzept erzwingt dieses Verhalten?'
      },
      options: [
        { id: 'A', text: { en: 'Activity dependencies', de: 'Aktivitätsabhängigkeiten' } },
        { id: 'B', text: { en: 'Visual bookmarks', de: 'Visuelle Lesezeichen' } },
        { id: 'C', text: { en: 'Workspace domains', de: 'Arbeitsbereichsdomänen' } },
        { id: 'D', text: { en: 'Sensitivity labels', de: 'Vertraulichkeitsbezeichnungen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Activity dependencies define sequencing and success paths between pipeline steps. They are the standard way to express that one task must wait for another to finish successfully.',
        de: 'Aktivitätsabhängigkeiten definieren Reihenfolge und Erfolgspfade zwischen Pipeline-Schritten. Sie sind der Standardweg, um auszudrücken, dass eine Aufgabe auf den erfolgreichen Abschluss einer anderen warten muss.'
      },
      hint: {
        en: 'Think control flow inside the pipeline.',
        de: 'Denken Sie an den Kontrollfluss innerhalb der Pipeline.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-factory/pipeline-overview'
    },
    {
      id: 'dp700-069', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'When is a Fabric Warehouse usually a better choice than a Lakehouse?',
        de: 'Wann ist ein Fabric Warehouse normalerweise die bessere Wahl als ein Lakehouse?'
      },
      options: [
        { id: 'A', text: { en: 'When the primary need is a governed relational serving layer for T-SQL consumers', de: 'Wenn der Hauptbedarf eine kontrollierte relationale Bereitstellungsschicht für T-SQL-Verbraucher ist' } },
        { id: 'B', text: { en: 'When only Spark notebooks matter', de: 'Wenn nur Spark-Notebooks relevant sind' } },
        { id: 'C', text: { en: 'When the team wants only streaming event routing', de: 'Wenn das Team nur Streaming-Ereignisrouting möchte' } },
        { id: 'D', text: { en: 'When no tables are required', de: 'Wenn keine Tabellen benötigt werden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Warehouses fit best when the analytics serving layer is relational, strongly typed, and SQL-centric. Lakehouses are more flexible for file-based engineering and Spark workloads over open data.',
        de: 'Warehouses eignen sich am besten, wenn die analytische Bereitstellungsschicht relational, stark typisiert und SQL-zentriert ist. Lakehouses sind flexibler für dateibasiertes Engineering und Spark-Workloads über offenen Daten.'
      },
      hint: {
        en: 'Choose the SQL-first serving scenario.',
        de: 'Wählen Sie das SQL-zentrierte Bereitstellungsszenario.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-warehouse/data-warehousing'
    },
    {
      id: 'dp700-070', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'What is a key reason to apply V-Order optimization to Fabric Delta tables?',
        de: 'Was ist ein wesentlicher Grund, V-Order-Optimierung auf Fabric-Delta-Tabellen anzuwenden?'
      },
      options: [
        { id: 'A', text: { en: 'To improve analytical read performance while keeping the open Delta format', de: 'Um die analytische Leseleistung zu verbessern und dabei das offene Delta-Format beizubehalten' } },
        { id: 'B', text: { en: 'To convert DAX into SQL', de: 'Um DAX in SQL umzuwandeln' } },
        { id: 'C', text: { en: 'To replace all partitions with images', de: 'Um alle Partitionen durch Bilder zu ersetzen' } },
        { id: 'D', text: { en: 'To manage workspace access', de: 'Um den Arbeitsbereichszugriff zu verwalten' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'V-Order is a storage optimization that can improve scan efficiency for analytics workloads over Delta and Parquet data. It targets performance without requiring you to abandon open formats.',
        de: 'V-Order ist eine Speicheroptimierung, die die Scan-Effizienz für analytische Workloads über Delta- und Parquet-Daten verbessern kann. Sie zielt auf Leistung, ohne dass Sie offene Formate aufgeben müssen.'
      },
      hint: {
        en: 'Pick the option focused on read optimization for open data.',
        de: 'Wählen Sie die Option, die auf Leseoptimierung für offene Daten ausgerichtet ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/delta-optimization-and-v-order'
    },
    {
      id: 'dp700-071', type: 'single',
      domain: { en: 'Prepare and Serve Data', de: 'Daten vorbereiten und bereitstellen' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'In a medallion design, what is the silver layer usually responsible for?',
        de: 'Wofür ist die Silver-Schicht in einem Medallion-Design normalerweise zuständig?'
      },
      options: [
        { id: 'A', text: { en: 'Cleansed, validated, and conformed data ready for further refinement', de: 'Bereinigte, validierte und konforme Daten, die für weitere Veredelung bereit sind' } },
        { id: 'B', text: { en: 'Only raw landing files', de: 'Nur rohe Landedateien' } },
        { id: 'C', text: { en: 'Only final executive scorecards', de: 'Nur finale Executive-Scorecards' } },
        { id: 'D', text: { en: 'Only workspace security assignments', de: 'Nur Arbeitsbereichssicherheitszuweisungen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The silver layer typically standardizes and improves the quality of bronze data so it can feed gold-level business-ready products. It is the middle refinement stage between raw ingestion and curated consumption.',
        de: 'Die Silver-Schicht standardisiert und verbessert typischerweise die Qualität der Bronze-Daten, damit sie Gold-Produkte auf Geschäftsniveau speisen kann. Sie ist die mittlere Veredelungsstufe zwischen roher Ingestion und kuratierter Nutzung.'
      },
      hint: {
        en: 'Silver is the cleansed middle layer.',
        de: 'Silver ist die bereinigte mittlere Schicht.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-overview'
    },
    {
      id: 'dp700-072', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'What is the main advantage of Import mode for a Power BI semantic model?',
        de: 'Was ist der Hauptvorteil des Importmodus für ein Power-BI-semantisches Modell?'
      },
      options: [
        { id: 'A', text: { en: 'Very fast interactive query performance from in-memory storage', de: 'Sehr schnelle interaktive Abfrageleistung durch In-Memory-Speicherung' } },
        { id: 'B', text: { en: 'It always shows source changes instantly without refresh', de: 'Er zeigt Quelländerungen immer sofort ohne Aktualisierung an' } },
        { id: 'C', text: { en: 'It removes the need for relationships', de: 'Er macht Beziehungen überflüssig' } },
        { id: 'D', text: { en: 'It supports only text columns', de: 'Er unterstützt nur Textspalten' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Import mode stores model data in memory, which usually delivers the best interactive performance for reports. The trade-off is that refresh is required to pick up source changes.',
        de: 'Im Importmodus werden Modelldaten im Arbeitsspeicher gespeichert, was normalerweise die beste interaktive Leistung für Berichte liefert. Der Nachteil ist, dass Aktualisierungen erforderlich sind, um Quelländerungen zu übernehmen.'
      },
      hint: {
        en: 'Think speed, with refresh as the trade-off.',
        de: 'Denken Sie an Geschwindigkeit, wobei Aktualisierung der Kompromiss ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/fundamentals/power-bi-service-overview'
    },
    {
      id: 'dp700-073', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'When is DirectQuery usually the best choice for a semantic model table?',
        de: 'Wann ist DirectQuery normalerweise die beste Wahl für eine Tabelle in einem semantischen Modell?'
      },
      options: [
        { id: 'A', text: { en: 'When near real-time access to a very large external source is required and source performance is acceptable', de: 'Wenn nahezu Echtzeitzugriff auf eine sehr große externe Quelle erforderlich ist und die Quellleistung ausreichend ist' } },
        { id: 'B', text: { en: 'When you want the fastest possible performance regardless of source latency', de: 'Wenn Sie unabhängig von der Quelllatenz die schnellstmögliche Leistung möchten' } },
        { id: 'C', text: { en: 'When no source connectivity is available', de: 'Wenn keine Quellverbindung verfügbar ist' } },
        { id: 'D', text: { en: 'When the table should never be queried', de: 'Wenn die Tabelle niemals abgefragt werden soll' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'DirectQuery keeps data at the source and is useful when freshness requirements are high or import is impractical because of scale. The trade-off is that query performance depends on the source and network path.',
        de: 'DirectQuery belässt Daten an der Quelle und ist nützlich, wenn die Aktualitätsanforderungen hoch sind oder Import wegen des Umfangs unpraktisch ist. Der Kompromiss besteht darin, dass die Abfrageleistung von Quelle und Netzwerkpfad abhängt.'
      },
      hint: {
        en: 'Choose the freshness-over-cache scenario.',
        de: 'Wählen Sie das Szenario Aktualität statt Cache.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-directquery-about'
    },
    {
      id: 'dp700-074', type: 'multiple',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which two benefits can a composite model provide?',
        de: 'Welche zwei Vorteile kann ein Composite Model bieten?'
      },
      options: [
        { id: 'A', text: { en: 'Combine imported data with DirectQuery data in one model', de: 'Importierte Daten mit DirectQuery-Daten in einem Modell kombinieren' } },
        { id: 'B', text: { en: 'Use imported aggregation tables while leaving detail at the source', de: 'Importierte Aggregationstabellen verwenden und Detaildaten an der Quelle belassen' } },
        { id: 'C', text: { en: 'Eliminate the need for refresh or source queries entirely', de: 'Die Notwendigkeit von Aktualisierungen oder Quellabfragen vollständig eliminieren' } },
        { id: 'D', text: { en: 'Force every table into the same storage mode', de: 'Jede Tabelle in denselben Speichermodus zwingen' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Composite models let you mix storage modes to balance performance, scale, and freshness. A common pattern is imported aggregates for speed with DirectQuery detail for drillthrough or near-real-time access.',
        de: 'Composite Models ermöglichen die Kombination verschiedener Speichermodi, um Leistung, Skalierung und Aktualität auszubalancieren. Ein typisches Muster sind importierte Aggregationen für Geschwindigkeit und DirectQuery-Detaildaten für Drillthrough oder nahezu Echtzeitzugriff.'
      },
      hint: {
        en: 'One answer is about mixing modes, the other about imported aggregates over detailed source data.',
        de: 'Eine Antwort betrifft das Mischen von Modi, die andere importierte Aggregationen über detaillierten Quelldaten.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-directquery-about'
    },
    {
      id: 'dp700-075', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is the primary benefit of incremental refresh in a large semantic model?',
        de: 'Was ist der Hauptvorteil der inkrementellen Aktualisierung in einem großen semantischen Modell?'
      },
      options: [
        { id: 'A', text: { en: 'Only recent partitions are refreshed instead of reprocessing all historical data', de: 'Nur aktuelle Partitionen werden aktualisiert, anstatt die gesamte Historie neu zu verarbeiten' } },
        { id: 'B', text: { en: 'It removes the need for a Date table', de: 'Sie macht eine Datumstabelle überflüssig' } },
        { id: 'C', text: { en: 'It changes DirectQuery tables into Import automatically', de: 'Sie konvertiert DirectQuery-Tabellen automatisch in Import' } },
        { id: 'D', text: { en: 'It hides sensitive columns from users', de: 'Sie blendet vertrauliche Spalten für Benutzer aus' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Incremental refresh reduces refresh duration and resource usage by processing only the partitions that changed. Historical partitions can remain untouched, which is especially important for large models.',
        de: 'Inkrementelle Aktualisierung reduziert Aktualisierungsdauer und Ressourcenverbrauch, indem nur geänderte Partitionen verarbeitet werden. Historische Partitionen können unverändert bleiben, was besonders für große Modelle wichtig ist.'
      },
      hint: {
        en: 'Think partition-based refresh instead of full reload.',
        de: 'Denken Sie an partitionsbasierte Aktualisierung statt vollständigem Neuladen.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/connect-data/incremental-refresh-overview'
    },
    {
      id: 'dp700-076', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Why would you enable the large semantic model storage format?',
        de: 'Warum würden Sie das Speicherformat für große semantische Modelle aktivieren?'
      },
      options: [
        { id: 'A', text: { en: 'To support models that exceed the default size limits and improve XMLA write scenarios', de: 'Um Modelle zu unterstützen, die die Standardgrößen überschreiten, und XMLA-Schreibszenarien zu verbessern' } },
        { id: 'B', text: { en: 'To convert all measures to calculated columns', de: 'Um alle Measures in berechnete Spalten zu konvertieren' } },
        { id: 'C', text: { en: 'To remove the need for refresh scheduling', de: 'Um die Notwendigkeit einer Aktualisierungsplanung zu entfernen' } },
        { id: 'D', text: { en: 'To replace row-level security', de: 'Um Row-Level-Security zu ersetzen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Large semantic model format is intended for enterprise-scale models that need more storage than default limits allow. It also improves some write and management scenarios over XMLA-based tooling.',
        de: 'Das Speicherformat für große semantische Modelle ist für Modelle im Unternehmensmaßstab gedacht, die mehr Speicher benötigen, als die Standardgrenzen erlauben. Es verbessert außerdem einige Schreib- und Verwaltungsszenarien über XMLA-basierte Werkzeuge.'
      },
      hint: {
        en: 'Choose the feature for bigger models and advanced management.',
        de: 'Wählen Sie die Funktion für größere Modelle und erweiterte Verwaltung.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/enterprise/powerbi/service-premium-large-models'
    },
    {
      id: 'dp700-077', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which security feature should you use if unauthorized users must not even see that a sensitive table or column exists in the semantic layer?',
        de: 'Welche Sicherheitsfunktion sollten Sie verwenden, wenn nicht autorisierte Benutzer nicht einmal sehen dürfen, dass eine vertrauliche Tabelle oder Spalte in der semantischen Schicht existiert?'
      },
      options: [
        { id: 'A', text: { en: 'Object-level security', de: 'Object-Level-Security' } },
        { id: 'B', text: { en: 'Row-level security', de: 'Row-Level-Security' } },
        { id: 'C', text: { en: 'Bookmarks', de: 'Lesezeichen' } },
        { id: 'D', text: { en: 'Incremental refresh', de: 'Inkrementelle Aktualisierung' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Object-level security hides objects from unauthorized users, while row-level security only filters the rows that are visible. When the requirement is to hide the object itself, OLS is the better fit.',
        de: 'Object-Level-Security blendet Objekte für nicht autorisierte Benutzer aus, während Row-Level-Security nur die sichtbaren Zeilen filtert. Wenn die Anforderung darin besteht, das Objekt selbst zu verbergen, ist OLS die bessere Wahl.'
      },
      hint: {
        en: 'Hide the object itself, not just some rows.',
        de: 'Verbergen Sie das Objekt selbst, nicht nur einige Zeilen.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/security/security-overview'
    },
    {
      id: 'dp700-078', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is a key difference between a calculated column and a measure?',
        de: 'Was ist ein wesentlicher Unterschied zwischen einer berechneten Spalte und einer Measure?'
      },
      options: [
        { id: 'A', text: { en: 'A measure is evaluated at query time based on filter context, while a calculated column is stored row by row', de: 'Eine Measure wird zur Abfragezeit auf Basis des Filterkontexts ausgewertet, während eine berechnete Spalte zeilenweise gespeichert wird' } },
        { id: 'B', text: { en: 'A calculated column can be used only in paginated reports', de: 'Eine berechnete Spalte kann nur in paginierten Berichten verwendet werden' } },
        { id: 'C', text: { en: 'A measure cannot reference other measures', de: 'Eine Measure kann keine anderen Measures referenzieren' } },
        { id: 'D', text: { en: 'A calculated column is always faster and smaller', de: 'Eine berechnete Spalte ist immer schneller und kleiner' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Calculated columns materialize a value per row during processing, while measures are evaluated dynamically in the current filter context. That is why measures are often preferred for business logic that should remain flexible.',
        de: 'Berechnete Spalten materialisieren pro Zeile einen Wert während der Verarbeitung, während Measures dynamisch im aktuellen Filterkontext ausgewertet werden. Deshalb werden Measures oft für Geschäftslogik bevorzugt, die flexibel bleiben soll.'
      },
      hint: {
        en: 'Stored per row versus calculated on demand.',
        de: 'Pro Zeile gespeichert versus bei Bedarf berechnet.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/fundamentals/power-bi-service-overview'
    },
    {
      id: 'dp700-079', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'A model contains both OrderDate and ShipDate relationships between the Date table and the Sales table, but only one can be active. How should you calculate sales by ShipDate?',
        de: 'Ein Modell enthält sowohl Beziehungen über OrderDate als auch über ShipDate zwischen der Datumstabelle und der Verkaufstabelle, aber nur eine kann aktiv sein. Wie berechnen Sie Umsätze nach ShipDate?'
      },
      options: [
        { id: 'A', text: { en: 'Use USERELATIONSHIP in the measure to activate the ShipDate relationship during calculation', de: 'USERELATIONSHIP in der Measure verwenden, um die ShipDate-Beziehung während der Berechnung zu aktivieren' } },
        { id: 'B', text: { en: 'Delete the active OrderDate relationship', de: 'Die aktive OrderDate-Beziehung löschen' } },
        { id: 'C', text: { en: 'Convert the model to CSV', de: 'Das Modell in CSV konvertieren' } },
        { id: 'D', text: { en: 'Use bookmarks instead of relationships', de: 'Lesezeichen statt Beziehungen verwenden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'USERELATIONSHIP lets a measure temporarily use an inactive relationship for a specific calculation. That is the standard pattern when one fact table has multiple date roles.',
        de: 'USERELATIONSHIP ermöglicht es einer Measure, für eine bestimmte Berechnung vorübergehend eine inaktive Beziehung zu verwenden. Das ist das Standardmuster, wenn eine Faktentabelle mehrere Datumsrollen besitzt.'
      },
      hint: {
        en: 'Use the DAX function designed for inactive relationships.',
        de: 'Verwenden Sie die DAX-Funktion, die für inaktive Beziehungen vorgesehen ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/dax/userelationship-function-dax'
    },
    {
      id: 'dp700-080', type: 'multiple',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which two statements about aggregation tables are correct?',
        de: 'Welche zwei Aussagen über Aggregationstabellen sind korrekt?'
      },
      options: [
        { id: 'A', text: { en: 'They can improve performance for high-level queries', de: 'Sie können die Leistung für Abfragen auf höherer Ebene verbessern' } },
        { id: 'B', text: { en: 'They are useful when detailed data remains in DirectQuery or another lower-level source', de: 'Sie sind nützlich, wenn detaillierte Daten in DirectQuery oder einer anderen niedrigeren Quelle verbleiben' } },
        { id: 'C', text: { en: 'They eliminate the need for relationships', de: 'Sie machen Beziehungen überflüssig' } },
        { id: 'D', text: { en: 'They must always contain more detail than the base fact table', de: 'Sie müssen immer mehr Detail als die Basistabelle enthalten' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Aggregation tables speed up common summarized queries by answering them from pre-aggregated data. Detailed drill-down can still fall back to lower-grain tables, often in a different storage mode.',
        de: 'Aggregationstabellen beschleunigen häufige zusammengefasste Abfragen, indem sie diese aus voraggregierten Daten beantworten. Detaillierte Drilldowns können weiterhin auf Tabellen mit niedrigerer Granularität zurückfallen, oft in einem anderen Speichermodus.'
      },
      hint: {
        en: 'Think fast summaries over slower detail tables.',
        de: 'Denken Sie an schnelle Zusammenfassungen über langsameren Detailtabellen.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-directquery-about'
    },
    {
      id: 'dp700-081', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why would a BI team use deployment pipelines for semantic models and reports?',
        de: 'Warum würde ein BI-Team Deployment-Pipelines für semantische Modelle und Berichte verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'To promote validated BI artifacts safely across environments', de: 'Um validierte BI-Artefakte sicher über Umgebungen hinweg zu fördern' } },
        { id: 'B', text: { en: 'To replace row-level security logic', de: 'Um Row-Level-Security-Logik zu ersetzen' } },
        { id: 'C', text: { en: 'To convert KQL into DAX', de: 'Um KQL in DAX umzuwandeln' } },
        { id: 'D', text: { en: 'To remove the need for testing', de: 'Um die Notwendigkeit von Tests zu entfernen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Deployment pipelines support governed lifecycle management for BI content. They help teams validate models and reports in lower environments before promoting them to production.',
        de: 'Deployment-Pipelines unterstützen die kontrollierte Lebenszyklusverwaltung von BI-Inhalten. Sie helfen Teams, Modelle und Berichte in niedrigeren Umgebungen zu validieren, bevor diese in die Produktion gefördert werden.'
      },
      hint: {
        en: 'Think lifecycle promotion for BI artifacts.',
        de: 'Denken Sie an Lebenszyklusförderung für BI-Artefakte.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/cicd/deployment-pipelines/intro-to-deployment-pipelines'
    },
    {
      id: 'dp700-082', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What does the DAX CALCULATE function do at a high level?',
        de: 'Was macht die DAX-Funktion CALCULATE auf hoher Ebene?'
      },
      options: [
        { id: 'A', text: { en: 'It evaluates an expression in a modified filter context', de: 'Sie wertet einen Ausdruck in einem geänderten Filterkontext aus' } },
        { id: 'B', text: { en: 'It converts a measure into a report', de: 'Sie konvertiert eine Measure in einen Bericht' } },
        { id: 'C', text: { en: 'It creates workspace roles', de: 'Sie erstellt Arbeitsbereichsrollen' } },
        { id: 'D', text: { en: 'It compacts Delta files', de: 'Sie kompaktisiert Delta-Dateien' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'CALCULATE is one of the most important DAX functions because it changes filter context before evaluating an expression. Many business calculations rely on this behavior.',
        de: 'CALCULATE ist eine der wichtigsten DAX-Funktionen, weil sie den Filterkontext ändert, bevor sie einen Ausdruck auswertet. Viele Geschäftsberechnungen basieren auf genau diesem Verhalten.'
      },
      hint: {
        en: 'Focus on filter context manipulation.',
        de: 'Konzentrieren Sie sich auf die Manipulation des Filterkontexts.'
      },
      reference: 'https://learn.microsoft.com/en-us/dax/calculate-function-dax'
    },
    {
      id: 'dp700-083', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'What is the preferred modeling pattern when two dimensions relate to each other through a many-to-many business relationship?',
        de: 'Welches Modellierungsmuster wird bevorzugt, wenn zwei Dimensionen über eine fachliche Viele-zu-viele-Beziehung miteinander verknüpft sind?'
      },
      options: [
        { id: 'A', text: { en: 'Use a bridge table to manage the many-to-many relationship explicitly', de: 'Eine Brückentabelle verwenden, um die Viele-zu-viele-Beziehung explizit zu verwalten' } },
        { id: 'B', text: { en: 'Enable bidirectional filtering everywhere without analysis', de: 'Überall bidirektionale Filterung ohne Analyse aktivieren' } },
        { id: 'C', text: { en: 'Remove all keys from both tables', de: 'Alle Schlüssel aus beiden Tabellen entfernen' } },
        { id: 'D', text: { en: 'Flatten everything into report-level bookmarks', de: 'Alles in berichtsbezogene Lesezeichen abflachen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A bridge table makes many-to-many logic explicit and easier to reason about than relying on accidental ambiguity. It generally produces a more maintainable and predictable model.',
        de: 'Eine Brückentabelle macht Viele-zu-viele-Logik explizit und leichter verständlich, als sich auf zufällige Mehrdeutigkeit zu verlassen. Sie führt im Allgemeinen zu einem wartbareren und besser vorhersagbaren Modell.'
      },
      hint: {
        en: 'Model the complexity explicitly with a bridge.',
        de: 'Modellieren Sie die Komplexität explizit mit einer Brücke.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-084', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why should you mark a proper Date table in a semantic model?',
        de: 'Warum sollten Sie eine korrekte Datumstabelle in einem semantischen Modell markieren?'
      },
      options: [
        { id: 'A', text: { en: 'It enables reliable time-intelligence calculations over a dedicated date dimension', de: 'Sie ermöglicht zuverlässige Time-Intelligence-Berechnungen über eine dedizierte Datumsdimension' } },
        { id: 'B', text: { en: 'It automatically builds a warehouse', de: 'Sie erstellt automatisch ein Warehouse' } },
        { id: 'C', text: { en: 'It disables refresh', de: 'Sie deaktiviert die Aktualisierung' } },
        { id: 'D', text: { en: 'It replaces row-level security', de: 'Sie ersetzt Row-Level-Security' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A properly marked Date table gives time-intelligence functions a consistent calendar to work with. That improves correctness and clarity for YTD, MTD, prior period, and similar calculations.',
        de: 'Eine korrekt markierte Datumstabelle gibt Time-Intelligence-Funktionen einen konsistenten Kalender. Das verbessert die Korrektheit und Verständlichkeit für YTD-, MTD-, Vorperioden- und ähnliche Berechnungen.'
      },
      hint: {
        en: 'Think of time intelligence needing a trusted calendar.',
        de: 'Denken Sie daran, dass Time Intelligence einen vertrauenswürdigen Kalender benötigt.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-date-tables'
    },
    {
      id: 'dp700-085', type: 'multiple',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which two practices are recommended when implementing row-level security in a semantic model?',
        de: 'Welche zwei Vorgehensweisen werden bei der Implementierung von Row-Level-Security in einem semantischen Modell empfohlen?'
      },
      options: [
        { id: 'A', text: { en: 'Filter dimension tables where possible so security propagates through relationships', de: 'Wenn möglich Dimensionstabellen filtern, damit sich die Sicherheit über Beziehungen fortpflanzt' } },
        { id: 'B', text: { en: 'Test the roles by using View As before publishing broadly', de: 'Die Rollen vor breiter Veröffentlichung mit View As testen' } },
        { id: 'C', text: { en: 'Hide visuals and assume that is the same as security', de: 'Visuals ausblenden und annehmen, dass dies Sicherheit entspricht' } },
        { id: 'D', text: { en: 'Grant Admin rights to all report authors instead of defining roles', de: 'Allen Berichtserstellern Admin-Rechte geben, statt Rollen zu definieren' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'RLS is most manageable when it is modeled deliberately and tested carefully. Filtering dimensions usually gives cleaner propagation, and View As helps confirm that the rules behave as intended before users rely on them.',
        de: 'RLS ist am besten handhabbar, wenn sie bewusst modelliert und sorgfältig getestet wird. Das Filtern von Dimensionen führt meist zu sauberer Weitergabe, und View As hilft zu bestätigen, dass die Regeln wie beabsichtigt funktionieren, bevor Benutzer sich darauf verlassen.'
      },
      hint: {
        en: 'Choose one design best practice and one validation best practice.',
        de: 'Wählen Sie eine Design-Best-Practice und eine Validierungs-Best-Practice.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/enterprise/service-admin-rls'
    },
    {
      id: 'dp700-086', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Direct Lake semantic models are designed primarily to read data from which Fabric storage foundation?',
        de: 'Aus welcher Fabric-Speichergrundlage lesen Direct-Lake-semantische Modelle in erster Linie Daten?'
      },
      options: [
        { id: 'A', text: { en: 'Delta tables in OneLake', de: 'Delta-Tabellen in OneLake' } },
        { id: 'B', text: { en: 'Email attachments', de: 'E-Mail-Anhängen' } },
        { id: 'C', text: { en: 'Excel macros', de: 'Excel-Makros' } },
        { id: 'D', text: { en: 'Local desktop temp folders', de: 'Lokalen Desktop-Temp-Ordnern' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Direct Lake is built to analyze OneLake data directly, especially Delta-based tables from Fabric items such as lakehouses and warehouses. It minimizes duplication while preserving fast analytics.',
        de: 'Direct Lake ist dafür ausgelegt, OneLake-Daten direkt zu analysieren, insbesondere Delta-basierte Tabellen aus Fabric-Elementen wie Lakehouses und Warehouses. Dadurch wird Datenverdopplung minimiert und dennoch schnelle Analyse ermöglicht.'
      },
      hint: {
        en: 'Think OneLake Delta tables.',
        de: 'Denken Sie an Delta-Tabellen in OneLake.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/get-started/direct-lake-overview'
    },
    {
      id: 'dp700-087', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why is the DAX DIVIDE function often preferred over the / operator in measures?',
        de: 'Warum wird die DAX-Funktion DIVIDE in Measures oft dem Operator / vorgezogen?'
      },
      options: [
        { id: 'A', text: { en: 'It handles divide-by-zero cases more safely and clearly', de: 'Sie behandelt Division-durch-Null-Fälle sicherer und klarer' } },
        { id: 'B', text: { en: 'It creates a new workspace automatically', de: 'Sie erstellt automatisch einen neuen Arbeitsbereich' } },
        { id: 'C', text: { en: 'It can be used only in paginated reports', de: 'Sie kann nur in paginierten Berichten verwendet werden' } },
        { id: 'D', text: { en: 'It converts values to KQL', de: 'Sie konvertiert Werte in KQL' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'DIVIDE provides a cleaner way to handle division when the denominator may be zero or blank. That usually makes measures more robust and easier to read than manually guarding every expression.',
        de: 'DIVIDE bietet einen saubereren Weg, Division zu behandeln, wenn der Nenner null oder leer sein kann. Dadurch werden Measures meist robuster und leichter lesbar, als jede Berechnung manuell abzusichern.'
      },
      hint: {
        en: 'Think safe arithmetic in measures.',
        de: 'Denken Sie an sichere Arithmetik in Measures.'
      },
      reference: 'https://learn.microsoft.com/en-us/dax/divide-function-dax'
    },
    {
      id: 'dp700-088', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'A relationship between Product and Sales is unexpectedly many-to-many because Product has duplicate product keys. What should you do first?',
        de: 'Eine Beziehung zwischen Product und Sales ist unerwartet viele-zu-viele, weil Product doppelte Produktschlüssel enthält. Was sollten Sie zuerst tun?'
      },
      options: [
        { id: 'A', text: { en: 'Clean the Product table so the key is unique at the intended grain', de: 'Die Product-Tabelle bereinigen, sodass der Schlüssel auf der beabsichtigten Granularität eindeutig ist' } },
        { id: 'B', text: { en: 'Turn off all relationships', de: 'Alle Beziehungen deaktivieren' } },
        { id: 'C', text: { en: 'Create a bookmark', de: 'Ein Lesezeichen erstellen' } },
        { id: 'D', text: { en: 'Delete the Sales table', de: 'Die Sales-Tabelle löschen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Unexpected many-to-many relationships often signal a modeling problem rather than a feature requirement. Ensuring that dimension keys are unique at the intended grain is the first corrective step.',
        de: 'Unerwartete Viele-zu-viele-Beziehungen signalisieren oft ein Modellierungsproblem und nicht einen Funktionsbedarf. Sicherzustellen, dass Dimensionsschlüssel auf der beabsichtigten Granularität eindeutig sind, ist der erste Korrekturschritt.'
      },
      hint: {
        en: 'Fix key uniqueness before using more complex relationship patterns.',
        de: 'Beheben Sie zuerst die Eindeutigkeit des Schlüssels, bevor Sie komplexere Beziehungsmuster verwenden.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-089', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'When should you favor Import mode over DirectQuery for a semantic model?',
        de: 'Wann sollten Sie den Importmodus gegenüber DirectQuery für ein semantisches Modell bevorzugen?'
      },
      options: [
        { id: 'A', text: { en: 'When the fastest interactive report experience is important and scheduled refresh is acceptable', de: 'Wenn die schnellstmögliche interaktive Berichtserfahrung wichtig ist und eine geplante Aktualisierung akzeptabel ist' } },
        { id: 'B', text: { en: 'When the source must always be queried live for every visual', de: 'Wenn die Quelle für jedes Visual immer live abgefragt werden muss' } },
        { id: 'C', text: { en: 'When no model storage is allowed', de: 'Wenn keine Modellspeicherung erlaubt ist' } },
        { id: 'D', text: { en: 'When the source should remain unreachable', de: 'Wenn die Quelle unerreichbar bleiben soll' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Import mode is usually the best choice when report responsiveness matters more than instant source freshness. It trades scheduled refresh cycles for better query speed and reduced dependence on source-system latency.',
        de: 'Der Importmodus ist normalerweise die beste Wahl, wenn die Reaktionsfähigkeit von Berichten wichtiger ist als unmittelbare Quellaktualität. Er tauscht geplante Aktualisierungszyklen gegen bessere Abfragegeschwindigkeit und geringere Abhängigkeit von der Quelllatenz ein.'
      },
      hint: {
        en: 'Choose speed with periodic refresh.',
        de: 'Wählen Sie Geschwindigkeit mit periodischer Aktualisierung.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-directquery-about'
    },
    {
      id: 'dp700-090', type: 'multiple',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two practices typically improve semantic model performance and usability?',
        de: 'Welche zwei Vorgehensweisen verbessern typischerweise Leistung und Nutzbarkeit eines semantischen Modells?'
      },
      options: [
        { id: 'A', text: { en: 'Remove unused columns and tables', de: 'Nicht verwendete Spalten und Tabellen entfernen' } },
        { id: 'B', text: { en: 'Enable bi-directional filtering on every relationship by default', de: 'Bidirektionale Filterung standardmäßig für jede Beziehung aktivieren' } },
        { id: 'C', text: { en: 'Use numeric keys and a clear star schema where possible', de: 'Wenn möglich numerische Schlüssel und ein klares Sternschema verwenden' } },
        { id: 'D', text: { en: 'Keep every staging column visible to end users', de: 'Jede Staging-Spalte für Endbenutzer sichtbar lassen' } }
      ],
      correct: ['A', 'C'],
      explanation: {
        en: 'A lean model with only useful fields is easier to understand and usually performs better. Clear star-schema design and efficient keys reduce ambiguity and help the engine optimize queries.',
        de: 'Ein schlankes Modell mit nur nützlichen Feldern ist leichter zu verstehen und arbeitet in der Regel besser. Ein klares Sternschema und effiziente Schlüssel reduzieren Mehrdeutigkeiten und helfen der Engine, Abfragen zu optimieren.'
      },
      hint: {
        en: 'Choose the options that simplify the model and reduce noise.',
        de: 'Wählen Sie die Optionen, die das Modell vereinfachen und unnötiges Rauschen reduzieren.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-091', type: 'single',
      domain: { en: 'Implement and Manage Semantic Models', de: 'Semantische Modelle implementieren und verwalten' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'A semantic model contains both Sales and Budget fact tables that should be sliced consistently by Date, Product, and Region. What design is best?',
        de: 'Ein semantisches Modell enthält sowohl Sales- als auch Budget-Faktentabellen, die konsistent nach Date, Product und Region gefiltert werden sollen. Welches Design ist am besten?'
      },
      options: [
        { id: 'A', text: { en: 'Use shared conformed dimensions related to both fact tables', de: 'Gemeinsame konforme Dimensionen verwenden, die mit beiden Faktentabellen verbunden sind' } },
        { id: 'B', text: { en: 'Create separate Date, Product, and Region tables for each fact', de: 'Separate Date-, Product- und Region-Tabellen für jede Faktentabelle erstellen' } },
        { id: 'C', text: { en: 'Avoid relationships and rely on bookmarks', de: 'Beziehungen vermeiden und sich auf Lesezeichen verlassen' } },
        { id: 'D', text: { en: 'Flatten all data into one report-only table', de: 'Alle Daten in eine einzige berichtsinterne Tabelle abflachen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Shared conformed dimensions allow both fact tables to respond consistently to the same slicers and filters. This is a common and effective pattern for multi-fact semantic models.',
        de: 'Gemeinsame konforme Dimensionen sorgen dafür, dass beide Faktentabellen konsistent auf dieselben Slicer und Filter reagieren. Das ist ein häufiges und wirksames Muster für semantische Modelle mit mehreren Fakten.'
      },
      hint: {
        en: 'Think shared dimensions across multiple facts.',
        de: 'Denken Sie an gemeinsame Dimensionen über mehrere Fakten hinweg.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/guidance/star-schema'
    },
    {
      id: 'dp700-092', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which notebook cell language would you use to write a SQL query directly against Fabric data?',
        de: 'Welche Notebook-Zellsprache würden Sie verwenden, um direkt eine SQL-Abfrage gegen Fabric-Daten zu schreiben?'
      },
      options: [
        { id: 'A', text: { en: '%sql', de: '%sql' } },
        { id: 'B', text: { en: '%html', de: '%html' } },
        { id: 'C', text: { en: '%css', de: '%css' } },
        { id: 'D', text: { en: '%xml', de: '%xml' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Fabric notebooks support SQL cells for interactive querying alongside Spark code. This makes it easy to switch between engineering and analytical exploration in the same notebook.',
        de: 'Fabric-Notebooks unterstützen SQL-Zellen für interaktive Abfragen neben Spark-Code. Dadurch lässt sich im selben Notebook leicht zwischen Engineering und analytischer Exploration wechseln.'
      },
      hint: {
        en: 'Choose the SQL notebook magic.',
        de: 'Wählen Sie das SQL-Notebook-Magic.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/author-execute-notebook'
    },
    {
      id: 'dp700-093', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which reporting option is best for invoices or regulatory forms that require pixel-perfect layout and reliable PDF export?',
        de: 'Welche Berichtsoption eignet sich am besten für Rechnungen oder regulatorische Formulare, die pixelgenaues Layout und zuverlässigen PDF-Export erfordern?'
      },
      options: [
        { id: 'A', text: { en: 'Paginated report', de: 'Paginierter Bericht' } },
        { id: 'B', text: { en: 'Notebook', de: 'Notebook' } },
        { id: 'C', text: { en: 'Workspace role', de: 'Arbeitsbereichsrolle' } },
        { id: 'D', text: { en: 'Shortcut', de: 'Shortcut' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Paginated reports are designed for fixed-layout, printable, and highly formatted documents. They are the right choice when exact pagination and export fidelity matter more than interactive exploration.',
        de: 'Paginierte Berichte sind für festes Layout, Druckbarkeit und stark formatierte Dokumente ausgelegt. Sie sind die richtige Wahl, wenn exakte Seiteneinteilung und Exporttreue wichtiger sind als interaktive Exploration.'
      },
      hint: {
        en: 'Think fixed layout and print fidelity.',
        de: 'Denken Sie an festes Layout und Drucktreue.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/paginated-reports/paginated-reports-report-builder-power-bi'
    },
    {
      id: 'dp700-094', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is a KQL queryset in Fabric primarily used for?',
        de: 'Wofür wird ein KQL-Queryset in Fabric hauptsächlich verwendet?'
      },
      options: [
        { id: 'A', text: { en: 'Writing, saving, and sharing KQL queries against real-time analytical data', de: 'Zum Schreiben, Speichern und Teilen von KQL-Abfragen gegen Echtzeit-Analysedaten' } },
        { id: 'B', text: { en: 'Managing workspace permissions', de: 'Zum Verwalten von Arbeitsbereichsberechtigungen' } },
        { id: 'C', text: { en: 'Editing CSS for reports', de: 'Zum Bearbeiten von CSS für Berichte' } },
        { id: 'D', text: { en: 'Replacing semantic models', de: 'Zum Ersetzen semantischer Modelle' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A KQL queryset is the authoring and organization surface for KQL queries in Fabric. It helps users save, rerun, and share analytical queries for Eventhouse or KQL database scenarios.',
        de: 'Ein KQL-Queryset ist die Erstellungs- und Organisationsoberfläche für KQL-Abfragen in Fabric. Es hilft Benutzern, analytische Abfragen für Eventhouse- oder KQL-Datenbankszenarien zu speichern, erneut auszuführen und zu teilen.'
      },
      hint: {
        en: 'Pick the artifact made for KQL authoring and reuse.',
        de: 'Wählen Sie das Artefakt, das für KQL-Erstellung und Wiederverwendung gedacht ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/real-time-intelligence/kusto-query-set'
    },
    {
      id: 'dp700-095', type: 'multiple',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which two Fabric capabilities are a strong fit for a streaming telemetry analytics solution?',
        de: 'Welche zwei Fabric-Funktionen eignen sich besonders für eine Streaming-Telemetrie-Analyselösung?'
      },
      options: [
        { id: 'A', text: { en: 'Eventstream for ingesting and routing events', de: 'Eventstream zum Aufnehmen und Weiterleiten von Ereignissen' } },
        { id: 'B', text: { en: 'KQL queries over a real-time analytics store', de: 'KQL-Abfragen über einen Echtzeit-Analyse-Speicher' } },
        { id: 'C', text: { en: 'A daily Dataflow Gen2 refresh only', de: 'Ausschließlich eine tägliche Dataflow-Gen2-Aktualisierung' } },
        { id: 'D', text: { en: 'Manual CSV uploads once a week', de: 'Manuelle CSV-Uploads einmal pro Woche' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Streaming telemetry usually needs a real-time ingestion path and a query language optimized for time-series exploration. Eventstream and KQL are a natural combination for that pattern in Fabric.',
        de: 'Streaming-Telemetrie benötigt in der Regel einen Echtzeit-Ingestionspfad und eine Abfragesprache, die für Zeitreihenexploration optimiert ist. Eventstream und KQL sind in Fabric eine natürliche Kombination für dieses Muster.'
      },
      hint: {
        en: 'Pair the streaming intake feature with the time-series query feature.',
        de: 'Kombinieren Sie die Streaming-Aufnahmefunktion mit der Zeitreihen-Abfragefunktion.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-streams/overview'
    },
    {
      id: 'dp700-096', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'In KQL, what does using bin(Timestamp, 1h) inside summarize help you do?',
        de: 'Was ermöglicht die Verwendung von bin(Timestamp, 1h) innerhalb von summarize in KQL?'
      },
      options: [
        { id: 'A', text: { en: 'Group records into hourly time buckets', de: 'Datensätze in stündliche Zeit-Buckets gruppieren' } },
        { id: 'B', text: { en: 'Create semantic model relationships', de: 'Beziehungen in semantischen Modellen erstellen' } },
        { id: 'C', text: { en: 'Turn KQL into T-SQL', de: 'KQL in T-SQL umwandeln' } },
        { id: 'D', text: { en: 'Assign workspace roles', de: 'Arbeitsbereichsrollen zuweisen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Time binning groups events into consistent intervals so you can aggregate by hour, minute, or another time grain. It is a common pattern for trend charts and operational monitoring.',
        de: 'Zeit-Binning gruppiert Ereignisse in konsistente Intervalle, sodass Sie nach Stunde, Minute oder einer anderen Zeitgranularität aggregieren können. Es ist ein häufiges Muster für Trenddiagramme und Betriebsüberwachung.'
      },
      hint: {
        en: 'Think time buckets for aggregation.',
        de: 'Denken Sie an Zeit-Buckets für Aggregationen.'
      },
      reference: 'https://learn.microsoft.com/en-us/kusto/query/?view=microsoft-fabric'
    },
    {
      id: 'dp700-097', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which option lets SQL users perform ad-hoc exploration of Lakehouse data without writing Spark code?',
        de: 'Welche Option ermöglicht SQL-Benutzern die Ad-hoc-Exploration von Lakehouse-Daten, ohne Spark-Code zu schreiben?'
      },
      options: [
        { id: 'A', text: { en: 'The SQL analytics endpoint', de: 'Der SQL-Analyseendpunkt' } },
        { id: 'B', text: { en: 'A bookmark collection', de: 'Eine Lesezeichensammlung' } },
        { id: 'C', text: { en: 'A sensitivity label', de: 'Eine Vertraulichkeitsbezeichnung' } },
        { id: 'D', text: { en: 'A workspace domain', de: 'Eine Arbeitsbereichsdomäne' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The SQL analytics endpoint exposes lakehouse tables with T-SQL, which is ideal for analysts who prefer SQL over notebook-based Spark code. It lowers the entry barrier to exploring the same data in OneLake.',
        de: 'Der SQL-Analyseendpunkt stellt Lakehouse-Tabellen per T-SQL bereit und ist damit ideal für Analysten, die SQL gegenüber notebookbasiertem Spark-Code bevorzugen. Er senkt die Einstiegshürde für die Exploration derselben Daten in OneLake.'
      },
      hint: {
        en: 'Choose the T-SQL surface over lakehouse data.',
        de: 'Wählen Sie die T-SQL-Oberfläche über Lakehouse-Daten.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/lakehouse-overview'
    },
    {
      id: 'dp700-098', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Why should multiple Power BI reports connect to a shared Fabric semantic model instead of rebuilding logic in each report?',
        de: 'Warum sollten mehrere Power-BI-Berichte mit einem gemeinsamen semantischen Modell in Fabric verbunden werden, statt die Logik in jedem Bericht neu aufzubauen?'
      },
      options: [
        { id: 'A', text: { en: 'To reuse centralized measures, relationships, and security rules', de: 'Um zentralisierte Measures, Beziehungen und Sicherheitsregeln wiederzuverwenden' } },
        { id: 'B', text: { en: 'To disable filtering', de: 'Um Filterung zu deaktivieren' } },
        { id: 'C', text: { en: 'To replace all DAX with bookmarks', de: 'Um sämtliches DAX durch Lesezeichen zu ersetzen' } },
        { id: 'D', text: { en: 'To avoid using reports', de: 'Um die Verwendung von Berichten zu vermeiden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A shared semantic model creates one governed analytical layer for many reports. That keeps business logic consistent, reduces duplicate work, and ensures security is applied centrally.',
        de: 'Ein gemeinsames semantisches Modell schafft eine kontrollierte analytische Schicht für viele Berichte. Das hält Geschäftslogik konsistent, reduziert Doppelarbeit und stellt sicher, dass Sicherheit zentral angewendet wird.'
      },
      hint: {
        en: 'Think centralized business logic and security reuse.',
        de: 'Denken Sie an zentralisierte Geschäftslogik und Wiederverwendung von Sicherheit.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/get-started/direct-lake-overview'
    },
    {
      id: 'dp700-099', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is a common benefit of using built-in notebook result visualizations during exploration?',
        de: 'Was ist ein häufiger Vorteil der Verwendung integrierter Notebook-Ergebnisvisualisierungen während der Exploration?'
      },
      options: [
        { id: 'A', text: { en: 'They let you inspect distributions and trends quickly without leaving the notebook', de: 'Sie ermöglichen es, Verteilungen und Trends schnell zu untersuchen, ohne das Notebook zu verlassen' } },
        { id: 'B', text: { en: 'They replace warehouse tables permanently', de: 'Sie ersetzen Warehouse-Tabellen dauerhaft' } },
        { id: 'C', text: { en: 'They manage workspace roles', de: 'Sie verwalten Arbeitsbereichsrollen' } },
        { id: 'D', text: { en: 'They convert KQL into DAX', de: 'Sie konvertieren KQL in DAX' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Notebook visualizations are useful for rapid exploratory analysis because you can immediately chart query or DataFrame results. This shortens the feedback loop while you investigate data quality or trends.',
        de: 'Notebook-Visualisierungen sind für schnelle explorative Analysen nützlich, weil Sie Abfrage- oder DataFrame-Ergebnisse sofort darstellen können. Das verkürzt die Rückkopplungsschleife bei der Untersuchung von Datenqualität oder Trends.'
      },
      hint: {
        en: 'Choose the answer about quick in-notebook feedback.',
        de: 'Wählen Sie die Antwort zur schnellen Rückmeldung innerhalb des Notebooks.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/author-execute-notebook'
    },
    {
      id: 'dp700-100', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'When is a paginated report a better choice than a standard interactive Power BI report?',
        de: 'Wann ist ein paginierter Bericht die bessere Wahl als ein standardmäßiger interaktiver Power-BI-Bericht?'
      },
      options: [
        { id: 'A', text: { en: 'When exact page layout, printing, and document-style export matter most', de: 'Wenn exaktes Seitenlayout, Druck und dokumentorientierter Export am wichtigsten sind' } },
        { id: 'B', text: { en: 'When users need heavy cross-filtering on many visuals', de: 'Wenn Benutzer starke Kreuzfilterung über viele Visuals benötigen' } },
        { id: 'C', text: { en: 'When the goal is Spark-based data engineering', de: 'Wenn das Ziel Spark-basiertes Data Engineering ist' } },
        { id: 'D', text: { en: 'When managing workspace domains', de: 'Wenn Arbeitsbereichsdomänen verwaltet werden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Paginated reports are optimized for fixed-format business documents, while interactive Power BI reports are optimized for exploratory slicing and visual interaction. Choose based on how the result must be consumed.',
        de: 'Paginierte Berichte sind für fest formatierte Geschäftsdokumente optimiert, während interaktive Power-BI-Berichte für explorative Filterung und visuelle Interaktion optimiert sind. Wählen Sie nach der vorgesehenen Nutzung des Ergebnisses.'
      },
      hint: {
        en: 'Document output favors paginated reports.',
        de: 'Dokumentausgabe spricht für paginierte Berichte.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/paginated-reports/paginated-reports-report-builder-power-bi'
    },
    {
      id: 'dp700-101', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Fabric artifact is specifically designed to visualize and monitor real-time KQL query results for operational scenarios?',
        de: 'Welches Fabric-Artefakt ist speziell dafür gedacht, Echtzeit-KQL-Abfrageergebnisse für operative Szenarien zu visualisieren und zu überwachen?'
      },
      options: [
        { id: 'A', text: { en: 'KQL dashboard', de: 'KQL-Dashboard' } },
        { id: 'B', text: { en: 'Workspace role', de: 'Arbeitsbereichsrolle' } },
        { id: 'C', text: { en: 'Sensitivity label', de: 'Vertraulichkeitsbezeichnung' } },
        { id: 'D', text: { en: 'OneLake shortcut', de: 'OneLake-Shortcut' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'KQL dashboards are designed for operational and real-time analytical views built from KQL queries. They are a natural fit for monitoring telemetry, logs, and other live analytical streams.',
        de: 'KQL-Dashboards sind für operative und Echtzeit-Analyseansichten auf Basis von KQL-Abfragen ausgelegt. Sie eignen sich besonders für die Überwachung von Telemetrie, Logs und anderen Live-Analyse-Streams.'
      },
      hint: {
        en: 'Choose the real-time KQL visualization artifact.',
        de: 'Wählen Sie das Artefakt zur Echtzeitvisualisierung von KQL.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/real-time-intelligence/kusto-query-set'
    },
    {
      id: 'dp700-102', type: 'multiple',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which two KQL concepts are especially useful when analyzing the last hour of telemetry by five-minute intervals?',
        de: 'Welche zwei KQL-Konzepte sind besonders nützlich, wenn Sie die letzte Stunde Telemetrie in Fünf-Minuten-Intervallen analysieren?'
      },
      options: [
        { id: 'A', text: { en: 'A where filter on the recent time window', de: 'Ein where-Filter auf das aktuelle Zeitfenster' } },
        { id: 'B', text: { en: 'summarize with bin() for time-based grouping', de: 'summarize mit bin() für zeitbasierte Gruppierung' } },
        { id: 'C', text: { en: 'Workspace role inheritance', de: 'Vererbung von Arbeitsbereichsrollen' } },
        { id: 'D', text: { en: 'Report bookmarks', de: 'Berichtslesezeichen' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'A time filter narrows the data to the period of interest, and summarize with bin() groups records into consistent intervals for aggregation. Together they form a common time-series analysis pattern in KQL.',
        de: 'Ein Zeitfilter grenzt die Daten auf den interessierenden Zeitraum ein, und summarize mit bin() gruppiert Datensätze in konsistente Intervalle für Aggregationen. Zusammen bilden sie ein typisches Zeitreihenanalyse-Muster in KQL.'
      },
      hint: {
        en: 'One answer limits the time window, the other groups it.',
        de: 'Eine Antwort begrenzt das Zeitfenster, die andere gruppiert es.'
      },
      reference: 'https://learn.microsoft.com/en-us/kusto/query/?view=microsoft-fabric'
    },
    {
      id: 'dp700-103', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is a practical benefit of using both PySpark and SQL cells in the same Fabric notebook?',
        de: 'Was ist ein praktischer Vorteil der Verwendung von PySpark- und SQL-Zellen im selben Fabric-Notebook?'
      },
      options: [
        { id: 'A', text: { en: 'You can combine programmatic transformations with quick relational exploration in one workflow', de: 'Sie können programmatische Transformationen mit schneller relationaler Exploration in einem Workflow kombinieren' } },
        { id: 'B', text: { en: 'You can remove the need for source data', de: 'Sie können die Notwendigkeit von Quelldaten entfernen' } },
        { id: 'C', text: { en: 'You can replace workspace security', de: 'Sie können Arbeitsbereichssicherheit ersetzen' } },
        { id: 'D', text: { en: 'You can avoid using any compute engine', de: 'Sie können auf jede Compute-Engine verzichten' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Mixing PySpark and SQL lets analysts and engineers move between large-scale transformations and direct table-style exploration without switching tools. This makes notebooks versatile for end-to-end analysis.',
        de: 'Die Kombination von PySpark und SQL ermöglicht Analysten und Engineers den Wechsel zwischen groß angelegten Transformationen und direkter tabellarischer Exploration, ohne das Werkzeug zu wechseln. Dadurch werden Notebooks für End-to-End-Analysen sehr vielseitig.'
      },
      hint: {
        en: 'Think code-first transformation plus quick SQL inspection.',
        de: 'Denken Sie an code-first Transformation plus schnelle SQL-Inspektion.'
      },
      reference: 'https://learn.microsoft.com/en-us/fabric/data-engineering/author-execute-notebook'
    },
    {
      id: 'dp700-104', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'hard',
      scenario: null,
      question: {
        en: 'You need to investigate semi-structured log and time-series data with low-latency filtering and aggregation. Which query language is the best fit?',
        de: 'Sie müssen semistrukturierte Log- und Zeitreihendaten mit geringer Latenz filtern und aggregieren. Welche Abfragesprache passt am besten?'
      },
      options: [
        { id: 'A', text: { en: 'KQL', de: 'KQL' } },
        { id: 'B', text: { en: 'DAX', de: 'DAX' } },
        { id: 'C', text: { en: 'M', de: 'M' } },
        { id: 'D', text: { en: 'CSS', de: 'CSS' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'KQL is optimized for interactive exploration of logs, telemetry, and time-series data. Its operators are designed for fast filtering, parsing, and summarization over large event-oriented datasets.',
        de: 'KQL ist für die interaktive Exploration von Logs, Telemetrie und Zeitreihendaten optimiert. Seine Operatoren sind für schnelles Filtern, Parsen und Zusammenfassen über große ereignisorientierte Datensätze ausgelegt.'
      },
      hint: {
        en: 'Choose the language built for logs and telemetry.',
        de: 'Wählen Sie die Sprache, die für Logs und Telemetrie entwickelt wurde.'
      },
      reference: 'https://learn.microsoft.com/en-us/kusto/query/?view=microsoft-fabric'
    },
    {
      id: 'dp700-105', type: 'single',
      domain: { en: 'Explore and Analyze Data', de: 'Daten erkunden und analysieren' }, difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which reporting experience is best when business users need to slice, cross-filter, and drill through metrics interactively?',
        de: 'Welche Berichtsform eignet sich am besten, wenn Fachanwender Kennzahlen interaktiv schneiden, kreuzfiltern und per Drillthrough untersuchen müssen?'
      },
      options: [
        { id: 'A', text: { en: 'An interactive Power BI report connected to a semantic model', de: 'Ein interaktiver Power-BI-Bericht, der mit einem semantischen Modell verbunden ist' } },
        { id: 'B', text: { en: 'A static PDF exported from a notebook', de: 'Ein statisches PDF, das aus einem Notebook exportiert wurde' } },
        { id: 'C', text: { en: 'A workspace permission page', de: 'Eine Seite für Arbeitsbereichsberechtigungen' } },
        { id: 'D', text: { en: 'A CSV attachment', de: 'Ein CSV-Anhang' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Interactive Power BI reports are built for exploratory analysis, visual filtering, and drillthrough. When they sit on top of a governed semantic model, users get both flexibility and consistent business logic.',
        de: 'Interaktive Power-BI-Berichte sind für explorative Analysen, visuelle Filterung und Drillthrough ausgelegt. Wenn sie auf einem kontrollierten semantischen Modell aufsetzen, erhalten Benutzer sowohl Flexibilität als auch konsistente Geschäftslogik.'
      },
      hint: {
        en: 'Choose the interactive BI experience, not a static document.',
        de: 'Wählen Sie die interaktive BI-Erfahrung und kein statisches Dokument.'
      },
      reference: 'https://learn.microsoft.com/en-us/power-bi/fundamentals/power-bi-service-overview'
    }
  ]
};