業界・業務から探す
導入目的・課題から探す
データ・AIについて学ぶ
News
Hakkyについて
ウェビナーコラム
◆トップ【データ基盤】
データハブとは
Ajust
データの保守運用
AI

執筆者:Handbook編集部

dbtのSourceについて

dbt の Source について

この記事では、dbt の Source について紹介します。

Source とは

dbt において source とは変換の元となるローデータのことです。dbt では Marts からローデータを直接参照させずに Staging を経由することがベストプラクティスとされています。理由としては、データはサードパーティからロードされることが多く、カラムの追加・削除など仕様が変更する可能性があり、一つの場所から参照することにより仕様変更の対応を容易にするためです。

Source の宣言

任意の名前の.ymlファイルをmodel-pathsに宣言されたディレクトリに配置します。例えば、Google Cloud で、my_projectというプロジェクト ID でgoogle_analyticsというデータセット、そのデータセットにchanneldeviceというテーブルを Source としたい場合は以下のように記述します。

version: 2
sources:
  - name: my_bigquery ## 任意の名前
    database: my_project
    schema: google_analytics
    tables:
      - name: channel
      - name: device

Source の使い方

宣言された Source はモデルから参照することができます。以下の例では、my_bigqueryと宣言した Source からchannelテーブルを参照しています。

SELECT
  *
FROM {{ source('my_bigquery', 'channel') }}

Source のテスト

以下のように記述し、dbt testを実行すると Source のテストをすることができます。

version: 2
sources:
  - name: my_bigquery ## 任意の名前
    database: my_project
    schema: google_analytics
    tables:
      - name: channel
        columns:
          - name: id
            tests:
              - unique
      - name: device
        columns:
          - name: id
            tests:
              - unique

参考

info
備考

Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。

2025年07月06日に最終更新
読み込み中...