DP-700 — Microsoft Fabric Data Engineer Associate Cheat Sheet

Cheat sheet: DP-700 reference for Microsoft Fabric data engineering decisions, services, security, performance, and troubleshooting.

This Cheat Sheet is independent exam-prep support for candidates preparing for Microsoft Fabric Data Engineer Associate (DP-700). Use it to review service choices, implementation patterns, security boundaries, and common traps before practicing full scenarios.

Use the tables for a quick pre-exam check. Expand a topic’s notes for explanations, examples, and additional distinctions.

Scope and study context

The DP-700 exam is not just a syntax test. Expect scenario-style decisions about how to design, ingest, transform, secure, monitor, and optimize data engineering solutions in Microsoft Fabric. The strongest candidates can explain why a Fabric item or pattern is the right fit, not only what it is called.

This page supports IT Mastery practice with original practice questions. It is not affiliated with Microsoft.

After this Cheat Sheet, move into original practice questions in focused sets rather than immediately taking a full mock exam.

Suggested topic drill order

DrillGoal
Fabric item selectionBuild fast recognition of lakehouse, warehouse, pipeline, dataflow, notebook, shortcut
OneLake and DeltaReview tables/files, shortcuts, schema, optimization, medallion patterns
IngestionPractice full versus incremental loads, CDC/watermarks, copy activity, source constraints
TransformationCompare Spark, SQL, and Dataflows Gen2 decisions
Security and governanceSeparate workspace, item, SQL, model, and source permissions
Monitoring and troubleshootingDiagnose failed runs, slow jobs, capacity issues, and stale data
End-to-end scenariosCombine design, implementation, security, and operations in one case

Review method

For each missed question:

  1. Write down the requirement you overlooked.
  2. Identify the Fabric item or feature the question was really testing.
  3. Note the wrong answer pattern that tempted you.
  4. Re-answer a similar topic drill before moving on.
  5. Read the detailed explanations, including why the distractors are wrong.

The goal is not memorizing answer letters. The goal is building a repeatable decision process for DP-700 scenarios.

DP-700 scope snapshot

DP-700 expects practical Microsoft Fabric data engineering judgment: choosing the right Fabric item, building ingestion and transformation flows, managing data in OneLake, securing analytics assets, and monitoring or optimizing workloads.

AreaWhat to be ready to doHigh-yield exam angle
Analytics solution implementationWorkspaces, lakehouses, warehouses, semantic models, OneLake, domains, deployment patternsKnow which Fabric item owns data, compute, security, and serving behavior
Data ingestion and transformationPipelines, Dataflows Gen2, notebooks, Spark jobs, SQL transformations, incremental loadsChoose orchestration vs transformation tools correctly
Data managementDelta tables, shortcuts, medallion architecture, schemas, files, tables, refresh patternsKnow when data is copied, virtualized, mirrored, or transformed
Security and governanceMicrosoft Entra ID, workspace roles, item permissions, SQL permissions, RLS, sensitivity labels, lineageDistinguish coarse access, data-level access, and report-level restrictions
Monitoring and optimizationPipeline runs, Spark jobs, SQL queries, Capacity Metrics, refresh failures, small files, partitioningDiagnose symptoms before scaling capacity

Microsoft Fabric mental model

Core hierarchy and terms

ConceptExam-ready meaningCommon trap
TenantOrganization-level Microsoft Fabric environmentTenant settings can enable, disable, or constrain features independently of workspace permissions
CapacityCompute resource backing Fabric workloadsSlow workloads may be code, data layout, concurrency, or capacity pressure; do not assume one cause
WorkspaceCollaboration and security boundary for Fabric itemsWorkspace roles are broad; use item/data permissions for finer control
ItemFabric artifact such as lakehouse, warehouse, pipeline, notebook, dataflow, semantic modelDeploying an item usually does not deploy the underlying data
OneLakeUnified SaaS data lake for FabricOneLake is storage; Fabric items provide experiences and compute over it
LakehouseDelta-based data lake item for files, tables, Spark, and SQL analytics endpointSQL analytics endpoint is primarily for querying lakehouse tables, not full SQL-first data warehousing
WarehouseSQL-first relational warehouse item in FabricChoose for T-SQL engineering and relational serving, not arbitrary raw file processing
Data pipelineOrchestration item for movement and control flowPipelines coordinate work; they are not the best place for complex row-by-row transformations
Dataflow Gen2Low-code Power Query-based ingestion and transformationGood for connector-rich shaping; less ideal for complex code-first engineering
NotebookCode-first Spark development itemInteractive state can hide missing setup; scheduled runs must be self-contained
Spark job definitionProduction-style Spark job executionUse when repeatable Spark execution matters more than notebook interactivity
ShortcutOneLake reference to supported external or internal dataShortcuts virtualize data; they do not automatically transform, cleanse, or copy it
MirroringReplication from supported operational sources into FabricDifferent from shortcuts: mirrored data is replicated for analytics scenarios
Semantic modelBI model used by Power BI/Fabric reportsRLS in a semantic model does not automatically secure raw lakehouse or warehouse access
Notes and examples

Fabric item selection matrix

RequirementPreferWhyAvoid / watch for
Store raw files and Delta tables, transform with SparkLakehouseFile + table experience, notebooks, Delta, medallion-friendlyDo not expect full SQL warehouse behavior through the lakehouse SQL endpoint
SQL-first dimensional warehouseWarehouseT-SQL DDL/DML, relational schemas, SQL servingDo not use it as a generic file landing zone
Low-code ingestion and transformationsDataflow Gen2Power Query, many connectors, data destinationsComplex orchestration belongs in pipelines
Copy data, run activities in order, branch, loop, scheduleData pipelineControl flow, copy activity, parameters, monitoringAvoid embedding complex business logic directly in pipeline expressions
Code-first large-scale transformationNotebook or Spark job definitionPySpark/SQL/Scala-style transformations and custom librariesDo not rely on interactive notebook state in production
Near-real-time replication from supported databasesMirroringReduces custom ingestion for supported sourcesNot a substitute for arbitrary transformations or unsupported sources
Query operational telemetry or event streamsEventstream/Eventhouse, when scenario requires Real-Time IntelligenceKQL/event-first analyticsNot the default choice for batch lakehouse/warehouse engineering
Avoid copying data from supported external storageOneLake shortcutVirtualized access from OneLake namespaceSource permissions, latency, and write support still matter
Serve Power BI with minimal import refresh over Fabric Delta tablesDirect Lake semantic modelReads data from OneLake in supported scenariosModel-level security is not raw data security

DP-700 mental model

Think in layers. Most exam scenarios can be solved by identifying the layer being tested.

LayerWhat to recognize quicklyCommon exam angle
Workspace and capacityWorkspaces contain Fabric items; capacity affects performance and throttlingChoose workspace roles, deployment approach, monitoring location
OneLake storageUnified storage layer; lakehouse tables use open Delta/Parquet patternsAvoid unnecessary copies, use shortcuts, manage files and tables
IngestionCopy activity, Dataflows Gen2, pipelines, mirroring, shortcutsChoose between low-code, orchestration, bulk copy, or no-copy access
TransformationSpark notebooks, Spark SQL, Dataflows Gen2, Warehouse T-SQLMatch transformation complexity to the right engine
ServingLakehouse SQL analytics endpoint, Warehouse, semantic model, Direct Lake patternsDecide how data should be queried or consumed
Security and governanceWorkspace roles, item permissions, SQL permissions, labels, lineage, Git/deploymentSeparate access control, collaboration, and deployment concerns
OperationsMonitoring hub, run history, Spark UI/logs, capacity metrics, query diagnosticsTroubleshoot failures, optimize performance, control cost/capacity pressure

Lakehouse, warehouse, and SQL endpoint distinctions

Feature / decisionLakehouseLakehouse SQL analytics endpointWarehouse
Primary personaData engineer / Spark engineerSQL consumer over lakehouse tablesSQL data engineer / analyst
StorageFiles and Delta tables in OneLakeQueries Delta tables exposed by lakehouseRelational warehouse data in OneLake-backed storage
Write pathSpark, Dataflows, pipelines, lakehouse UIGenerally read-oriented for lakehouse dataT-SQL DDL/DML and ELT
Best forBronze/silver/gold Delta, raw files, Spark transformationsBI/query access to curated lakehouse tablesDimensional models, SQL transformations, SQL serving
Table organizationTables area plus Files areaExposes registered lakehouse tablesSchemas, tables, views, procedures as supported
Common exam cue“Need raw files, notebooks, Delta, medallion”“Need SQL access to lakehouse tables”“Need T-SQL warehouse and relational modeling”
Common trapFiles are not automatically queryable as tablesDo not use it as the write engine for lakehouse tablesDo not treat it like Spark for semi-structured raw files
Notes and examples

Files vs tables in a lakehouse

LocationUse forExam note
FilesRaw or semi-structured files, landing zones, archives, unregistered dataGood for bronze landing, but not automatically a managed query table
TablesDelta tables registered for Spark and SQL analyticsUse for curated data that downstream SQL/BI tools should query
ShortcutsReferenced data from another OneLake location or supported external storageUseful for data sharing and avoiding copies; still plan security and performance

Data architecture patterns

Medallion architecture reference

    flowchart LR
	    A[Sources] --> B[Bronze<br/>Raw landing]
	    B --> C[Silver<br/>Cleaned and conformed]
	    C --> D[Gold<br/>Business-ready model]
	    D --> E[Warehouse / Semantic model / Reports]
Notes and examples
LayerPurposeTypical Fabric implementationQuality expectations
BronzePreserve source data with minimal changesLakehouse Files or Delta tables; pipeline copy; shortcuts; mirroring outputTraceability, ingestion metadata, no heavy business logic
SilverClean, standardize, deduplicate, conformSpark notebooks/jobs, Dataflows Gen2, Delta MERGEData types, keys, deduplication, valid records
GoldBusiness-ready facts/dimensions or aggregatesLakehouse Delta tables or Warehouse tablesStar schema, semantic names, performance-ready
ServingSQL/BI/ML consumptionWarehouse, SQL analytics endpoint, semantic model, Direct LakeSecurity, relationships, measures, query performance

Pattern selection

ScenarioRecommended pattern
Multiple raw source systems with different formatsLand to bronze first, then standardize in silver
Re-runnable daily loadsUse pipeline parameters, watermarks, idempotent writes, and MERGE
BI model over curated Fabric tablesGold Delta or warehouse tables plus semantic model
SQL team owns transformationsWarehouse with T-SQL ELT
Spark team owns transformationsLakehouse with notebooks or Spark job definitions
Data must remain in external supported storageShortcut if virtualization is acceptable; copy if isolation/performance/history is needed

Ingestion and orchestration quick reference

Ingestion method decision table

NeedChooseWhyWatch for
Scheduled copy from source to OneLake/warehouseData pipeline Copy activityOperational control, monitoring, retries, parametersSchema drift, credentials, gateway, incremental logic
Low-code source shapingDataflow Gen2Power Query transformations and destinationsRefresh duration, folding behavior, complex logic
Complex file parsing or custom transformationNotebook/Spark jobCode-level control and distributed processingDependency management and reproducibility
Avoid moving supported external dataShortcutReduces duplicationSource availability, security, performance, unsupported write patterns
Replicate supported operational DB dataMirroringSimplifies near-real-time analytics ingestionConfirm source support and downstream modeling approach
On-premises or private network sourcePipeline/dataflow with gateway or supported private connectivitySecure access to non-public dataCredential scope and gateway health
Event telemetryEventstream/Eventhouse if real-time scenarioStream-first processingDo not force event tooling for simple batch ingestion
Notes and examples

Pipeline design checklist

Design concernDP-700-ready approach
ParametersParameterize source path, target path, dates, environment, and load mode
Re-runsMake activities idempotent; avoid duplicate inserts
Incremental loadsUse watermark columns, change tracking/CDC where available, or source-specific modified timestamps
DependenciesUse activities for sequence, conditions, loops, and failure paths
SecretsStore credentials in Fabric connections or approved secret mechanisms; do not hard-code
ObservabilityCapture run IDs, row counts, source extract time, and failure messages
RecoveryUse retry policies where appropriate, but fix non-transient data issues explicitly
Environment movementUse deployment rules, parameters, or separate connections for dev/test/prod

Example pipeline expression pattern:

@concat('raw/orders/load_date=', formatDateTime(pipeline().parameters.LoadDate, 'yyyy-MM-dd'))

Incremental load reference

TechniqueUse whenImplementation ideaTrap
WatermarkSource has reliable modified timestamp or increasing keyStore last successful watermark; extract rows greater than itLate-arriving updates can be missed if watermark is advanced too early
Full reloadSmall dimension or unstable sourceReplace target or rebuild curated tableExpensive and risky for large facts
Append-onlySource only inserts immutable eventsAppend new records and partition by ingestion/event dateDuplicates require deduplication keys
Upsert/MERGERecords can changeMatch on business key or hash; update/insert targetMissing deletes unless source provides delete indicators
Snapshot comparisonNeed detect changes without CDCCompare current snapshot to previous snapshotMore compute and storage

Transformation reference

Transformation tool selection

RequirementBest fitReason
Complex Python/PySpark logicNotebook or Spark job definitionFull code control and scalable processing
SQL ELT and dimensional modelingWarehouseT-SQL-first development
Low-code shaping and connector transformsDataflow Gen2Power Query experience
Orchestrate several transformationsData pipelineSequence notebooks, dataflows, stored procedures, copy steps
Reusable production Spark executionSpark job definitionRepeatable, less interactive than notebooks
Ad hoc explorationNotebookInteractive development, visualization, quick testing
Notes and examples

PySpark Delta patterns

Write a bronze table from raw files:

df = (
    spark.read
    .option("header", "true")
    .csv("Files/raw/orders/")
)

(
    df.write
    .format("delta")
    .mode("append")
    .saveAsTable("bronze_orders")
)

Deduplicate and write a silver table:

from pyspark.sql.functions import col, row_number
from pyspark.sql.window import Window

w = Window.partitionBy("OrderId").orderBy(col("ModifiedDate").desc())

silver = (
    spark.table("bronze_orders")
    .withColumn("rn", row_number().over(w))
    .filter(col("rn") == 1)
    .drop("rn")
)

(
    silver.write
    .format("delta")
    .mode("overwrite")
    .option("overwriteSchema", "true")
    .saveAsTable("silver_orders")
)

Upsert with Delta MERGE:

from delta.tables import DeltaTable

updates = spark.table("staging_customer_updates")
target = DeltaTable.forName(spark, "silver_customer")

(
    target.alias("t")
    .merge(updates.alias("s"), "t.CustomerId = s.CustomerId")
    .whenMatchedUpdateAll()
    .whenNotMatchedInsertAll()
    .execute()
)

T-SQL warehouse patterns

Use T-SQL when the scenario is SQL-first and the target is a Fabric Warehouse.

CREATE TABLE dbo.DimCustomer
(
    CustomerKey INT NOT NULL,
    CustomerId VARCHAR(50) NOT NULL,
    CustomerName VARCHAR(200) NULL,
    IsCurrent BIT NOT NULL
);
MERGE dbo.DimCustomer AS target
USING dbo.StageCustomer AS source
    ON target.CustomerId = source.CustomerId
WHEN MATCHED THEN
    UPDATE SET
        CustomerName = source.CustomerName,
        IsCurrent = 1
WHEN NOT MATCHED THEN
    INSERT (CustomerKey, CustomerId, CustomerName, IsCurrent)
    VALUES (source.CustomerKey, source.CustomerId, source.CustomerName, 1);

Exam trap: use Warehouse T-SQL for warehouse tables. Use Spark or supported lakehouse operations for lakehouse Delta table writes; do not assume every T-SQL DML pattern applies to the lakehouse SQL analytics endpoint.

Transformation tool selection

NeedBetter fitWatch for
Simple column selection, filtering, type changesDataflow Gen2Query folding and source limitations
Reusable low-code data preparationDataflow Gen2Destination settings and refresh behavior
Complex business rules at scaleNotebookSpark performance, partitioning, shuffle, code quality
SQL warehouse transformationsWarehouse T-SQLDo not apply SQL Server tuning assumptions blindly
Delta upsert into lakehouse tableSpark SQL/PySpark MERGE patternCorrect keys and deduplication before merge
Orchestrate several transformationsPipelinePipeline coordinates; heavy work should run in the right engine
Data quality checksNotebook, SQL, or dataflow depending on designFail fast and log rejected records when required

Common transformation mistakes

MistakeBetter approach
Doing every transformation in a pipelineUse pipelines for orchestration and call notebooks, dataflows, or SQL as needed
Using full overwrite when only a few rows changedUse incremental load and merge/upsert
Partitioning by a unique IDPartition by columns commonly used for pruning, often date or region-like columns
Ignoring duplicate keys before MERGEDeduplicate and define deterministic conflict rules
Letting schema drift silently break downstream modelsValidate schema and handle expected changes explicitly
Optimizing only compute but ignoring file layoutOptimize table layout, file sizes, and filters

Modeling and serving data

Dimensional modeling quick reference

ObjectPurposeFabric implementationExam tip
Fact tableNumeric events or transactionsGold lakehouse table or warehouse tableKeep grain explicit
Dimension tableDescriptive contextGold lakehouse table or warehouse tableUse stable keys and business-friendly attributes
Degenerate dimensionIdentifier stored in fact, such as order numberFact columnAvoid unnecessary dimension table if no attributes
Slowly changing dimension Type 1Overwrite old attributesMERGE updateUse for corrections where history is not needed
Slowly changing dimension Type 2Preserve historyAdd effective dates/current flag/surrogate keysRequires careful joins and current-row filters
Aggregate tablePrecomputed summaryGold table or warehouse tableUse for performance when detail is too large for repeated queries
Semantic model measureBusiness calculationPower BI/Fabric semantic modelPrefer measures for reusable business logic
Notes and examples

Serving option decision table

Consumer needChooseWhy
BI over Fabric Delta tables with minimal refresh movementDirect Lake semantic modelUses OneLake-backed tables in supported scenarios
SQL analysts querying curated lakehouse dataLakehouse SQL analytics endpointFamiliar SQL query surface over lakehouse tables
SQL analysts building warehouse-style reportsWarehouseFull SQL-first serving pattern
Reports need curated relationships, measures, RLSSemantic modelCentral BI model and security layer
Data scientists need feature dataLakehouse tables/filesSpark-friendly access
External tools need SQL endpointWarehouse or lakehouse SQL analytics endpointChoose based on write/modeling needs

Direct Lake, Import, and DirectQuery

ModeChoose whenWatch for
Direct LakeData is in supported Fabric/OneLake tables and you want low-latency BI without import refresh copiesModel design, permissions, and fallback behavior matter
ImportNeed cached model performance, transformations, or sources not suitable for Direct LakeRequires refresh planning
DirectQueryNeed live query passthrough to supported sourceSource performance and query folding are critical

Security, permissions, and governance

Security layers

LayerControlsUse forCommon trap
Microsoft Entra IDUsers, groups, service principalsIdentity foundationPrefer groups over individual assignments
Tenant settingsFabric feature availability and governanceOrganization-wide controlsWorkspace admins cannot override disabled tenant features
Capacity permissionsWho can use/administer capacityResource governanceCapacity access is not the same as data access
Workspace rolesAdmin, Member, Contributor, Viewer-style collaborationBroad item access and authoringToo coarse for sensitive data segmentation
Item permissionsSharing and access to specific Fabric itemsLeast-privilege item sharingItem access may still require underlying data permissions
OneLake/data access controlsFolder/table/data access where supportedGranular lakehouse data controlDo not rely only on semantic model RLS for raw data protection
SQL permissionsGRANT/DENY-style database access where supportedWarehouse and SQL endpoint accessSQL access path can bypass report-only restrictions
Semantic model securityRLS/OLS-style BI restrictionsReport and model consumersDoes not automatically secure lakehouse files or warehouse tables
Sensitivity labelsClassification and protection metadataGovernance and compliance workflowsLabels identify/protect; they do not replace authorization design
Notes and examples

Workspace role exam cues

CueLikely answer
User must manage workspace settings and permissionsWorkspace Admin role or delegated admin pattern
User must create and edit Fabric itemsContributor/Member-style access, depending on governance needs
User must only consume reports/dataViewer or item-level sharing plus data permissions
External or app identity runs ingestionUse supported service principal/workspace identity/connection pattern; avoid personal credentials
Need least privilege for one dataset/tableUse item/data/SQL permissions rather than broad workspace admin

Governance checklist

  • Use Microsoft Entra groups for repeatable access assignments.
  • Separate development, test, and production workspaces.
  • Use sensitivity labels and endorsement for discoverability and trust.
  • Review lineage to understand downstream impact before schema changes.
  • Use domains or workspace organization patterns when many teams share Fabric.
  • Store credentials in Fabric connections or approved secret stores.
  • Validate that shortcuts and mirrored data inherit or enforce the intended access path.
  • Remember that report security and raw data security are separate design concerns.

Access control layers

LayerWhat it controlsCandidate trap
Workspace rolesCollaboration and broad access within a workspaceWorkspace access is not the same as row-level data security
Item permissionsAccess to specific Fabric itemsSharing an item may not grant every downstream data permission
SQL permissionsDatabase/warehouse object accessSQL permissions can differ from workspace collaboration roles
Semantic model securityRLS/OLS-style report consumption controlsModel security does not automatically secure raw lake files
Source permissionsAccess to shortcut or external data sourceA shortcut does not magically bypass source governance
Credentials/connectionsHow Fabric authenticates to sourcesDo not embed secrets in notebooks or hard-code credentials

Governance concepts to review

ConceptWhy it matters
LineageUnderstand upstream/downstream impact before changing tables, pipelines, or models
Sensitivity labelsCommunicate and enforce data classification expectations
Endorsement/certification of assetsHelps users identify trusted assets
Git integrationVersion control for supported Fabric items
Deployment pipelinesPromote content across dev/test/prod-style stages
Parameters and environment-specific settingsAvoid hard-coding workspace IDs, connection details, or paths
Least privilegeGrant only the access required for the user, service, or process

Security decision traps

  • Do not solve row-level restrictions by only assigning a Viewer workspace role.
  • Do not use broad workspace Admin access for routine pipeline execution.
  • Do not assume a user who can see a report should also access the raw lakehouse.
  • Do not hard-code credentials in notebooks or scripts.
  • Do not forget downstream access when sharing a report, SQL endpoint, or semantic model.

DevOps and lifecycle management

CapabilityUse forExam note
Git integrationVersioning supported Fabric item definitionsData is not versioned by Git integration
Deployment pipelinesPromote items across dev/test/prodConfigure environment-specific connections, parameters, and rules
Workspace separationIsolate lifecycle stagesAvoid developing directly in production
ParametersChange paths, dates, connection names, schemasCritical for reusable pipelines and notebooks
Fabric environmentsManage Spark libraries/settings where supportedHelps avoid “works in my notebook” dependency issues
Lineage viewImpact analysisUse before modifying shared tables or semantic models
Monitoring hubCentral run status visibilityUseful for operational troubleshooting

Common lifecycle traps:

  • Deployment moves supported item metadata, not all data.
  • Hard-coded lakehouse IDs, paths, or connection names break promotion.
  • Personal credentials can fail when the owner leaves or permissions change.
  • Notebook cell execution order can hide missing initialization.
  • Schema changes must be coordinated with SQL endpoints, semantic models, and reports.

Performance and optimization

Delta and lakehouse optimization

SymptomLikely issueFix pattern
Slow scans over many tiny filesSmall-file problemCompact/optimize Delta tables; batch writes appropriately
Queries scan too much dataPoor partition/filter designPartition selectively; filter early; avoid over-partitioning
BI slow on raw tablesRaw layout not serving-friendlyBuild gold tables or warehouse model
Duplicate rows after retryNon-idempotent appendUse load IDs, deduplication, and MERGE
Schema mismatch failuresSource drift or incorrect inferenceDefine schemas explicitly for critical pipelines
Spark job slow shuffleLarge joins/groupingRepartition carefully, reduce columns, filter early, consider broadcast for small dimensions
Lakehouse table not visible to SQLData written only as files or unregistered DeltaSave/register as a table in the lakehouse Tables area
High latency from shortcut sourceRemote read/source bottleneckCopy or mirror data when performance/isolation matters
Notes and examples

Warehouse and SQL optimization

AreaPractical guidance
Data modelPrefer star schema for BI; avoid wide, ambiguous, highly normalized serving layers
Query shapeSelect only needed columns, filter early, avoid unnecessary cross joins
ELTStage data, validate row counts, then merge/insert into curated tables
Statistics/metadataKeep metadata current where supported by the engine
ConcurrencyMonitor workload patterns before changing architecture
CapacityUse Capacity Metrics to distinguish inefficient query design from resource pressure

Spark optimization quick checks

CheckWhy it matters
Avoid reading entire bronze for small incremental updatesReduces scan and shuffle
Persist/cache only when reusedCaching everything wastes memory
Control partition count after large shufflesToo many or too few partitions hurts performance
Use explicit schemas for recurring filesAvoid expensive inference and inconsistent types
Use column pruningReading fewer columns reduces I/O
Use predicate pushdown-friendly filtersHelps Delta/Parquet skip data
Clean up old files carefullyVacuum/retention choices affect rollback and time travel expectations

What to know

OneLake is the storage foundation for Fabric. Lakehouses organize data for data engineering workloads and expose data through both file/table structures and SQL query surfaces.

ConceptReview pointTrap
Files areaGood for raw or unstructured filesFiles are not automatically the same as managed queryable tables
Tables areaDelta tables used for structured analyticsTable metadata and format matter; random files do not equal a governed table
Delta LakeTransaction log, ACID-style table operations, schema handling, time travel conceptsTreating Delta as “just Parquet files” misses transaction and metadata behavior
ShortcutsLogical references to data stored elsewhereShortcuts reduce copying but do not remove the need to understand permissions and source behavior
Medallion patternBronze raw, silver cleaned, gold curatedIt is an architecture pattern, not a substitute for clear security, quality, and lifecycle rules
Schema evolutionControlled handling of changing columns/typesBlind schema drift can break downstream tables, reports, or queries
Small filesToo many tiny files hurt query performanceCompact/optimize instead of only adding more partitions
PartitioningHelps when queries filter by partition columnsOver-partitioning high-cardinality columns can make performance worse

Bronze, silver, gold review

LayerPurposeTypical operations
BronzePreserve source-like dataCopy/load, append, basic metadata capture, source audit columns
SilverClean and standardizeType conversion, deduplication, null handling, conforming names, CDC application
GoldServe business-ready analyticsAggregation, dimensional modeling, star-schema-style tables, reporting-ready facts/dimensions

Common mistake: candidates choose a gold-layer serving pattern for raw ingestion requirements. Read whether the scenario asks for landing, cleansing, conforming, or serving.

Monitoring and troubleshooting

Where to look first

WorkloadPrimary places to checkWhat to inspect
Data pipelineRun history, activity output, Monitor hubFailed activity, error text, rows copied, duration, retry behavior
Dataflow Gen2Refresh/run detailsConnector errors, transformation step, destination write failure
Notebook/Spark jobSpark application details, driver/executor logs, notebook outputFailed cell, dependency error, skew, shuffle, memory pressure
Warehouse SQLQuery history/insights where availableLong-running query, blocking, inefficient joins, data volume
Semantic modelRefresh history, model settings, lineageSource permission, Direct Lake behavior, schema changes
Capacity-wide issueCapacity MetricsThrottling, overload, high concurrency, noisy workloads
Security issueWorkspace/item/data permissions, SQL grants, Entra groupsMissing group membership or mismatched access path
Notes and examples

Troubleshooting decision table

SymptomFirst questionLikely resolution
Pipeline succeeds but target has duplicatesIs the load idempotent?Add keys, watermark, deduplication, or MERGE logic
Pipeline cannot reach sourceIs source cloud, on-prem, private, or credential-restricted?Configure supported gateway/private connectivity and credentials
Notebook runs manually but fails on scheduleDoes it initialize everything?Attach correct lakehouse, set parameters, install dependencies, avoid hidden state
SQL endpoint does not show new lakehouse dataWas data saved as a registered Delta table?Write with saveAsTable or register table correctly
Report user sees denied dataWhich layer denies access?Check semantic model, item, SQL, and OneLake permissions separately
Direct Lake model behaves unexpectedlyIs the table/model mode supported and permissions valid?Validate source tables, model design, and fallback/refresh settings
Spark job is slow only on large daysIs data skewed or partitioned poorly?Inspect key distribution, filter early, repartition selectively
Warehouse query slows after schema/load changeDid data volume or query plan change?Review query shape, table design, statistics/metadata, and capacity pressure
Shortcut data is unavailableIs the external source accessible and authorized?Check source credentials, network, and shortcut target
Dev deployment works but prod failsAre environment-specific values hard-coded?Use parameters, deployment rules, and prod connections

Where to look first

ProblemFirst checks
Pipeline failedRun history, failed activity output, linked connection, parameters, source schema, permissions
Copy activity slowSource throughput, network/gateway constraints, partitioning, file count, parallelism settings
Dataflow refresh failedStep error, credentials, schema changes, query folding, destination configuration
Notebook failedSpark logs, cell output, package/library issues, permissions, table path, schema conflict
Warehouse query slowQuery shape, filters, joins, data volume, table design, monitoring/query diagnostics
Capacity throttling or delaysCapacity metrics, concurrency, background jobs, refresh schedules
Users cannot access dataWorkspace role, item permission, SQL permission, source/shortcut permission, semantic model permissions
Report/semantic model staleUpstream pipeline status, refresh history, Direct Lake/semantic model configuration, table update timing

Optimization levers

GoalPractical levers
Read less dataSelect only required columns, filter early, use partition pruning
Move less dataUse incremental loads, shortcuts, and staging only when needed
Write better dataUse Delta tables, appropriate file sizes, compaction/optimization patterns
Reduce Spark costAvoid unnecessary shuffles, handle skew, cache selectively
Improve SQL servingModel for common queries, avoid SELECT *, reduce joins where practical
Reduce failuresAdd validation, retries where appropriate, idempotent loads, clear audit logs
Control capacity pressureStagger schedules, manage concurrency, monitor capacity usage

Delta table maintenance concepts

ConceptPurposeTrap
Optimize/compactionReduce small-file overheadNot a substitute for good ingestion design
V-Order-style optimizationImprove read performance for analytics workloadsHelps reads but does not fix incorrect logic
VacuumRemove old files no longer needed by retention rulesCan affect time travel/history expectations
Schema enforcementPrevent unexpected incompatible writesMay require planned schema evolution
Time travel/historyUseful for audit and recovery scenariosRetention and cleanup policies matter

High-yield DP-700 distinctions

DistinctionRemember
Pipeline vs notebookPipeline orchestrates; notebook transforms with code
Dataflow Gen2 vs pipelineDataflow transforms low-code; pipeline controls workflow and movement
Shortcut vs copyShortcut references data; copy creates a new physical copy
Shortcut vs mirroringShortcut virtualizes supported data; mirroring replicates supported operational data
Lakehouse vs warehouseLakehouse is Spark/Delta/file-friendly; warehouse is SQL-first
Lakehouse SQL endpoint vs warehouseSQL endpoint queries lakehouse tables; warehouse is the SQL engineering store
Semantic model RLS vs data securityRLS restricts model/report queries, not necessarily direct raw data access
Git/deployment vs backupGit/deployment handles item definitions; it is not a data backup strategy
Scaling capacity vs optimizing workloadOptimize data layout and queries before assuming more capacity is the right answer
Bronze vs goldBronze preserves raw history; gold is business-ready and serving-oriented

Exam scenario playbook

If the scenario says…Think…
“Business analysts need SQL access to curated tables”Warehouse or lakehouse SQL analytics endpoint depending on write/model ownership
“Data engineers need to process JSON/CSV at scale”Lakehouse + Spark notebook/job
“Need a scheduled daily copy with parameters”Data pipeline
“Need low-code transformations using Power Query”Dataflow Gen2
“Need avoid duplicate rows during retry”Idempotent design, keys, MERGE, load audit
“Need avoid copying external data”Shortcut, if supported and performance/security are acceptable
“Need near-real-time replicated operational data”Mirroring, if source is supported
“Need promote solution from dev to prod”Deployment pipelines/Git + parameters/connections
“Need restrict report rows by user”Semantic model RLS, plus underlying data permissions if users can access raw data
“Need diagnose slow workloads across many Fabric items”Capacity Metrics first, then item-specific logs

Last-minute checklist

  • Can you explain when to choose lakehouse, warehouse, pipeline, dataflow, notebook, shortcut, and mirroring?
  • Can you describe bronze, silver, and gold responsibilities without mixing raw and serving layers?
  • Can you design an incremental load that survives retries?
  • Can you identify which permission layer controls a failed access scenario?
  • Can you distinguish semantic model security from OneLake/SQL data security?
  • Can you troubleshoot a failed pipeline, notebook, SQL query, or refresh from logs?
  • Can you name practical fixes for small files, poor partitioning, schema drift, and duplicate loads?
  • Can you promote Fabric items across environments without hard-coded dev values?

High-yield Fabric item decisions

Requirement in the scenarioUsually points toWhy
Store raw, curated, and analytics-ready data in open formatsLakehouseBest fit for Delta tables, Spark processing, medallion architecture
Build a relational data warehouse with T-SQL transformations and SQL servingWarehouseStrong fit for SQL-centric data engineering and BI serving
Orchestrate multiple steps with dependencies, parameters, retries, and schedulesData pipelinePipelines coordinate work; they are not usually the heavy transformation engine
Perform low-code shaping, cleansing, and Power Query transformationsDataflow Gen2Good for analysts/data engineers who need repeatable low-code ETL
Perform complex code-based transforms, custom logic, ML-adjacent preparation, or Spark-scale processingNotebookGives PySpark, Spark SQL, and code-level control
Access existing data without copying itShortcutLogical access to data; useful when duplication is not required
Incrementally ingest changed records from a sourcePipeline plus watermark/CDC logic, often followed by MERGEAvoid repeated full loads when only changes are needed
Replicate supported operational data into Fabric for analytics with minimal ETLMirroringUseful when the source and latency requirements match the feature
Serve curated SQL tables to reporting usersWarehouse or Lakehouse SQL endpoint, depending on write/query needsSQL endpoint is useful for querying lakehouse tables; Warehouse is better for SQL DML/warehouse design
Notes and examples

Fast elimination rule

If the question says:

WordingThink first
“Schedule,” “retry,” “dependency,” “parameterize activities”Pipeline
“Low-code,” “Power Query,” “combine and clean data visually”Dataflow Gen2
“PySpark,” “custom library,” “large-scale transformation”Notebook
“T-SQL warehouse,” “stored procedure,” “SQL DML”Warehouse
“No data duplication,” “use existing data in place”Shortcut
“Upsert,” “changed rows,” “incremental load”Watermark/CDC plus MERGE
“Files are visible but not queryable as tables”Register/create Delta tables or place data correctly as tables
“Users can open workspace but should not see all rows”Workspace role alone is not enough; use item/SQL/model-level security as appropriate

Lakehouse versus Warehouse

Decision pointLakehouseWarehouse
Main strengthOpen data engineering with Delta and SparkSQL-centric relational data warehousing
Transformation styleSpark notebooks, Spark SQL, Dataflows Gen2, pipelines writing to lakehouseT-SQL, SQL objects, stored procedures, warehouse modeling
Best forMedallion architecture, open data lake patterns, mixed file/table workloadsCurated relational warehouse, SQL users, dimensional reporting
Query surfaceSQL analytics endpoint for lakehouse tablesWarehouse SQL endpoint with stronger SQL DML orientation
Write expectationOften write through Spark, pipelines, or dataflowsWrite and transform with T-SQL patterns
Exam trapAssuming the lakehouse SQL endpoint is the same as a full warehouse write engineUsing a warehouse when the requirement is open lake storage and Spark processing

A practical rule: if the requirement emphasizes Delta tables, notebooks, open files, and Spark, think Lakehouse. If it emphasizes T-SQL transformations, relational warehouse objects, and SQL-first serving, think Warehouse.

Ingestion patterns

Choose the right ingestion method

ScenarioStrong optionWhy
Move data from a source into Fabric on a schedulePipeline with Copy activityBuilt for orchestrated movement
Clean and reshape data with low-code transformationsDataflow Gen2Power Query-style data preparation
Ingest only new or changed rowsPipeline with parameters/watermarks, CDC if available, then merge/upsertReduces load volume and avoids full reloads
Access data already stored in a supported external lakeShortcutAvoids duplicate storage and repeated copy jobs
Need complex parsing, enrichment, or custom librariesNotebookCode control and Spark scale
Need multiple activities with failure handlingPipelineDependencies, conditions, retries, parameters
Need SQL-based transformation after loadWarehouse SQL or Spark SQL depending on targetKeep transformations close to the serving/storage design
Notes and examples

Incremental load essentials

For incremental ingestion, look for:

  1. A reliable change indicator, such as modified timestamp, increasing key, version, or CDC feed.
  2. A stored watermark from the last successful run.
  3. A cutoff value for the current run.
  4. A load step that brings only the eligible changes.
  5. An upsert/merge step into the target.
  6. Audit handling for failed runs so the watermark is not advanced incorrectly.

Common trap: updating the watermark before the target write succeeds. If the run fails after extraction but before merge, advancing the watermark can skip data.

Full load versus incremental load

Use full load whenUse incremental load when
Dataset is smallDataset is large
Source lacks reliable change trackingSource provides modified date, CDC, or versioning
Reload is simple and cheapReload would exceed time, capacity, or cost expectations
Target can be safely overwrittenTarget must preserve history or avoid disruption
Data freshness requirements are looseFrequent refresh is required

SQL, Spark, and Delta quick reminders

Spark/notebook patterns

Know when notebooks are appropriate:

  • Custom PySpark transformations.
  • Large-scale joins and aggregations.
  • Data cleansing that requires code.
  • Delta table maintenance.
  • Reusable engineering notebooks triggered by a pipeline.
  • Exploratory validation before productionizing a pipeline.
Notes and examples

Performance traps:

SymptomLikely causeReview response
Slow joinLarge shuffle, skewed key, unnecessary columnsFilter early, select only needed columns, consider join strategy
Slow readsPoor partitioning, many small files, no predicate pruningOptimize layout and query filters
Slow writesToo many output files or poor partition choiceControl repartitioning and table maintenance
Repeated expensive computationRecomputing same intermediate dataCache only when reused and beneficial
Job fails after schema changeSchema mismatchAdd explicit schema management and validation

SQL patterns

For Warehouse-oriented questions, expect SQL design and operations:

PatternUse when
CTAS-style creationBuilding transformed tables from query results
ViewsAbstracting query logic or serving controlled projections
Stored proceduresEncapsulating repeatable SQL transformations
MERGE/upsertApplying changes from staging to target
Staging tablesLoading and validating before applying to curated tables
Star schemaServing facts and dimensions for analytics

Common trap: assuming every SQL Server feature or index-tuning habit maps directly to Fabric Warehouse. Focus on Fabric-appropriate table design, query shape, data volume reduction, and monitoring.

Deployment and lifecycle

DP-700 scenarios may test whether you can move a Fabric solution safely from development to production.

RequirementReview response
Track changes to notebooks, pipelines, or other supported itemsUse Git integration where supported
Promote content between environmentsUse deployment pipelines
Use different connections in dev/test/prodParameterize and remap settings during deployment
Avoid breaking productionTest in lower environment and validate dependencies
Understand impact of table changesUse lineage and dependency review
Repeat infrastructure/configuration consistentlyUse documented deployment patterns and avoid manual-only changes

Common mistake: treating deployment as only copying an item. Real deployment also includes connections, permissions, parameters, schedules, and downstream dependencies.

Common DP-700 scenario traps

TrapWhy it is wrongBetter thinking
“Use a notebook for everything”Not every task needs custom codeUse pipelines for orchestration, dataflows for low-code, warehouse for SQL
“Use a pipeline for all transformations”Pipelines coordinate work; heavy transforms belong elsewherePipeline calls the right engine
“Copy data even when a shortcut would work”Duplicates storage and introduces sync complexityUse shortcuts when no-copy access meets requirements
“Use full refresh for a large changing source”Wastes time and capacityUse incremental ingestion and merge
“Grant workspace Admin to fix access”Over-permissive and riskyDiagnose the correct permission layer
“Partition by high-cardinality column”Creates too many partitions and small filesPartition by useful pruning columns
“Ignore failed-run watermark behavior”Can skip recordsAdvance watermark only after successful target update
“Assume SQL endpoint equals Warehouse”Lakehouse and Warehouse have different write/serving patternsMatch engine to requirement
“Optimize compute before data layout”Bad layout can dominate performanceFix file sizes, filters, partitions, and table design
“Promote items without remapping connections”Dev settings can leak into prodParameterize and validate deployment settings

Quick decision checklist for exam questions

Before selecting an answer, identify:

  1. Target storage: lakehouse, warehouse, external source through shortcut, or semantic model.
  2. Transformation style: low-code, Spark/code, SQL, or orchestration-only.
  3. Load pattern: full, incremental, CDC, streaming/near-real-time, or no-copy.
  4. Security boundary: workspace, item, SQL object, semantic model, or source system.
  5. Operational requirement: schedule, retry, monitoring, deployment, lineage, or capacity optimization.
  6. Performance issue: compute, query shape, file layout, partitioning, source throughput, or concurrency.
  7. Failure behavior: idempotency, watermark handling, duplicate handling, and auditability.

If two answers seem plausible, prefer the one that satisfies the requirement with the least unnecessary complexity.

Mini review prompts

Use these as a quick readiness check before starting a DP-700 question bank.

PromptBest answer direction
You need to orchestrate a copy, run a notebook, and then execute a SQL step on a schedulePipeline
You need low-code cleansing using Power Query-style stepsDataflow Gen2
You need no-copy access to data already stored in a supported locationShortcut
You need complex PySpark transformations and Delta table maintenanceNotebook
You need a SQL-first curated dimensional storeWarehouse
You need to apply only changed records from a source tableIncremental load with watermark/CDC and merge/upsert
A lakehouse has raw files but SQL users cannot query them as tablesCreate/register proper tables or write to the Tables area in the correct format
A user can access a workspace but should only see certain rowsApply the appropriate data/model-level security, not only a workspace role
A pipeline skipped records after a failed loadReview watermark update timing and idempotency
A Spark job is slow after thousands of tiny files were createdCompact/optimize table layout and review write pattern

Final readiness checklist

You are ready for heavier mock exam practice when you can quickly explain:

  • When to use a Lakehouse instead of a Warehouse.
  • When a pipeline should orchestrate rather than transform.
  • When Dataflow Gen2 is preferable to a notebook.
  • How shortcuts differ from copying data.
  • How to design incremental loads without skipping records.
  • How Delta tables, partitioning, compaction, and schema handling affect performance and reliability.
  • How workspace roles differ from item, SQL, source, and model-level permissions.
  • How Git integration and deployment pipelines support lifecycle management.
  • Where to look when a pipeline, dataflow, notebook, SQL query, or capacity is failing.
  • How to choose the simplest Fabric pattern that satisfies the scenario.

Put the review into practice