How to Run dbt in Microsoft Fabric: Der ultimative Guide
Hier ist ein umfassendes Tutorial, wie du dbt (Data Build Tool) in Microsoft Fabric implementierst und ausführst.
Microsoft Fabric hat sich als führende SaaS-Datenplattform etabliert. Durch die Kombination von Fabric mit dbt erhältst du das Beste aus zwei Welten: Die einfache Skalierbarkeit von Fabric (Synapse Data Warehouse) und die erstklassigen Transformations- und Dokumentationsmöglichkeiten von dbt.
1. Voraussetzungen
Bevor du startest, stelle sicher, dass du über Folgendes verfügst:
- Ein aktiver Microsoft Fabric Workspace (mit einer aktiven Kapazität).
- Ein Fabric Data Warehouse (dbt arbeitet in Fabric primär mit dem SQL-Endpunkt des Warehouse oder Lakehouse).
- Python auf deinem lokalen Rechner installiert (Version 3.8 oder höher).
- VS Code (empfohlen).
- Azure CLI (für die Authentifizierung).
2. Installation des dbt-fabric Adapters
Dbt benötigt spezifische Adapter, um mit verschiedenen Datenbanken zu kommunizieren. Für Microsoft Fabric gibt es den offiziellen dbt-fabric Adapter.
Öffne dein Terminal und erstelle eine virtuelle Umgebung:
# Virtuelle Umgebung erstellen
python -m venv dbt-fabric-env
# Aktivieren (Windows)
dbt-fabric-env\Scripts\activate
# Aktivieren (Mac/Linux)
source dbt-fabric-env/bin/activate
# Installation des Adapters
pip install dbt-fabric
Überprüfe die Installation mit:
dbt --version
3. Ein dbt-Projekt initialisieren
Erstelle ein neues Projektverzeichnis und initialisiere dbt:
dbt init mein_fabric_projekt
Du wirst nach dem Datenbanktyp gefragt. Wähle fabric.
4. Konfiguration der profiles.yml
Die Datei profiles.yml (meist unter ~/.dbt/ zu finden) steuert die Verbindung zu deinem Fabric Warehouse. Hier ist ein Beispiel für die Konfiguration mit Azure CLI Authentifizierung (empfohlen für die lokale Entwicklung):
mein_fabric_projekt:
outputs:
dev:
authentication: CLI
driver: 'ODBC Driver 18 for SQL Server'
host: [DEIN_FABRIC_SQL_ENDPOINT] # z.B. xxxxx.datawarehouse.fabric.microsoft.com
database: [DEIN_WAREHOUSE_NAME]
schema: dbo
threads: 4
type: fabric
target: dev
So findest du den SQL-Endpunkt:
- Gehe in dein Microsoft Fabric Warehouse.
- Klicke auf die Einstellungen (Zahnrad) oder die Copy Connection String Schaltfläche oben rechts.
- Kopiere den "SQL connection string" (nur den Host-Teil).
5. dbt Modelle in Fabric erstellen
In deinem Projektordner findest du den Ordner models. Erstelle dort eine neue SQL-Datei, z.B. stg_customers.sql:
{{ config(materialized='table') }}
WITH source_data AS (
SELECT
customer_id,
first_name,
last_name
FROM {{ source('raw_data', 'customers') }}
)
SELECT * FROM source_data
Microsoft Fabric unterstützt dbt-Materialisierungen wie table und view. Da Fabric auf dem Synapse-Engine basiert, ist es besonders performant bei großen Datenmengen.
6. dbt Befehle ausführen
Jetzt kannst du deine Transformationen in Fabric starten:
- Verbindung testen:
dbt debug - Modelle ausführen:
dbt run - Tests ausführen:
dbt test - Dokumentation generieren:
dbt docs generate dbt docs serve
7. Automatisierung & Deployment in Fabric
Um dbt nicht nur lokal, sondern innerhalb der Fabric-Cloud auszuführen, gibt es zwei Hauptwege:
Option A: Fabric Notebooks (PySpark)
Du kannst dbt innerhalb eines Fabric Notebooks installieren und ausführen. Das ist nützlich für die Orchestrierung innerhalb von Fabric Pipelines.
# Im Fabric Notebook
import os
os.system("pip install dbt-fabric")
os.system("dbt run --profiles-dir . --project-dir .")
Option B: dbt Cloud
dbt Cloud bietet eine native Integration für Microsoft Fabric. Du kannst dort dein Repository (GitHub/Azure DevOps) verknüpfen und Jobs direkt auf deine Fabric-Instanz planen.
Option C: Azure DevOps Pipelines / GitHub Actions
Dies ist der professionellste Weg für CI/CD. Du nutzt einen Self-hosted Runner oder eine Azure VM, die dbt-Befehle triggert, sobald Code in den Main-Branch gemergt wird.
8. Best Practices für Fabric & dbt
- Schemas nutzen: Verwende dbt, um Daten zwischen verschiedenen Schemas (z.B.
staging,mart) innerhalb desselben Warehouse zu bewegen. - Inkrementelle Modelle: Nutze
materialized='incremental', um bei großen Tabellen nur neue Datensätze zu laden und Kosten/Zeit zu sparen. - Authentifizierung: Nutze für Produktionsumgebungen einen Service Principal (App Registration in Azure) statt der persönlichen CLI-Authentifizierung.
- Performance: Achte darauf, dass Fabric-Warehouses bei Inaktivität pausieren können. dbt-Befehle "wecken" das Warehouse automatisch auf, was zu einer kurzen Latenz beim ersten Befehl führen kann.
Fazit
Die Kombination von dbt und Microsoft Fabric transformiert Fabric von einer reinen Speicherlösung in eine echte Analytics-Engineering-Plattform. Mit dem dbt-fabric Adapter ist die Einrichtung unkompliziert und ermöglicht eine saubere Trennung zwischen Rohdaten und Analyse-Layern.