Open-source community study guide for the Microsoft DP-700: Implementing Data Engineering Solutions Using Microsoft Fabric certification exam. Licensed under MIT (see LICENSE). Aligned to the official skills-measured list updated July 21, 2026.
The repository is public; contributions arrive as pull requests. Keep this in mind: every change is visible to the community. Prefer additive, well-justified edits over silent rewrites, and verify factual claims against the official skills measured page before merging.
dp-700-study-guide/
├── certification/
│ ├── dp-700-overview.md # Certification index with exam overview and progress tracker
│ ├── 01-fabric-workspace-settings/ # Spark, domain, OneLake, Airflow workspace settings
│ ├── 02-lifecycle-management/ # Version control, database projects, deployment pipelines
│ ├── 03-security-governance/ # Workspace/item access, granular access controls, OneLake security, DDM, governance
│ ├── 04-orchestration/ # Choosing an orchestration tool, schedules/triggers, orchestration patterns
│ ├── 05-loading-patterns/ # Full/incremental loads, dimensional model loading, streaming loading pattern
│ ├── 06-batch-ingestion/ # Choosing a data store, OneLake shortcuts, mirroring, pipeline ingestion
│ ├── 07-batch-transformation/ # Choosing a transform tool, PySpark/T-SQL/KQL transformations, data quality patterns
│ ├── 08-streaming-data/ # Choosing a streaming engine, Eventstreams, Spark structured streaming, KQL real-time, windowing
│ ├── 09-monitoring-alerting/ # Monitoring surfaces, semantic model refresh, Activator alerts
│ ├── 10-error-resolution/ # Pipeline/Dataflow, notebook/T-SQL, real-time, and shortcut errors
│ ├── 11-performance-optimization/ # Lakehouse, warehouse, Spark, real-time, and pipeline/query optimization
│ └── resources/ # Practice questions, mock exams, exam tips, code examples, appendix, cheat sheets
├── i18n/ # Community translations — parallel tree per locale, see TRANSLATING.md
├── practice/ # Static adaptive practice quiz — HTML/JS/CSS + Python build.py + JSON banks
├── scripts/ # Repo tooling — validate-mermaid.mjs (CI-enforced diagram parser)
Each topic folder contains a named index file (e.g., orchestration.md, streaming-data.md) and numbered .md topic files.
Top-level files:
README.md— public-facing entry point with badges, exam overview, and quick navigation. Rewrite when the blueprint date or major features change.LICENSE— MIT.CLAUDE.md— this file. Project conventions for AI assistants and contributors.CONTRIBUTING.md/CONTRIBUTORS.md/CHANGELOG.md— public-facing community files.TRANSLATING.md— translation conventions: BCP-47 locale codes,i18n/<locale>/mirror layout, priority order, currency policy. Translations must not alter English source files.OBSIDIAN-SETUP.md— optional setup notes for editing the guide in Obsidian.
A static browser-based quiz live at https://kengio.github.io/dp-700-study-guide/. Auto-deployed by .github/workflows/deploy-practice.yml on any push that touches practice/** or the source markdown.
- Source of truth is markdown.
practice/build.pyparsescertification/resources/practice-questions/*.mdandmock-exam/questions.md+mock-exam-2/questions.md+mock-exam-3/questions.mdintopractice/data/*.json. The deploy workflow re-runsbuild.pyon every deploy, so the live site always reflects current markdown even if the committed JSON is stale. - Edit markdown, not JSON. New questions, fixes, and renumbering go in the source
.mdfiles; the JSON inpractice/data/is generated. Runpython3 practice/build.pylocally to refresh before committing. - Question format — see
practice/format.md. The parser supports three heading formats, acceptsA.orA)choices, and recognises both**B. <choice>**and**Correct Answer: B**styles inside the> [!success]-callout. Mock-exam domains are demarcated by<!-- DOMAIN N: <name> (~M questions) -->HTML comments; case-study sub-questions use###H3 headings under a## Case Study: ...H2. - Question
idis stable across rebuilds. Don't renumber questions inside a.mdfile without intent — it breaks learners' localStorage progress. dp700-practice-storage prefix. All quiz progress keys in browser localStorage are namespaceddp700-practice-<bank>-...so this guide's quiz never collides with the DP-800 guide's quiz if a learner has both open.
The exam blueprint is the source of truth. When Microsoft updates the skills-measured list:
- Update the "What's New" callout at the top of
certification/dp-700-overview.mdwith the new blueprint date and the diff vs. the prior version. - Update the "Updates" section in
certification/resources/final-review.mdto surface the highest-leverage new facts for exam day. - Update the blueprint date badge in
README.md. - Mark questions that target newly added skills with a
*(YYYY update)*suffix in the question heading so studiers can find them. - Move features from "Preview" to "GA" labelling as their status changes.
- July 21, 2026 refresh — the one change to know: "Configure Dataflows Gen2 workspace settings" → "Configure Apache Airflow workspace settings" (within Configure Microsoft Fabric workspace settings). Every other bullet is unchanged vs. the April 20, 2026 blueprint — never present another item as "new in July."
- Single certification — all content lives under
certification/ - Code examples go in
certification/resources/code-examples/{pyspark,tsql,kql}/as.mdfiles, never.py,.sql, or.kql
- Always
.mdfiles, never raw.py/.sql/.kql— store incertification/resources/code-examples/{pyspark,tsql,kql}/ - Fenced code blocks with language tags (
python,sql,kql,json,yaml) - Group related snippets under
##headings; add YAML frontmatter withtags - Every transformation topic shows PySpark/T-SQL/KQL side-by-side where all three apply
- Target: 300–600 lines; hard limit: ~800 lines (~20–25 KB)
- Exception:
mock-exam/questions.mdfiles — do not split - Split when 2+ distinct sub-topics can stand alone →
03-topic-part1.md+03-topic-part2.md:- Same number prefix; append
-part1/-part2 - Each part gets own YAML frontmatter and intro
- Terminal sections (Use Cases → Official Docs) go in Part 2 only; Part 1 ends with forward link
- Update topic index file; delete original; fix all links repo-wide
- Same number prefix; append
- Run markdownlint on every modified file; blank lines before/after headings (MD022)
- Language tags on all code blocks (
python,sql,kql,json) - Practice answers: Obsidian foldable
> [!success]- Answercallout - Practice choices: A/B/C/D on separate lines (no bullets); two trailing spaces for line breaks
Use callouts to break up dense text in topic files and cheat sheets. Standard types:
| Callout | Usage |
|---|---|
> [!info] |
Section intros, neutral context, "what this is" |
> [!tip] What the Exam Tests |
Top-of-file orientation: 2–4 bullets on what the exam specifically tests in this file |
> [!tip] Exam Tips |
Exam-specific advice in the terminal Exam Tips section |
> [!warning] Common Mistake |
Frequent errors, gotchas, "don't confuse X with Y" |
> [!note] |
Extra detail, caveats, "worth knowing but not critical" |
> [!success]- Answer |
Collapsed practice question answers (foldable) |
> [!abstract] |
Quick-reference summaries at top of cheat sheets and topic files |
- Use
> [!tip] What the Exam Testsimmediately after the[!abstract]callout, before the first##section - Use
> [!tip] Exam Tipsblocks instead of bare bullet lists for the Exam Tips section in topic files - Use
> [!warning]to highlight traps covered in the Common Issues section - Highlight key terms in tables with
==text==(Obsidian highlight syntax)
- Architecture diagrams: Mermaid (
flowchart,sequenceDiagram,graph) - Directory trees: ASCII text, not Mermaid
mindmapnode text must not contain()[]{}or"— Mermaid parses those as node-shape delimiters, so one stray pair breaks the entire diagram ("Error parsing Mermaid diagram!"). Quoting the string does not help; rewrite with-or,(Runtime logs - 3 severities, notRuntime logs (3 severities)). This applies to every## Quick Recallmindmap in the topic index files- Validate after touching any diagram:
cd scripts && npm ci && npm run validate:mermaid— parses every```mermaidblock in the repo with the real Mermaid parser. TheLintworkflow runs the same check on every PR - Screenshots:
images/<feature>/; standard markdownwith caption; ≤800 px wide
- Link to files, not folders (
path/to/orchestration.md, notpath/to/) - Topic index files are named after their folder (e.g.,
./orchestration.md,./streaming-data.md) — neverREADME.md - Always use
./filename.mdfor same-folder links — bare filenames resolve ambiguously in Obsidian - Verify target files exist after edits
Terminal sections in this exact order:
## Use Cases## Common Issues & Errors## Best Practices(optional)## Exam Tips## Key Takeaways## Related Topics## Official Documentation---separator + navigation link (always last)
Nav format: **[← Previous](./NN-prev.md) | [↑ Back to Section](./topic-index.md) | [Next →](./NN-next.md)**
where topic-index.md is the folder's named index file (e.g., ./orchestration.md, ./streaming-data.md)
- Part 1 files: end with only forward link to Part 2
- Part 2 files: full three-way nav
Required: YAML frontmatter (title, type: certification, aliases, tags), How to Use This Guide (numbered steps including final-review.md), Exam Overview table, Domain Weights (Mermaid pie), Study Topics table with weights, Practice & Resources table (must include Final Review row), Study Progress Tracker (checkboxes).
Required: YAML frontmatter (title, type: category, tags, status), topic title with exam weight, ## Quick Recall Mermaid mindmap (first section, before Topics Overview), Topics Overview (Mermaid flowchart), Section Contents table, Key Concepts, Related Resources, Back/Next navigation.
statusfield values:draft,in-progress,complete- Update
statusin each topic index as sections are completed — do not leave complete sections asdraft ## Quick Recallmindmap lists the 3–6 most testable facts per section — usemindmapdiagram type
Every topic file must open with this pattern, in order, before the first ## content section:
- YAML frontmatter
# Title## Overviewparagraph (1–3 sentences)> [!abstract]callout — 2–4 bullet summary of what the file covers> [!tip] What the Exam Testscallout — 2–4 bullets on specifically what the exam tests from this file---separator- First
##content section
Each cheat sheet (resources/cheat-sheets/) ends with:
## Gotchas & Traps— 4–8 bullets on common errors and exam traps specific to the topic## Before the Exam, I Can…— 5–8 unchecked checkboxes (- [ ]) the reader should be able to tick before taking the exam
Labs live in certification/resources/labs/. Each lab follows this order:
- YAML frontmatter
# Lab NN: Title## Overviewparagraph, plus an> [!abstract]summary> [!info] Prerequisites— names the specific prior labs required (and any soft/optional dependency), plus an estimated time## Steps— numbered steps with complete, runnable code and> [!success] Expected resultcallouts after the steps that produce a checkable outcome## Cleanup— notes which artifacts must survive for later labs vs. what's safe to remove## What the Exam Asks About This- Back/Next navigation
Labs chain together on one shared workspace (dp700-labs) and build on the Lab 01 dataset — a later lab's Prerequisites callout must name every earlier lab it depends on. Target length is 200–450 lines.
Each mock exam (resources/mock-exam/, resources/mock-exam-2/, resources/mock-exam-3/) has:
mock-exam-N.md— landing page with instructions, scoring guide, domain breakdownquestions.md— 50 questions total: 45 standalone (Qs 1–45) followed by 1 case-study block (Qs 46–50)mock-exam-N-debrief.md— per-question map to topic file + cheat sheet, plus a "study plan by miss count" section that triages study by domain weakness
Mock exams end with a case-study block to mirror the real DP-700 format:
- One multi-paragraph scenario at the start of the block
- 5 linked sub-questions covering 2–3 domains in a single business scenario
- Cross-domain by design — exam case studies typically blend orchestration, security, and performance
- Each sub-question has its own difficulty rating and follows the same answer-callout format as standalone questions
Use > [!note] Mental model — <topic> callouts to give learners durable, concrete analogies for abstract concepts (e.g., medallion architecture = bronze/silver/gold refinement stages, OneLake shortcuts = symlinks across workspaces, watermarking = a tide line marking the last-processed row). Place these in topic files near the relevant concept, after the Common Mistake warning.
- Every "choose between X/Y/Z" blueprint bullet (orchestration tool, data store, transform tool, streaming engine) gets a decision matrix table + a
[!note] Mental modelcallout + at least one worked scenario question. - Every transformation topic shows PySpark/T-SQL/KQL side-by-side where all apply.
- Every topic file embeds 2–3 inline practice questions with foldable answers.
- Domain 1 — Implement and manage an analytics solution (30–35%): 01-fabric-workspace-settings, 02-lifecycle-management, 03-security-governance, 04-orchestration
- Domain 2 — Ingest and transform data (30–35%): 05-loading-patterns, 06-batch-ingestion, 07-batch-transformation, 08-streaming-data
- Domain 3 — Monitor and optimize an analytics solution (30–35%): 09-monitoring-alerting, 10-error-resolution, 11-performance-optimization