dbt

Fivetranからdbtプロジェクトを実行する

こんにちは、インターン生の大石です。

前回に引き続き、Fivetranの機能をご紹介いたします。

前回記事はこちら:https://ex-ture.com/blog/2025/11/25/fivetran-bigquery-setup/

前回は、データ活用基盤においてFivetranが担う機能と、スプレッドシートからBigQueryにデータをロードする方法をご紹介しました。
しかし、データをロードしただけでは、データの品質や形式が統一されておらず、“データ活用基盤” としてはまだ不十分です。
実際に価値ある分析を行うためには、データソースの統合や同期に加えて、分析で使える形へデータを整える工程(データ変換)が不可欠です。

そこで今回は、Fivetran を用いて、ロードしたデータをどのように変換するのかを紹介していきます。

目次

概要

FivetranはELTツールであり、データ変換機能(Transformations)を備えています。
ロードしてから変換するので、BigQueryやSnowflakeなどロード先のDWHで実行されます。
公式ドキュメント:https://fivetran.com/docs/transformations#exploreyouroptions

データ変換をFivetranから実行するメリットとして、以下が挙げられます。

・実行スケジュールをFivetran側で一元管理できる
Fivetranがデータソースを最新化、その完了をトリガーにデータ変換を実行する、という連携が自動で行われます。そのため、古いデータを参照して変換してしまうという事故を防ぎ、個別にスケジュールを設定する必要がありません。

・コスト最適化につながる
Fivetranはデータが更新された場合のみデータ変換を行うため、無駄な実行を防止することができます。

事前準備

Transformationsを実装する方法はいくつかありますが、今回はdbt coreのプロジェクトをGithub経由で読み込んで実行します。

まず、dbt coreをインストールし、プロジェクトを作成しておきます。
以下は、今回使用するファイルの内容です。

# models/example/dbt_core_test_model.sql

{{ config(materialized='table') }}

select
customer_name,
sum(total) as total_rev
from
{{ source('google_sheets', 'test') }}
group by
customer_name
# models/example/schema.yml

version: 2

models:
  - name: dbt_core_test_model
    description: "dbt test model"
    columns: 
      - name: customer_name
        description: "customer name"
        tests:
          - unique
          - not_null
# models/example/src_google_sheets.yml

version: 2

sources:
  - name: google_sheets
    schema: google_sheets
    tables:
      - name: test 
        test: 
         - not_null

Githubにリポジトリを用意して、dbtプロジェクトを保存しておきます。

注意点

Fivetranは、一時的にprofiles.ymlを作成してプロジェクトを実行します。
実際のprofiles.ymlには機密情報(ユーザー名・パスワードなど)が記載されているため、.gitignoreに追加しておき、リポジトリには含めないようにしてください。

Fivetran側の設定

Transformationsの設定は、プロジェクトを作成してから、それをもとにジョブを作成するというステップを踏みます。

プロジェクト設定

Add Transformationから、データ変換が実行されるdestinationを選択します。
GCPのプロジェクトやデータセット名は、事前に設定したdestinationの情報が参照されます。

利用する変換ツールを選択して、プロジェクトを作成します。
destination*変換ツールの組み合わせごとに、プロジェクトを設定する方式です。
(同じdestinationでも、dbt coreとdbt cloudでは別のプロジェクトになります)

今回はdbt coreを選択します。

設定画面では、コネクタと同様に右側にドキュメントが表示されます。
Fivetranがリポジトリを読み取るために、公開鍵をコピーしてGithub側のリポジトリに登録して秘密鍵を発行します。
リポジトリのSetting→Deploy Keysから発行できます。

リポジトリのURL・接続方法・デフォルトのスキーマ名・dbt coreのバージョンを設定します。

  • 接続方法はConnect directlyを選択
  • デフォルトのスキーマ名が、BQのテーブル名になります
  • dbt coreのバージョンは、1.10.11(選択できる最新バージョン)を選択
    Save & Testで接続をテストします。

Manage projectsから、作成したプロジェクトを確認できます。

今回は、BigQuery_testに対してdbt coreを利用してデータ変換を行うプロジェクトを作成しました。

ジョブ設定

Add Transformationから、作成したプロジェクトのdestinationsを選択します。

プロジェクトが作成済みの変換ツールは、Create jobと表示されます。

ジョブの名前 / 実行するdbtコマンド / 実行スケジュールを入力します。

dbt run, dbt test など複数のコマンドを一つのジョブ内に定義できます。
この例では、dbt_core_test_modelの実行と、dbt testの実行を定義しています。

サポートされているコマンド一覧
https://fivetran.com/docs/transformations/dbt/dbt-commands

実行スケジュールでは、コネクタが同期するごと / 曜日と頻度を指定 / Cron表記で指定が可能です。

保存して設定できれば、Transformation画面にジョブが表示されます。

ジョブの詳細から、
実行ログ / dbtコマンドの変更 / スケジュールの変更 /
ジョブの一時停止 / 手動実行 が可能です。

実行結果の確認

Fivetranでの設定が完了したので、BigQuery側で実行結果を確認してみしょう。
プレビューが表示されているのが、コネクタでロードしたテーブルです。

dbt coreで定義した、dbt_core_test_modelテーブルも作成されていることが確認できました。
また、dbtプロジェクトで記述されているデータ変換が実行されていることもわかります。
(顧客ごとの売上の合計が計算されています)

まとめ

今回は、Fivetranからdbtプロジェクトを実行して、データの取得から変換まで一連のプロセスを自動化する方法を解説しました。
前回紹介したデータロードと組み合わせることで、データの取得から整形までを運用負荷を抑えつつ安定して実行できるようになります。

個人的には、複数のプラットフォームやサービスを行き来してログを確認したり、別々のドキュメントを参照したりしなくて済む点がとても便利だと感じました。
Fivetran内で処理の流れが一元的に把握できるので、運用が楽になりそうです!

この記事が、データ活用基盤の構築や、ETLの自動化に取り組む方の参考になれば幸いです。

Account Engagementで送るメールをマルチエージェントで生成する前のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. dbt

    dbt Cloud使ってみた

    こんにちは、中村です。データ界隈で名前を聞かない日がないdbtですが…

  2. Google Analytics

    Google Analytics StandardのデータをBigQueryで分析するための力技

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  3. Google BigQuery

    Treasure DataからBigQueryにデータを移動させる方法

    こんにちは、エクスチュアの酒井です。今回は、TreasureDat…

  4. Adobe Analytics

    Adobe Analytics: BigQueryにロードしたデータフィードをDataStudioで…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  5. Adobe Analytics

    Adobe AnaltyicsとGoogle Analytics の「生Webビーコン」をBigQu…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  6. dbt

    Snowflake Summit 2025 参加レポート【Day3】

    こんにちは、エクスチュアの黒岩です。Snowflake Su…

カテゴリ
最近の記事
  1. Fivetranからdbtプロジェクトを実行する
  2. Account Engagementで送るメールをマルチエー…
  3. 協力と裏切りの理論
  4. 【Snowflake Tips】Content-Typeには…
  5. データ連携を自動化!Fivetranの概要・料金とスプレッド…
  1. Application Integration

    Google Cloud iPaaS 「Application Integrat…
  2. GA 360 Suite

    GoogleDataStudio:複数のデータソースにフィルターを適用する
  3. KARTE

    KARTEを知る。
  4. IT用語集

    オープンシステム(Open System)って何?
  5. Tableau

    TableauでTreasure Data上のデータへ接続する方法(2019/1…
PAGE TOP