dbt-Projekte in Snowflake

dbt Core ist ein Open-Source-Datentransformationstool und -Framework, das Sie zum Definieren, Testen und Bereitstellen von SQL-Transformationen verwenden können.

Mit dbt Projects on Snowflake können Sie vertraute Snowflake-Features verwenden, um Ihre dbt Core-Projekte in der Regel wie folgt zu erstellen, zu bearbeiten, zu testen, auszuführen und zu verwalten:

  1. Mit einem gültigen dbt-Projekt beginnen: (Mit dbt_project.yml, profile.yml, /models/....) Dieses wird entweder in einem Arbeitsbereich in Snowsight oder in einem Git-Repository gespeichert, das Sie mit Snowflake verbunden haben. Bereiten Sie eine Datenbank, ein Schema und ein Warehouse mit einer Rolle vor, die über die erforderlichen Berechtigungen verfügt.

  2. Abhängigkeiten installieren: Führen Sie den Befehl dbt deps innerhalb eines Snowflake-Arbeitsbereichs, eines lokalen Rechners oder eines Git-Orchestrators aus, um den Ordner dbt_packages für Ihr dbt-Projekt auszufüllen.

    Weitere Informationen dazu finden Sie unter Erläuterungen zu den Abhängigkeiten von dbt-Projekten auf Snowflake.

  3. DBT PROJECT-Objekt bereitstellen: Erstellen Sie ein DBT PROJECT-Objekt auf Schemaebene, indem Sie Ihre Projektdateien in eine neue Version dieses Objekts kopieren. Verwenden Sie hierfür den Befehl CREATE OR REPLACE DBT PROJECT … FROM <source> oder snow dbt deploy Snowflake CLI.

    Weitere Informationen dazu finden Sie unter Bereitstellen von dbt-Projektobjekten.

  4. dbt-Projekt in Snowflake ausführen: Führen Sie ein dbt Core-Projekt innerhalb eines dbt-Projektobjekts unter Verwendung des Befehls EXECUTE DBT PROJECT oder des Befehls snow dbt execute Snowflake CLI aus. Die Ausführung eines dbt-Projekts beinhaltet das Aufrufen von dbt Core-Befehlen zum Erstellen oder Testen von Modellen. Dies ist das, was Sie planen und orchestrieren.

    For more information, see EXECUTE DBT PROJECT.

  5. Mit Snowflake-Aufgaben planen: Verwenden Sie Snowflake-Aufgaben, um dbt-Projektausführungen zu planen und zu orchestrieren.

    Weitere Informationen dazu finden Sie unter Planen der Ausführung von dbt-Projekten in Snowflake.

  6. CI/CD-Integrationen einrichten: Verwenden Sie Snowflake CLI-Befehle, um die Bereitstellung und Ausführung in Ihre CI/CD-Workflows zu integrieren.

    dbt-Projektobjekte unterstützen Snowflake-CLI-Befehle, mit denen Sie dbt-Projekte über die Befehlszeile erstellen und verwalten können. Dies ist hilfreich bei der Integration von dbt-Projekten in Ihre Data-Engineering-Workflows und CI/CD-Pipelines. Weitere Informationen dazu finden Sie unter Snowflake CLI, Integration von CI/CD mit Snowflake CLI und snow dbt-Befehle.

  7. dbt-Projekt überwachen: Verwenden Sie die Überwachungsfeatures von Snowflake, um die Ausführung von dbt-Projekten zu überprüfen, zu verwalten und zu optimieren, unabhängig davon, ob Sie ein dbt-Projektobjekt manuell ausführen oder Aufgaben verwenden, um dbt-Projektobjekte nach einem Zeitplan auszuführen.

    Weitere Informationen dazu finden Sie unter dbt-Projekte in Snowflake überwachen.

Die wichtigsten Konzepte

  • dbt project objects: A dbt project is a directory that contains a dbt_project.yml file and a set of files that define dbt assets, such as models and sources. A DBT PROJECT is a schema-level object that contains versioned source files for your dbt project in Snowflake. You can connect a dbt project object to a workspace, or you can create and manage the object independent of a workspace. You can CREATE, ALTER, and DROP dbt project objects like other schema-level objects in Snowflake.

    Ein dbt-Projektobjekt basiert in der Regel auf einem dbt-Projektverzeichnis, das eine dbt-project.yml-Datei enthält. Dies ist das Muster, das Snowflake verwendet, wenn Sie ein dbt-Projektobjekt aus einem Arbeitsbereich heraus bereitstellen (erstellen).

    Weitere Informationen dazu finden Sie unter Erläuterungen zu dbt-Projektobjekten.

  • Schemaanpassung: dbt verwendet das Standardmakro generate_schema_name, um zu entscheiden, wo ein Modell erstellt wird. Sie können anpassen, wie dbt Ihre Modelle, Startwerte, Snapshots und Testtabellen erstellt.

    Weitere Informationen dazu finden Sie unter Erläuterungen zur Erstellung und Anpassung von Schemas.

  • Arbeitsbereiche: Arbeitsbereiche in der Snowflake-Weboberfläche sind mit Git verbundene Web-IDE. Hier können Sie ein oder mehrere dbt-Projekte visualisieren, testen, ausführen und erstellen, sie mit einem Snowflake dbt-Projektobjekt verknüpfen, um es zu erstellen/aktualisieren, und anderen Snowflake-Code an einem Ort bearbeiten.

    Weitere Informationen dazu finden Sie unter Verwenden von Arbeitsbereichen für dbt Projects on Snowflake.

  • Versionierung: Jedes dbt-Projektobjekt ist versioniert. Versionen live unter snow://dbt/<db>.<schema>.<project>/versions/....

    Weitere Informationen dazu finden Sie unter Versionierung für dbt-Projektobjekte und -Dateien.