Herstellen einer Verbindung mit dbt Core

Hinweis

In diesem Artikel wird dbt Core behandelt – eine Version von dbt für Ihren lokalen Entwicklungscomputer, die mit Databricks SQL-Warehouses und Azure Databricks-Clustern in Ihren Azure Databricks-Arbeitsbereichen interagiert. Wenn Sie stattdessen die gehostete Version von dbt (dbt Cloud) oder Partner Connect verwenden möchten, um schnell ein SQL-Warehouse innerhalb Ihres Arbeitsbereichs zu erstellen und dann eine Verbindung mit dbt Cloud herzustellen, wechseln Sie zu Verbindung mit dbt Cloud herstellen.

dbt (Data Build Tool) ist eine Entwicklungsumgebung, mit der Datenanalysten und Datentechniker Daten einfach transformieren können, indem sie select-Anweisungen schreiben. dbt übernimmt dann das Umwandeln dieser select-Anweisungen in Tabellen und Sichten. dbt kompiliert Ihren Code in unformatiertes SQL und führt diesen Code dann in der angegebenen Datenbank in Azure Databricks aus. dbt unterstützt auf Zusammenarbeit ausgerichtete Programmiermuster und Best Practices wie Versionskontrolle, Dokumentation, Modularität und vieles mehr.

dbt extrahiert oder lädt keine Daten. dbt befasst sich nur mit dem Transformationsschritt und verwendet eine „Transformation nach dem Laden“-Architektur. dbt geht davon aus, dass Sie bereits über eine Kopie Ihrer Daten in Ihrer Datenbank verfügen.

Dieser Artikel konzentriert sich auf die Verwendung von dbt Core. Mit dbt Core können Sie dbt-Code in dem Text-Editor oder der IDE Ihrer Wahl auf Ihrem lokalen Entwicklungscomputer schreiben und dann dbt über die Befehlszeile ausführen. dbt Core beinhaltet die dbt-Befehlszeilenschnittstelle (CLI). Die dbt-CLI kann kostenlos und Open Source verwendet werden.

Eine gehostete Version von dbt mit dem Namen dbt Cloud ist ebenfalls verfügbar. dbt Cloud bietet sofort einsatzbereiten Support für die Planung von Aufträgen, CI/CD, Bereitstellung von Dokumentation, Überwachung und Warnungen sowie eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE). Weitere Informationen finden Sie unter Herstellen einer Verbindung mit dbt Core. Der dbt Cloud Developer-Tarif bietet einen kostenlosen Entwicklerplatz. Kostenpflichtige Team- und Enterprise-Tarife sind ebenfalls verfügbar. Weitere Informationen finden Sie unter dbt-Preise auf der dbt-Website.

Da dbt Core und dbt Cloud gehostete Git-Repositorys verwenden können (z. B. auf GitHub, GitLab oder BitBucket), können Sie dbt Core verwenden, um ein dbt-Projekt zu erstellen, und es dann ihren dbt Cloud-Benutzern zur Verfügung stellen. Weitere Informationen finden Sie in den Artikeln zum Erstellen eines dbt-Projekts und zum Verwenden eines vorhandenen Projekts auf der dbt-Website.

Eine allgemeine Übersicht über dbt finden Sie im folgenden YouTube-Video (26 Minuten).

Anforderungen

Vor der Installation von dbt Core müssen Sie Folgendes auf Ihrem lokalen Entwicklungscomputer installieren:

  • Python 3.7 oder höher
  • Ein Hilfsprogramm zum Erstellen virtueller Python-Umgebungen (z. B. pipenv)

Außerdem ist für die Authentifizierung Folgendes erforderlich:

  • (Empfohlen) dbt Core als OAuth-Anwendung in Ihrem Konto aktiviert. Diese Einstellung ist standardmäßig aktiviert.

  • Ein persönliches Zugriffstoken

    Hinweis

    Als bewährte Methode zur Sicherheit empfiehlt Databricks, wenn Sie sich bei automatisierten Tools, Systemen, Skripts und Apps authentifizieren, OAuth-Token zu verwenden.

    Wenn Sie die Authentifizierung mit persönlichen Zugriffstoken verwenden, empfiehlt Databricks, persönliche Zugriffstoken zu Dienstprinzipale anstelle von Arbeitsbereichsbenutzern zu verwenden. Informationen zum Erstellen von Token für Dienstprinzipale finden Sie unter Verwalten von Token für einen Dienstprinzipal.

Schritt 1: Erstellen und Aktivieren einer virtuellen Python-Umgebung

In diesem Schritt verwenden Sie pipenv, um eine virtuelle Python-Umgebung zu erstellen. Es wird empfohlen, eine virtuelle Python-Umgebung zu verwenden, da dabei Paketversionen und Codeabhängigkeiten dieser spezifischen Umgebung unabhängig von den Paketversionen und Codeabhängigkeiten in anderen Umgebungen isoliert sind. Dies trägt dazu bei, unerwartete Konflikte in Bezug auf Paketversionen und Codeabhängigkeiten zu reduzieren.

  1. Wechseln Sie von Ihrem Terminal zu einem leeren Verzeichnis, und erstellen Sie dieses Verzeichnis bei Bedarf. Mit dieser Prozedur wird ein leeres Verzeichnis mit dem Namen dbt_demo im Stammverzeichnis Ihres Benutzerstammverzeichnisses erstellt.

    Unix, Linux, macOS

    mkdir ~/dbt_demo
    cd ~/dbt_demo
    

    Windows

    mkdir %USERPROFILE%\dbt_demo
    cd %USERPROFILE%\dbt_demo
    
  2. Erstellen Sie in diesem leeren Verzeichnis eine Datei namens Pipfile mit dem folgenden Inhalt. Diese Pipfile weist pipenv an, Python-Version 3.8.6 zu verwenden. Wenn Sie eine andere Version verwenden, ersetzen Sie 3.8.6 durch Ihre Versionsnummer:

    [[source]]
    url = "https://pypi.org/simple"
    verify_ssl = true
    name = "pypi"
    
    [packages]
    dbt-databricks = "*"
    
    [requires]
    python_version = "3.8.6"
    

    Hinweis

    In der vorherigen Zeile dbt-databricks = "*" wird pipenv angewiesen, die neueste Version des dbt-databricks-Pakets zu verwenden. In Produktionsszenarien sollten Sie * durch die spezifische Version des Pakets ersetzen, das Sie verwenden möchten. Databricks empfiehlt Version 1.6.0 oder höher des dbt-databricks-Pakets. Weitere Informationen finden Sie auf der PyPI-Website (Python Package Index) unter dbt-databricks Release history (Dbt-databricks-Releaseverlauf).

  3. Erstellen Sie in diesem Verzeichnis eine virtuelle Python-Umgebung, indem Sie pipenv ausführen und die zu verwendende Python-Version angeben. Dieser Befehl gibt die Python-Version 3.8.6 an. Wenn Sie eine andere Version verwenden, ersetzen Sie 3.8.6 durch Ihre Versionsnummer:

    pipenv --python 3.8.6
    
  4. Installieren Sie den dbt Databricks-Adapter, indem Sie pipenv mit der Option install ausführen. Dadurch werden die Pakete in Ihrer Pipfile installiert, die das dbt Databricks-Adapterpaket dbt-databricks von PyPI enthält. Das dbt Databricks-Adapterpaket installiert automatisch dbt Core und andere Abhängigkeiten.

    Wichtig

    Wenn Ihr lokaler Entwicklungscomputer eines der folgenden Betriebssysteme verwendet, müssen Sie zunächst zusätzliche Schritte ausführen: CentOS, MacOS, Ubuntu, Debian und Windows. Weitere Informationen finden Sie im Abschnitt „Does my operating system have prerequisites“ (Voraussetzungen für mein Betriebssystem) von Use pip to install dbt (Verwenden von pip zum Installieren von dbt) auf der dbt Labs-Website.

    pipenv install
    
  5. Aktivieren Sie diese virtuelle Umgebung, indem Sie pipenv shell ausführen. Zum Bestätigen der Aktivierung zeigt das Terminal vor der Eingabeaufforderung (dbt_demo) an. Die virtuelle Umgebung beginnt mit der Verwendung der angegebenen Version von Python und isoliert alle Paketversionen und Codeabhängigkeiten innerhalb dieser neuen Umgebung.

    pipenv shell
    

    Hinweis

    Führen Sie exit aus, um diese virtuelle Umgebung zu deaktivieren. (dbt_demo) wird nicht mehr am Anfang der Eingabeaufforderung angezeigt. Wenn Sie python --version oder pip list ausführen, während diese virtuelle Umgebung deaktiviert ist, wird möglicherweise eine andere Python-Version, eine andere Liste verfügbarer Pakete oder Paketversionen oder beides angezeigt.

  6. Vergewissern Sie sich, dass in Ihrer virtuellen Umgebung die erwartete Version von Python läuft, indem Sie python mit der Option --version ausführen.

    python --version
    

    Wenn eine unerwartete Version von Python angezeigt wird, stellen Sie sicher, dass Sie Ihre virtuelle Umgebung aktiviert haben, indem Sie pipenv shell ausführen.

  7. Vergewissern Sie sich, dass in Ihrer virtuellen Umgebung die erwarteten Versionen von dbt und des dbt-Databricks-Adapters ausgeführt werden, indem Sie dbt mit der Option --version ausführen.

    dbt --version
    

    Wenn eine unerwartete Version von dbt oder des dbt-Databricks-Adapters angezeigt wird, stellen Sie sicher, dass Sie Ihre virtuelle Umgebung aktiviert haben, indem Sie pipenv shell ausführen. Wenn weiterhin eine unerwartete Version angezeigt wird, versuchen Sie, dbt oder den dbt-Databricks-Adapter nach dem Aktivieren der virtuellen Umgebung erneut zu installieren.

Schritt 2: Erstellen eines dbt-Projekts und Angeben und Testen von Verbindungseinstellungen

In diesem Schritt erstellen Sie ein dbt-Projekt, bei dem es sich um eine Sammlung verwandter Verzeichnisse und Dateien handelt, die für die Verwendung von dbt erforderlich sind. Anschließend konfigurieren Sie Ihre Verbindungsprofile. Diese enthalten Verbindungseinstellungen für einen Azure Databricks-Cluster und/oder für ein SQL-Warehouse. Zum Erhöhen der Sicherheit werden dbt-Projekte und -Profile standardmäßig an separaten Speicherorten gespeichert.

Tipp

Sie können eine Verbindung mit einem vorhandenen Cluster oder SQL-Warehouse herstellen oder einen neuen Cluster bzw. ein neues SQL-Warehouse erstellen.

  • Ein vorhandener Cluster oder ein vorhandenes SQL-Warehouse kann für mehrere dbt-Projekte, für die Verwendung von dbt in einem Team oder für Anwendungsfälle in der Entwicklung effizient sein.
  • Mit einem neuen Cluster oder SQL-Warehouse können Sie ein einzelnes dbt-Projekt isoliert für Anwendungsfälle in der Produktion ausführen und die automatische Beendigung nutzen, um Kosten zu sparen, wenn das betreffende dbt-Projekt nicht ausgeführt wird.

Verwenden Sie Azure Databricks, um einen neuen Cluster oder ein neues SQL-Warehouse zu erstellen, und verweisen Sie dann in Ihrem dbt-Profil auf den neu erstellten oder vorhandenen Cluster bzw. auf das neu erstellte oder vorhandene SQL-Warehouse.

  1. Führen Sie bei immer noch aktivierter virtueller Umgebung den Befehl dbt init mit einem Namen für Ihr Projekt aus. Mit dieser Prozedur wird ein Projekt mit dem Namen my_dbt_demo erstellt.

    dbt init my_dbt_demo
    
  2. Wenn Sie aufgefordert werden, eine databricks- oder spark-Datenbank auszuwählen, geben Sie die Zahl ein, die databricks entspricht.

  3. Wenn Sie aufgefordert werden, einen host-Wert einzugeben, gehen Sie wie folgt vor:

    • Geben Sie für einen Cluster den Wert für Serverhostname von der Registerkarte Erweiterte Optionen, JDBC/ODBC für Ihren Azure Databricks-Cluster ein.
    • Geben Sie für ein SQL-Warehouse den Wert von Serverhostname ein, der auf der Registerkarte Verbindungsdetails für Ihr SQL-Warehouse angegeben ist.
  4. Wenn Sie aufgefordert werden, einen http_path-Wert einzugeben, gehen Sie wie folgt vor:

    • Geben Sie für einen Cluster den Wert für HTTP-Pfad von der Registerkarte Erweiterte Optionen, JDBC/ODBC für Ihren Azure Databricks-Cluster ein.
    • Geben Sie für ein SQL-Warehouse den Wert von HTTP-Pfad ein, der auf der Registerkarte Verbindungsdetails für Ihr SQL-Warehouse angegeben ist.
  5. Um einen Authentifizierungstyp auszuwählen, geben Sie die Zahl ein, die use oauth (empfohlen) oder use access token entspricht.

  6. Wenn Sie use access token als Authentifizierungstyp ausgewählt haben, geben Sie den Wert Ihres persönlichen Azure Databricks-Zugriffstokens ein.

    Hinweis

    Als bewährte Methode für die Sicherheit empfiehlt Databricks, dass Sie bei der Authentifizierung mit automatisierten Tools, Systemen, Skripten und Anwendungen persönliche Zugriffstoken verwenden, die zu Dienstprinzipalen und nicht zu Benutzern des Arbeitsbereichs gehören. Informationen zum Erstellen von Token für Dienstprinzipale finden Sie unter Verwalten von Token für einen Dienstprinzipal.

  7. Wenn Sie aufgefordert werden, den desired Unity Catalog option-Wert einzugeben, geben Sie die Zahl ein, die use Unity Catalog oder not use Unity Catalog entspricht.

  8. Wenn Sie sich für die Verwendung des Unity-Katalogs entschieden haben, geben Sie bei Aufforderung den gewünschten Wert für catalog ein.

  9. Geben Sie die gewünschten Werte für schema und threads ein, wenn Sie dazu aufgefordert werden.

  10. dbt schreibt Ihre Einträge in eine profiles.yml-Datei. Der Speicherort dieser Datei wird in der Ausgabe des dbt init-Befehls aufgeführt. Sie können diesen Speicherort auch später durch Ausführen des Befehls dbt debug --config-dir auflisten. Sie können diese Datei jetzt öffnen, um den Inhalt zu untersuchen und zu verifizieren.

    Wenn Sie sich für ihren Authentifizierungstyp entschieden haben use oauth, fügen Sie Ihr Computer-zu-Computer-Authentifizierungsprofil (M2M) oder das Benutzer-zu-Computer-Authentifizierungsprofil (U2M) hinzu profiles.yml.

    Beispiele finden Sie unter Konfigurieren von Azure Databricks Sign-On aus DBT-Core mit Microsoft Entra ID.

    Databricks empfiehlt nicht, Geheimnisse direkt in profiles.yml anzugeben. Legen Sie stattdessen die Client-ID und den geheimen Clientschlüssel als Umgebungsvariablen fest.

  11. Vergewissern Sie sich, dass die Verbindungsdetails korrekt sind, indem Sie in das Verzeichnis my_dbt_demo navigieren und den Befehl dbt debug ausführen.

    Wenn Sie use oauth als Authentifizierungstyp ausgewählt haben, werden Sie aufgefordert, sich bei Ihrem Identitätsanbieter anzumelden.

    Wichtig

    Bevor Sie beginnen, überprüfen Sie, ob Ihr Cluster oder SQL-Warehouse ausgeführt wird.

    Eine Ausgabe ähnlich der folgenden sollte angezeigt werden:

    cd my_dbt_demo
    dbt debug
    
    ...
    Configuration:
      profiles.yml file [OK found and valid]
      dbt_project.yml file [OK found and valid]
    
    Required dependencies:
      - git [OK found]
    
    Connection:
      ...
      Connection test: OK connection ok
    

Nächste Schritte

Zusätzliche Ressourcen