Erläuterungen zur Erstellung und Anpassung von Schemas

dbt verwendet das Standardmakro generate_schema_name, um zu entscheiden, wo ein Modell erstellt wird.

Standardmäßig verwendet es Ihr Zielschema (target.schema), das in Ihrer dbt-Umgebung oder Ihrem Profil angegeben wurde. Im Gegensatz zum Verhalten von dbt Core muss das in der Datei profiles.yml angegebene Zielschema vorhanden sein, bevor Sie Ihr dbt-Projekt erstellen, damit es erfolgreich kompiliert oder ausgeführt werden kann.

Normalerweise hat jedes Entwicklungsteam sein eigenes Zielschema, zum Beispiel analytics_dev. Bei größeren Projekten können Sie ein benutzerdefiniertes Schema festlegen, um Modelle zu gruppieren und den Schemakonfigurationsschlüssel in Ihrer dbt_project.yml-Datei anzugeben. dbt hängt diesen an das Zielschema an (z. B. <target_schema>_<custom_schema>), um Zwischen- und Benutzermodelle getrennt zu halten.

--Models in `models/tasty_bytes/ will be built in the "*_staging" schema
models:
  tasty_bytes:
      +schema: staging
Copy

Das kundenspezifische Schema eines Modells ersetzt nicht das Zielschema. Vielmehr kombiniert dbt sie, um Reibungspunkte zu vermeiden. Beispiel: analytics_dev_staging. Dies liegt daran, dass, wenn dbt das Zielschema ignorieren und nur das benutzerdefinierte Schema (in diesem Fall staging) verwenden würde, jeder Entwickelnde in dasselbe Schema schreiben und es zu gegenseitigen Überschreibungen kommen würde.

Wenn Sie ein anderes Verhalten wünschen (z. B. nur das benutzerdefinierte Schema verwenden, Benutzernamen voranstellen, Umgebungspräfixe hinzufügen usw.), überschreiben Sie generate_schema_name in /macros/, um zu ändern, wie der endgültige Schemaname erstellt wird. Weitere Informationen und Beispiele dazu finden Sie im Abschnitt zum Ändern der Art und Weise, wie dbt einen Schemanamen generiert in der dbt-Dokumentation.