Schedule execution of dbt project objects on Snowflake¶
You can use Snowflake tasks to schedule execution of a dbt project object with the EXECUTE DBT PROJECT command. From a workspace, you can quickly create and schedule a user-managed task to execute a connected dbt project object. You can also use SQL commands to create a task directly. If a workspace is connected to a dbt project object, you can view all tasks that run the EXECUTE DBT PROJECT command for that object.
Sie müssen eine Aufgabe erstellen, die den Befehl EXECUTE DBT PROJECT in derselben Datenbank und demselben Schema wie das dbt-Projektobjekt ausführt.
Bemerkung
Serverless tasks can’t be used to execute dbt project objects. You must specify a user-managed warehouse when creating a task that executes the EXECUTE DBT PROJECT command.
Aufgabe aus einem Arbeitsbereich heraus erstellen¶
When you create a schedule from within a workspace, Snowflake creates a user-managed task in the same database and schema as the dbt project object. The task runs with the privileges of the task owner, but task runs are not associated with a user.
So erstellen Sie eine Aufgabe, die die Ausführung eines dbt-Projektobjekts von einem Arbeitsbereich aus plant:
From the dbt project menu on the right side of the project pane, under Scheduled runs, choose Create schedule.
Gehen Sie im Dialogfeld Schedule a dbt run wie folgt vor:
Geben Sie unter Schedule name einen Namen für die Aufgabe ein.
Wählen Sie unter Frequency eine Häufigkeit aus, die von Hourly bis Monthly mit einem at-Qualifizierer reicht, oder wählen Sie Custom aus, und geben Sie einen Cron-Ausdruck ein. Weitere Informationen zum Planen von Aufgaben finden Sie unter SCHEDULE = ... in der Referenz zum Befehl CREATE TASK.
Unter dbt properties:
Wählen Sie für Operation den dbt-Befehl aus, den Sie nach einem Zeitplan ausführen möchten. Eine Liste der unterstützten Befehle finden Sie unter Unterstützte dbt-Befehle und -Flags.
Wählen Sie unter Profile eines der in der Datei
profiles.ymlIhres dbt-Projekts definierten Profile aus.Geben Sie unter Additional flags weitere Befehlszeilenoptionen für den dbt-Befehl ein.
Wählen Sie Create aus.
Snowflake erstellt eine Aufgabe, die einen EXECUTE DBT PROJECT-Befehl mit den von Ihnen angegebenen Parametern ausführt.
Anzeigen einer Aufgabe aus einem Arbeitsbereich heraus¶
From within a workspace, you can view all tasks in the database and schema that execute the connected dbt project object. You can choose a task to view its details in the object explorer, including the task definition, the run history of the task, and the task graph.
So zeigen Sie Aufgaben, die mit einem dbt-Projektobjekt verknüpft sind, von einem Arbeitsbereich aus an:
Wählen Sie im dbt-Projektmenü die Option View schedules, und wählen Sie dann Ihren Zeitplan (Aufgabe) aus der Liste aus.
Die Task Details für die Aufgabe werden im Objekt-Explorer geöffnet. Es werden die Aufgabendetails, die SQL-Anweisung, die die Aufgabendefinition enthält, und die für das Aufgabenobjekt gewährten Berechtigungen angezeigt.
Wählen Sie die Registerkarte Run History, um den Aufgabenausführungsverlauf anzuzeigen, oder wählen Sie die Registerkarte Task Graph, um die Beziehung dieser Aufgabe zu anderen Aufgaben in einem Task-Graphen (falls zutreffend) anzuzeigen.
Weitere Informationen dazu finden Sie unter View tasks and task graphs in Snowsight.
Eine Aufgabe mit SQL erstellen¶
Sie können den Befehl CREATE TASK verwenden, um Aufgaben zu erstellen, die den Befehl EXECUTE DBT PROJECT ausführen. Die Verwendung von SQL zum Erstellen von Aufgaben, die verschiedene dbt-Befehle mit unterschiedlichen dbt-CLI-Optionen ausführen, bieten eine effiziente Möglichkeit, dbt-Bereitstellungen in Snowflake zu orchestrieren.
Im folgenden SQL-Beispiel wird eine Aufgabe für ein Produktions-dbt-Ziel erstellt, das den dbt-Befehl run in einem Intervall von sechs Stunden ausführt.
Dann erstellt das folgende SQL eine Aufgabe, die den dbt-Befehl test nach jeder Fertigstellung der vorherigen run_dbt_project-Aufgabe ausführt.