Data-architectuur (referentiepatroon)¶
Deze pagina beschrijft een referentie-data-architectuur om een data platform in medallion-stijl te bouwen bovenop het Base Fabric Data Platform. Ze komt uit de architectuurdiagrammen van de oplossing. Het platform levert de workspaces, Lakehouses, Warehouses, connections en het netwerk. Het levert of dwingt de onderstaande layers, schema's, pipelines of dbt-modellen niet af. Ze zijn een startpunt voor het workload team.
Referentieontwerp, jouw ontwerp kan afwijken
Zie de namen (staging, active, landing, bronze, silver, gold) als een conventie die je kunt overnemen of
aanpassen. Het platform vereist ze niet.
Layers¶
flowchart LR
subgraph src["Sources"]
s1["Files and blob storage"]
s2["Databases: Oracle, SQL Server, Azure SQL"]
s3["API, SharePoint, notebooks"]
end
subgraph lh["Lakehouse"]
stg["Files/staging: full history"]
act["Files/active: latest only"]
end
subgraph wh["Warehouse layers (dbt)"]
land["Landing"]
br["Bronze"]
sil["Silver"]
gold["Gold"]
end
s1 -->|"copy files, shortcut"| stg
stg -->|"select latest"| act
s2 -->|"copy job, mirroring"| land
s3 -->|"notebook ingestion"| stg
act -->|"external tables"| land
land --> br --> sil --> gold
gold --> serve["Serve: Power BI, ML, API"]
| Layer | Wat het bevat | Opmerkingen |
|---|---|---|
Lakehouse Files/staging |
Het volledige historische archief van bestandsgebaseerde bronnen | Pad <source>/<table>/<date>/*.parquet. Permanent archief, geen aparte archiefmap. Parquet is kolomgebaseerd, gecomprimeerd en bevat zijn eigen schema. Gebruikt voor compliance en replay. Een integratiestorage account wordt hier dagelijks (incrementeel) naartoe gesynchroniseerd. |
Lakehouse Files/active |
Alleen de nieuwste datummap per tabel | Pad <source>/<table>/*.parquet. Uit staging gekopieerd met select latest. Dagelijks vervangen. Het is het doel van de external tables van de landing layer, en replay betekent een specifieke datum uit staging kopiëren. |
| Landing (Warehouse) | Een exacte 1:1-kopie van de bron, voor validatie | Bestandsgebaseerde bronnen: external tables over Files/active. Gemirrorde databases: het SQL analytics endpoint (cross-database query). Copy jobs: native Warehouse-tabellen landing.<source>_<table>. Geen duplicatie van data voor bestanden en gemirrorde databases. dbt bevraagt ze allemaal op dezelfde manier. Tests: schemavalidatie, aantallen rijen, aankomst van data. |
| Bronze | Native tabellen die dbt uit alle bronnen bouwt | Schema bronze.<source>_<table>. Eén tabel per bronsysteem (source grain). Basisopschoning, typeconversie, ontdubbeling. Tests: uniekheid, not null, geldige waarden. |
| Silver | Business entities | Schema silver.<entity>, bijvoorbeeld een assettabel of een tabel met onderhoudshistorie. Joins, lookups, bedrijfsregels en berekende velden, geïntegreerd uit alle bronnen. De single source of truth voor bedrijfsdata, klaar voor gebruik of voor aggregatie naar gold. Tests: referentiële integriteit en bedrijfsregels. |
| Gold | Geaggregeerde, voor gebruik gereedgemaakte data | Het diagram toont een gold Warehouse-layer die de serving voedt. |
Ingestiemethoden¶
| Methode | Gebruik voor | Komt terecht in |
|---|---|---|
| Copy files | Bestandsbronnen: laden in Lakehouse-bestanden, daarna laden naar tabel | Files/staging, daarna landing |
| Notebook ingestion | Bronnen die code nodig hebben, zoals API's | Stagingbestanden of bronze.<source>_<table> |
| Shortcut | Data die al elders staat en niet gekopieerd mag worden | Files/<shortcut>/, daarna external tables |
| Copy job | Relationele bronnen, in zijn geheel of incrementeel gekopieerd | landing.<source>_<table> als native tabellen |
| Database mirroring | Databases die Fabric kan mirroren (het diagram toont Azure SQL Database) | Gemirrorde database, bevraagd via zijn SQL endpoint, als <mirrored_db>.<table> |
Het diagram noemt voorbeeldbronnen: Oracle, SQL Server (on-premises), blob storage, SharePoint, een API, notebooks en Azure Databricks. On-premises en private Azure-bronnen worden bereikt via de VNet data gateway of managed private endpoints (Connectiviteit).
Omgevingen en promotie¶
Het tweede diagram van de oplossing laat zien hoe development, pre-production en production zich tot elkaar verhouden.
flowchart LR
dev["Dev workspace (linked to Git, dev branch)"] -->|"pull request and merge"| pre["Pre-prod workspace (preprod branch)"]
pre -->|"pull request and merge"| prod["Prod workspace (prod branch)"]
tf["Terraform and CI/CD: platform team"] -.->|"deploys infrastructure"| dev
tf -.-> pre
tf -.-> prod
- Het platformteam deployt de infrastructuur (capacities, workspaces, connections) met Terraform en CI/CD, eerst de kerncomponenten en daarna de workspaces en capacities.
- Data engineers ontwikkelen in de development workspace, gekoppeld aan een Git-branch. Datamodellen worden gepromoveerd met een pull request en merge naar de pre-production en daarna de production branch.
- Production workspaces zijn in de basisopzet niet rechtstreeks aan Git gekoppeld. Ze worden door de pipeline bijgewerkt.
Bouwstenen van het platform waarop het patroon rust¶
| Behoefte | Geleverd door |
|---|---|
| Workspaces met OneLake, Lakehouses en Warehouses | Servicebeschrijving |
| Private toegang tot bronnen | Connectiviteit |
| Git-versiebeheer | Connectiviteit |
| Monitoring van de pipelinegezondheid | Monitoring |
| Catalogus, classificatie en lineage | Governance |
dbt-jobs, het integratiestorage account en de transformatieschema's worden niet door het platform gedeployd. Spreek met het platformteam af wie ze inricht.