[新機能]dbt Cloudで指定した別のジョブの実行完了後にジョブをトリガーできるようになりました

2024.02.23

さがらです。

dbt Cloudの最新機能として、指定した別のジョブの実行完了後にジョブをトリガーできる機能がリリースされました。

こちらの機能を試してみたので、本記事でまとめてみます。

やること

以前私がブログを書いたdbt Meshを構成する3つのdbt projectについて、本機能を使って順番にdbt buildを実行してみます。

より具体的にはsagara-jaffle-shop-mesh-platformsagara-jaffle-shop-mesh-financesagara-jaffle-shop-mesh-marketing、という順番で実行するようにジョブを設定します。

設定

sagara-jaffle-shop-mesh-platformでの設定

まず1つ目のジョブの設定です。

こちらは最初にbuildするdbt projectとなるため、これまで通りのジョブの設定を行います。

sagara-jaffle-shop-mesh-financeでの設定

次に、2つ目に実行するジョブの設定です。

こちらはsagara-jaffle-shop-mesh-platformのあとにbuildする必要があるため、今回リリースされた新機能を使っていきます。

ジョブの設定のTriggers欄のJob completionRun when another job finishesにチェックを入れます。

すると、dbt projectを選択できるドロップダウンリストが表示されるため、1つ目のジョブを持つsagara-jaffle-shop-mesh-platformを指定します。依存関係がある場合には区切られてdbt projectが表示されているため、わかりやすいですね!

次に、ジョブを選択するドロップダウンリストが表示されるため、sagara-jaffle-shop-mesh-platformで定義したジョブを選択します。

Completes onでは、対象のジョブがどのステータスで完了したときを実行条件とするのか選択できます。ここではSuccessのみを選択します。

ここまで設定を行ったら、Saveを押します。最終的に下図のような設定となりました。

sagara-jaffle-shop-mesh-marketingでの設定

最後に、3つ目となるジョブの設定です。

設定内容は2つ目のsagara-jaffle-shop-mesh-financeとほぼ同じですが、sagara-jaffle-shop-mesh-financeのジョブを指定するように注意します。

最終的には下図のような設定となりました。

ジョブを実行してみた

設定は完了したので、実際にジョブを実行してみます!

1つ目のジョブを持つsagara-jaffle-shop-mesh-platformでジョブを手動実行します。

すると、無事に下図のようにジョブが続けて実行されました!2つ目と3つ目のジョブでは、左上のTrigger欄に1つ前のジョブのIDが指定されていることがわかります。

  • 1つ目となるsagara-jaffle-shop-mesh-platformのジョブ履歴

  • 2つ目となるsagara-jaffle-shop-mesh-financeのジョブ履歴

  • 3つ目となるsagara-jaffle-shop-mesh-marketingのジョブ履歴

最後に

簡単ではありましたが、dbt Cloudの最新機能として、指定した別のジョブの実行完了後にジョブをトリガーできる機能がリリースされたので試してみました。

これは待ち望んでいた方も多い機能だと思います!ぜひdbt Cloudをお使いの方は試してみてください。