How to Run dbt in Microsoft Fabric: Der ultimative Guide

Melden

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:

  1. Gehe in dein Microsoft Fabric Warehouse.
  2. Klicke auf die Einstellungen (Zahnrad) oder die Copy Connection String Schaltfläche oben rechts.
  3. 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:

  1. Verbindung testen:
    dbt debug
  2. Modelle ausführen:
    dbt run
  3. Tests ausführen:
    dbt test
  4. 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.

0