Einschränkungen, Anforderungen und Hinweise für dbt Projects on Snowflake

Bevor Sie dbt Projects on Snowflake verwenden, sehen Sie sich die Anforderungen, Hinweise und Einschränkungen an:

Einschränkungen, Anforderungen und Hinweise zu dbt-Projektkonfigurationen

Die folgenden Anforderungen, Hinweise und Einschränkungen gelten für dbt-Projektkonfigurationen, die von dbt Projects on Snowflake unterstützt werden:

  • Only dbt Core projects are supported. dbt Cloud projects aren’t supported. When you migrate an existing dbt Core project to Snowflake, it must be compatible with supported dbt Core versions.

  • Jeder dbt-Projektordner in Ihrem Snowflake-Arbeitsbereich muss eine profiles.yml-Datei enthalten, die ein Ziel-warehouse, database, schema und role in Snowflake für das Projekt angibt. Der type muss auf snowflake gesetzt sein. dbt erfordert ein account und einen user, aber diese können mit einer leeren oder beliebigen Zeichenfolge belassen werden, da das dbt-Projekt in Snowflake unter dem aktuellen Konto- und Benutzerkontext ausgeführt wird.

  • Ein dbt-Projekt in einem Arbeitsbereich kann nicht mehr als 20.000 Dateien in seiner Ordnerstruktur umfassen. Dieses Limit beinhaltet alle Dateien im dbt-Projektverzeichnis und in Unterverzeichnissen, einschließlich der target/dbt_packages/logs-Verzeichnisse, in denen Protokolldateien gespeichert werden, wenn ein dbt-Projekt innerhalb des Arbeitsbereichs ausgeführt wird.

  • Umgebungsvariablen (z. B. {{ env_var ('MY_ENV_VAR') }}) werden nicht unterstützt, wenn Sie ein dbt-Projektobjekt ausführen. Als Alternative verwenden Sie Projektvariablen (z. B. --vars). Weitere Informationen dazu finden Sie unter Projektvariablen.

  • Serverless tasks can’t be used to execute dbt project objects. When you create a task that executes the EXECUTE DBT PROJECT command, you must specify a user-managed warehouse.

  • Das gleichzeitige Ausführen mehrerer EXECUTE DBT PROJECT-Befehle für dasselbe dbt-Projektobjekt wird nicht unterstützt, selbst wenn Sie Modell-Selektoren verwenden (z. B. EXECUTE DBT PROJECT foo ARGS='--select model1' und EXECUTE DBT PROJECT foo ARGS='--select model2'). Dies kann zu unerwarteten internen Fehlermeldungen führen. Führen Sie immer nur einen EXECUTE DBT PROJECT-Befehl für ein bestimmtes dbt-Projektobjekt aus. Wenn Sie mehrere Befehle parallel ausführen müssen, erstellen Sie für jeden gleichzeitig ausgeführten Befehl separate dbt-Projektobjekte.

    Das Verwenden einer Threading-Konfiguration innerhalb von dbt (z. B. threads: 8) wird unterstützt und empfohlen. Die Parallelitätseinschränkung gilt nur für die gleichzeitige Ausführung mehrerer EXECUTE DBT PROJECT-Aufrufe für dasselbe dbt-Projektobjekt.

Einschränkungen, Anforderungen und Hinweise zu gespeicherten Prozeduren

Wenn Sie zum Aufrufen von EXECUTE DBT PROJECT eine gespeicherte Prozedur nutzen, verwenden Sie eine gespeicherte Prozedur mit Aufruferrechten. Weitere Informationen dazu finden Sie unter CREATE PROCEDURE und Erstellen einer gespeicherten Prozedur.

Einschränkungen, Anforderungen und Hinweise zu Telemetrie, Protokollierung und Ablaufverfolgung

Die folgenden Anforderungen, Hinweise und Beschränkungen gelten für Telemetrie, Protokollierung und Ablaufverfolgung bezüglich dbt in Snowflake:

  • Arbeitsbereiche für dbt Projects on Snowflake streamen „stdout“ nicht dynamisch, und „stdout“ wird nur nach Abschluss des Befehls angezeigt.

  • Zum Anzeigen von Protokollen und Ablaufverfolgung müssen Sie die LOG_LEVEL und TRACE_LEVEL für das dbt-Projektobjekt festlegen. Weitere Informationen dazu finden Sie unter Zugriffssteuerung für dbt-Projekte in Snowflake und Überwachen von dbt Projects on Snowflake.

  • Snowflake erfasst Telemetriedaten standardmäßig in der Tabelle SNOWFLAKE.TELEMETRY.EVENTS. Wenn Sie eine kundenspezifische Ereignistabelle haben, die als Ereignistabelle für Ihr Konto festgelegt ist, werden die Telemetriedaten dort erfasst. Wenn Sie ein Enterprise Edition-Konto verwenden, können Sie eine Ereignistabelle erstellen, um Telemetriedaten zu sammeln und sie mit der Datenbank zu verknüpfen, in der das dbt-Projektobjekt bereitgestellt wird. Weitere Informationen dazu finden Sie unter Überblick über die Ereignisse.

Einschränkungen für den DAG für Abfrageverläufe

Der DAG für Abfrageverläufe erfordert sowohl das manifest.json- als auch das run_results.json-Artefakt zum Rendern der Visualisierung. Wenn die Ausführung eines dbt-Projektobjekts fehlschlägt, bevor run_results.json generiert wird, zeigt die Registerkarte DAG in:ui:Query Details stattdessen „No data available“ an.

Häufige Ursachen für schnell fehlschlagende Ausführungen, die verhindern, dass run_results.json generiert wird, sind unter anderem:

  • Unzureichende Berechtigungen zum Ausführen des dbt-Projektobjekts.

  • Ungültige Projektkonfiguration (z. B. eine fehlende oder fehlerhafte``dbt_project.yml``-Datei).

  • Fehlende Abhängigkeiten, die nicht mit dbt deps installiert wurden.

To resolve this, check the dbt Output section in the Query Details tab for error messages, fix the underlying issue, redeploy the dbt project object, and re-execute it. For more information about monitoring dbt project object executions, see DAG-Abfrageverlauf anzeigen.