[小ネタ]dbt CloudのCI Jobsでカスタムデータベース・カスタムスキーマを設定している場合に作られるスキーマを確認してみた

[小ネタ]dbt CloudのCI Jobsでカスタムデータベース・カスタムスキーマを設定している場合に作られるスキーマを確認してみた

Clock Icon2025.01.17

さがらです。

dbtではModelごとに出力先のデータベース・スキーマを変更するカスタムデータベース・カスタムスキーマの設定が可能です。

一方で、dbt CloudではCI Jobsという機能があり、この機能を使うと下図のように一時的なスキーマが対象のデータベースに作られます。

2024-02-09_08h48_40

この2つの機能を併用した時、dbt CloudのCI Jobsではどのようにスキーマが作られるのかを確認してみたので本記事でまとめてみます。

事前準備

今回検証を行うのは、下記のブログに沿ってカスタムデータベース・カスタムスキーマを設定したdbt projectです。generate_schema_nameマクロもデフォルトから大幅に変更を加えています。

https://dev.classmethod.jp/articles/dbt-rewriting-the-generate-schema-name-macro/

この上で、CI Jobsを下記の記事に沿って、デフォルトの設定のまま定義しておきます。

https://dev.classmethod.jp/articles/dbt-cloud-new-ci-job/

やってみた

まず、dbt CloudのIDE上で各レイヤーごとに1つずつModelを定義して、dbt buildを実行してみます。

2025-01-17_10h02_37

2025-01-17_10h02_09

2025-01-17_10h03_11

この上で、プルリクエストを発行してCI Jobsを動かしてみます。

2025-01-17_10h07_43

すると、CI Jobsで作られるスキーマが各データベースに対して作成されていました! これは推測も含みますが、CI Jobsで作られるスキーマがカスタムスキーマ名として指定されて実行される挙動だと思います。

2025-01-17_10h09_27

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.