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. Execute the deployed dbt project object: Execute a dbt Core project within a dbt project object by using the EXECUTE DBT PROJECT command or the snow dbt execute Snowflake CLI command. Executing a dbt project involves invoking dbt Core commands to build or test models; this is what you schedule and orchestrate.

    Weitere Informationen dazu finden Sie unter EXECUTE DBT PROJECT.

  5. Schedule with Snowflake tasks: Use Snowflake tasks to schedule and orchestrate dbt project object executions.

    Weitere Informationen dazu finden Sie unter Schedule execution of dbt project objects on Snowflake.

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

    The Snowflake CLI supports commands to create, execute, and manage dbt project objects from the command line. This is useful for integrating dbt projects into your data engineering workflows and CI/CD pipelines. For more information, see Snowflake CLI, Integration von CI/CD mit Snowflake CLI, and snow dbt-Befehle.

  7. Monitor the dbt project object: Use Snowflake monitoring features to inspect, manage, and tune dbt project execution whether you execute a dbt project object manually or use tasks to execute dbt project objects on a schedule.

    Weitere Informationen dazu finden Sie unter Überwachen von dbt Projects on Snowflake.

Die wichtigsten Konzepte

  • dbt-Projektobjekte: Ein dbt-Projekt ist ein Verzeichnis, das eine dbt_project.yml-Datei und eine Reihe von Dateien enthält, die dbt-Assets definieren, wie z. B. Modelle und Quellen. Ein DBT PROJECT-Objekt ist ein Objekt auf Schemaebene, das versionierte Quelldateien für Ihr dbt-Projekt in Snowflake enthält. Sie können ein dbt-Projektobjekt mit einem Arbeitsbereich verbinden, oder Sie können das Objekt unabhängig von einem Arbeitsbereich erstellen und verwalten. Sie können dbt-Projektobjekte wie andere Objekte auf Schemaebene in Snowflake CREATE, ALTER und DROP.

    A dbt project object is typically based on a dbt project directory that contains a dbt_project.yml file. This is the pattern that Snowflake uses when you deploy (create) a dbt project object from within a workspace.

    Weitere Informationen dazu finden Sie unter Understand dbt project objects.

  • 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 Understand schema generation and customization.

  • 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 Workspaces for dbt Projects on Snowflake.

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

    For more information, see Versions for dbt project objects and files.

  • Supported dbt Core versions: Snowflake provides managed runtimes for specific dbt Core versions. You can pin a version at creation time, override it per execution, or set an account-level default.

    For more information, see Unterstützte dbt Core-Versionen für dbt Projects on Snowflake.

  • Supported commands: dbt project objects support a subset of dbt commands and flags.

    For more information, see Unterstützte dbt-Befehle und -Flags.