0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【dbt入門】CIジョブの設定を理解する_何ができる?(3/4)

0
Last updated at Posted at 2026-01-25

第1回、第2回と、dbt Cloud の開発から本番環境へのデプロイまでの手順を紹介しました。

この記事では、dbt Cloud の開発とデプロイを支援するCI ジョブ(継続的インテグレーションジョブ)機能を紹介します。

【目次】

  1. CI ジョブを利用するメリット
  2. CI ジョブの設定手順
  3. プルリク時に CI ジョブが実行されることを確認 

1. CI ジョブを利用するメリット

dbt Cloud の CI ジョブ機能を使うと、プルリクエスト作成時に dbt コマンドを自動実行できます。本番環境へのデプロイ前にデータモデルの変更処理とテストを自動実行することで、ミスを防ぎ安全にリリースサイクルをまわすことができます。

2. CI ジョブの設定手順

プルリクエストが作成されたら自動的に dbt Cloud の [Continuous Integration job](CIジョブ) が実行されるよう設定します。

  1. [Orchestration] → [Jobs] → [Create job] → [Continuous integration job] を選択し、新規CIジョブ作成を開きます。

image.png

  1. ジョブ設定画面でジョブ名、説明、ジョブを実行する環境を入力します。また Git trigger のプルリク時発火する [Triggered by pull requests] がONになっていることを確認します。

    [Environment] (実行環境) は CI ジョブ用の環境を作成することをおすすめします。このサンプルではプルリク時の実行用環境 QA を事前に作成して利用しています。
    image.png

  2. 新規にCIジョブを作成すると、コマンド入力エリア [Commands] には以下のコマンド例が入力されています。
    image.png

    入力されているコマンド

    dbt build --select state:modified+
    

    コマンドの意味

    • dbt build : dbt test と dbt run が実行されます
    • —select state:modified+ :更新されたモデルより下流の処理のみを対象に実行します
  3. [Compare changes against an environmental (deferral) ]に指定した環境は、プルリク実行時にコードの差異がある場合、指定した環境にも変更が反映されます。

    この例では Production 環境との差異を比較するよう指定しています。
    image.png

3. プルリク時に CI ジョブが実行されることを確認

「2. CIジョブの設定手順」で設定した CI ジョブがプルリク作成時に自動実行されることを確認してみます。

  1. プルリクエストを作成します

    まず、dbt Cloud IDE で処理を更新後、[Create pull request]をクリックし、GitHubに遷移して [Create pull request] をクリックする、という入門編2/4で実施した一連の開発操作を行います。

  2. dbt Cloud の CIジョブが実行されます

    GitHub画面を開いたまましばらく待つと以下のようにdbt Cloudの処理が実行された結果が表示されます。このタイミングで CIジョブが自動実行されています。
    image 4.png

  3. dbt Cloud で CIジョブの実行結果を確認してみます

    dbt Cloud の画面から [Deploy] → [Run history] で実行結果を参照すると、ジョブ実行一覧画面にプルリク作成時にCIジョブが自動実行された記録が表示され正常終了したことが確認できました。
    image.png

    該当の CI ジョブをクリックして実行結果を参照すると、コマンド別の実行結果を参照できます。また、この CIジョブはGitHub プルリクエスト #63 が作成されたタイミングで実行されていることが左上の[Trigger]からわかります。
    image.png

    ※GitHub のワークフローの画面でリクエスト番号が一致していることを確認
    image.png

補足

CI ジョブは処理実行時に一時的なスキーマを作成します。このスキーマの末尾にはプルリクエストアサインナンバーが付きます。作成された一時的なスキーマはマージ後に自動的に削除されます。

最後に

いかがでしたでしょうか。今後も検証した内容についてまとめて発信していきたいと思いますので、よろしくお願いいたします

前回の検証は↓
https://qiita.com/matsuki_work/private/7995a2a1cbd72b5a70f8

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?