Use this pack as a loop, not a one-way read: Plan → Learn (Base/Deep) → Practice → Review mistakes → Adjust Plan & Methods → Repeat. If you’re a beginner, start with the Base chapters to build the mental model, then read the Deep “Additional Content” to learn the enterprise patterns and diagnostic flows; if you’re mid-stage, alternate Deep with Practice so you convert knowledge into decision speed; if you’re revising, do Practice first, then use Base/Deep as targeted “fix the gap” reading. Recommended sequence when you first open the pack: About → Knowledge Explanation (Base) → Deep → Study Plan → Study Methods → Practice Questions and Answers, then cycle. Under limited time, prioritize: (1) decision rules and checklists, (2) scenario practice, (3) targeted Deep reading for your top error patterns; under a normal schedule, keep a steady daily routine and enforce spaced review; under intensive mode, compress by doing “practice-first” each day and using Base/Deep only to patch wrong answers.
Use a consistent daily routine (aligned to 4–6 pomodoros/day) with outputs you can verify:
Concept map (1 pomodoro): draw a simple diagram linking Workspace → Lakehouse/Warehouse/Eventhouse (KQL Database) → Semantic Model (Dataset) → Reports, and update it whenever a new constraint appears. Output: one-page map; Verify: explain it in 90 seconds.
Retrieval practice (1 pomodoro): write 10 short prompts from memory (no notes), then correct. Output: prompt deck; Verify: you can answer 8/10 without looking next day.
Interleaving (1–2 pomodoros): mix domains daily (security + ingestion + model) so you practice choosing between options under constraints. Output: “constraint → choice → because” sentences; Verify: each includes a trigger phrase and a validation cue.
Error log (daily, 10 minutes): every mistake must be tagged as one of: tool mismatch, wrong layer (permission vs RLS), relationship ambiguity, measure context, refresh/fallback assumption. Output: mistake log; Verify: each entry has a prevention rule and a test you will run next time.
Teach-back (weekly): explain one scenario out loud: “what I’d build, how I’d validate, how I’d deploy safely.” Output: 1-page script; Verify: you can reproduce the steps without notes.
Build these “always-on” artifacts and refine them:
Tool-selection matrix: Dataflow Gen2 vs Data Pipeline vs Notebook vs Spark Job Definition vs On-premises Data Gateway.
Validation flow card: ingest checks → transform checks → SQL aggregate checks → DAX Query View measure checks.
Security layering tree: workspace-level access controls → item-level access controls → RLS/CLS/OLS → labels/endorsements.
Promotion gate checklist: Deployment Pipeline stage promotion + post-deploy tests (access, correctness, freshness, performance).
Answer DP-600 by extracting constraints first, then mapping to the simplest correct option:
Constraint harvest (first 20–30 seconds): write 3–6 constraints (freshness, scale, on-prem, reuse, least privilege, real-time events, complex parsing).
Layer identification: decide whether the problem is access (Workspace/item), data visibility (RLS/CLS/OLS), data prep (Get/Transform/Query), or semantic behavior (relationships/DAX/mode).
Eliminate “governance ≠ permission” traps: sensitivity labels and endorsements are trust/discovery signals; they don’t grant access.
Validate your answer with a test cue: every good option implies a verification (row-count checks, distinct-key checks, DAX Query View test contexts, security role test identity, benchmark page).
Time management: if stuck between two tools, choose the one that directly satisfies the stated constraint (orchestration → Data Pipeline; complex parsing → Notebook/Spark Job Definition; connector + manageable transforms → Dataflow Gen2; on-prem connectivity → On-premises Data Gateway; telemetry/log events → Eventhouse (KQL Database)).
Mapping a requirement to the correct control layer: Workspace-level access controls vs item-level access controls vs RLS/CLS/OLS vs file-level access control.
Separating “can open the item” from “can see the correct data,” including why blank visuals can be expected under RLS/OLS.
Lifecycle operations: version control for a workspace, Power BI Desktop project (.pbip) collaboration, Deployment Pipeline promotion discipline, and impact analysis across dependencies.
Enterprise operations cues: when XMLA Endpoint is the intended tool for managing Semantic Model (Dataset) changes at scale.
Reuse governance: when to publish/update reusable assets (Power BI template (.pbit), Power BI data source (.pbids), shared semantic models) to reduce drift.
Build a one-page security layering decision tree and practice 10 mini-prompts where you must pick the layer and give one verification cue (e.g., test identity for RLS).
Use a “symptom → layer” drill:
“User can’t find item” → discovery/governance vs permissions question.
“User can find but can’t open” → Workspace/item access controls.
“User can open but sees blanks/wrong totals” → RLS/CLS/OLS + relationships + measure context.
For lifecycle prompts, respond with a standard structure: change artifact (.pbip) → review → deploy via Deployment Pipeline → post-deploy validation → rollback/roll-forward criteria.
Practice impact analysis in 3 layers: Lakehouse/Warehouse/Dataflow Gen2 changes → Semantic Model (Dataset) changes → report/visual impacts, always ending with “tests I will run.”
Treating endorsements/sensitivity labels as if they grant permissions (they don’t).
Over-focusing on “where to click” instead of “which layer explains the symptom.”
Forgetting environment-specific differences after deployment (bindings, identities, performance) and skipping post-deploy validation.
Not practicing role-based validation: you must be able to explain what you’d test for RLS/OLS and how you’d detect mis-mapped roles.
Correctly choosing ingestion/orchestration tools under constraints: Dataflow Gen2, Data Pipeline, Notebook, Spark Job Definition, On-premises Data Gateway.
Recognizing when the requirement is discovery vs ingestion: OneLake catalog and Real-Time hub.
Choosing the right destination shape: Lakehouse vs Warehouse vs Eventhouse (KQL Database) based on workload.
Designing transformations with maintainability and pushdown trade-offs (Power Query vs Spark vs SQL).
Validating and troubleshooting: SQL vs KQL vs Visual Query Editor vs DAX Query View, plus data quality outputs (reject tables, load metrics).
Build a tool-selection matrix with trigger phrases (orchestration/retries, complex parsing, on-prem, telemetry/events) and practice answering “choose tool + because.”
Adopt a default reliability pattern: load-status table + reject/quarantine tables + validation query pack; for every practice scenario, you must produce those three outputs.
Drill incremental and re-run safety: write a short playbook that explains how you avoid duplicates and handle late-arriving data (watermark windows + backfill).
Practice three-surface validation:
Warehouse / SQL Analytics Endpoint for table-level aggregates and joins
Eventhouse (KQL Database) for event/time-series slicing
DAX Query View when the question is “KPI in the report is wrong” (filter context and security)
Picking a tool by familiarity instead of constraint wording (e.g., using Notebook for everything, or forcing everything into Warehouse SQL).
Ignoring schema drift and re-run behavior (duplicates and silent failures are common exam themes).
Validating only at one layer (e.g., SQL totals) when the real issue is semantic measure context or security filters.
Not making quality outputs explicit—exam answers often reward “how you prove it worked.”
Modeling fundamentals with enterprise correctness: star schema, grain declaration, relationship cardinality/direction, bridge/many-to-many patterns.
DAX competence beyond basics: variables, iterators, table filtering, windowing, information functions—plus how to validate behavior under filters.
Enterprise features and when they’re appropriate: calculation groups, dynamic format strings, field parameters, composite models, large semantic model storage format.
Performance and scale: query/report visual performance improvements, DAX performance reasoning, and refresh strategy concepts (including incremental patterns).
Mode/behavior reasoning: Direct Lake concepts including default fallback and refresh behavior, and choosing between Direct Lake on OneLake vs SQL endpoints based on constraints.
Always start with a model diagram + grain statement, then practice “relationship audits” (uniqueness checks, ambiguity checks, expected filter paths).
Build a DAX test harness: five standard contexts you always test (All, single region, single product, single month, multi-select). Use this in every practice set.
Use “design → validate → optimize” as your routine:
Design: slim the model (remove unused/high-cardinality columns), keep relationships clean.
Validate: compare SQL aggregates to DAX measure behavior (DAX Query View), and validate security slices when RLS/OLS is present.
Optimize: rewrite expensive measures or move stable wrangling upstream (Transform data) while keeping measures focused on business logic.
For enterprise scenarios, answer with: governed shared Semantic Model (Dataset) → promotion discipline (Deployment Pipeline) → post-deploy checks → endorsements/labels for trusted discovery.
Memorizing DAX functions without practicing filter-context validation (most “wrong KPI” issues are context/relationship problems).
Accepting ambiguous relationships or many-to-many without a clear bridge pattern and validation checks.
Treating performance as “capacity only” instead of first checking model width/cardinality and measure complexity.
Confusing mode/refresh symptoms: when performance changes “suddenly,” you must be able to propose a fallback/mode-change hypothesis and a verification plan.