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 Coreを実行すべきか?Fivetran Transformations・Snowflake dbt projects・dbt Coreの使い分け

Posted at

以下、データパイプラインからTransformationまでの流れを勉強する中での個人的なメモ記事です。正確な情報は各社サイト・ブログなど参照してください。また、こんなアイデアや見方あるよ等、もし違う視点があれば、ご教示いただければ嬉しいです。

FivetranのTransformations機能について

dbt CoreによるTransformations

  • Fivetranはdbt Coreをホストしており、Gitリポジトリからプロジェクトを取得し、変換(SQLモデルの実行)を自動実行可能
  • dbt Coreはオープンソースの無償ツールで、自身でCLIまたはdbt Cloudでプロジェクトを開発可能
  • Fivetranのダッシュボード上でジョブを作成し、スケジュールを設定。これにより、Fivetranが抽出・ロード完了のタイミングに合わせてdbt Coreによる変換を実施するELTのオーケストレーションが可能
  • サポートされているデスティネーションには、Snowflakeを含む多数の主要データウェアハウス

dbt Cloudとの連携(本格的なモデル変換)

  • Fivetranはdbt Cloudとのオーケストレーション連携を提供
  • Fivetran UI上でdbt Cloudジョブを選び、Fivetranのコネクタ(抽出・ロードの完了)に応じて自動で変換をキック
  • ダッシュボード上でジョブ選択、スケジュール設定、実行ログのモニタリングが一元化でき、本格的なチーム開発やCI/CD、Web IDEなどの利点を享受可能
  • Teradataとの事例でも、Fivetran → データロード → dbt Cloudでの変換をFivetran上のスケジュール/トリガーで一連に統合して実現している例

Teradata-fivetran.png

dbt Core vs. dbt Cloud の整理(Fivetran視点)

項目 dbt Core dbt Cloud
提供形態 オープンソース、CLIでローカル実行 有償(+一部機能は無料)、WebベースIDE + スケジューラーなど付き
開発環境 ローカルIDE(VS Codeなど)やGit ブラウザ上のIDEでの開発、ジョブ管理
オーケストレーション Fivetranがスケジュール実行可能(追加費用なし) Fivetranと連携し、抽出・ロード完了時に自動ジョブ起動可能
ログ・モニタリング Fivetranダッシュボードで表示 同上(むしろより詳細・統合的な管理)

Snowflake の「dbt Projects」機能

  • プレビュー(Preview)機能として2025年6月27日より提供開始
  • Snowflakeでネイティブに dbt Core プロジェクトを作成・実行できる機能
  • Snowsight(SnowflakeのWeb UI)内で dbt プロジェクトを作成・編集・テスト・実行・管理可能。dbt Core のプロジェクトディレクトリをSnowflake内に配置し、スキーマレベルの DBT PROJECT オブジェクトとして扱う形
  • Workspaces(統合IDE)が提供されており、ファイル編集・Git連携・プロジェクトの可視化(DAG、依存関係など)が可能
  • 作成された DBT PROJECT は、Snowflakeのスキーマオブジェクトとして扱われ、バージョン管理やRBACによるアクセス制御 が適用可能
  • 実行は、SQLコマンド(EXECUTE DBT PROJECT) や Snowflake CLI(snow dbt execute/snow dbt deploy) によって実施
  • スケジューリング・オーケストレーションは Snowflake Tasks で管理可能
  • モニタリングは Snowsight上の専用ダッシュボードや、Snowflakeのイベントテーブル(OpenTelemetry対応)で行える

Snowflake dbt projects.png

Snowflake dbt Projects と Fivetran Transformations(dbt Core)の主な違い

比較項目 Snowflake:dbt Projects Fivetran:Transformations for dbt Core
実行場所・環境 Snowflake内(Workspaces ⭢ DBT PROJECT オブジェクト) Fivetran上(変換ステップとしてGit管理されたdbt Coreプロジェクトを呼び出す形)
開発・編集環境 Snowsight内のWeb IDE(Workspaces)+Git連携 外部(ローカルIDEやdbt Cloud)で開発し、Git経由でFivetranが取得
プロジェクト管理 スキーマオブジェクト+バージョン管理+RBAC Gitレポジトリで管理。Fivetranはその内容を取得して実行
実行・スケジューリング Snowflake TasksやSQLでスケジュール可 Fivetran側のスケジューラで、データロード完了後に変換をトリガー
モニタリング・ログ Snowsight d.b.a ダッシュボード、Event Table、ログ出力あり Fivetranダッシュボードで実行結果・ログ・成功/失敗通知が閲覧可能
CI/CD・デプロイ Snowflake CLI(snow dbt deploy)によるオブジェクト更新/バージョン管理対応 Gitフローでプロジェクト管理。Fivetran側に直接デプロイする仕組み
対象dbtタイプ dbt Core のみ(バージョン1.9.4など) dbt Core(Fivetran Transformations)および dbt Cloud とも連携可能
精度・対象ユーザー層 Snowflakeネイティブで完結させたいユーザー向け 他クラウドやETL管理ツールとも統合して使いたいユーザー向け

それぞれに向いているユースケース

Snowflake dbt Projects が適しているケース

  • Snowflake上で ELTのさらに上流・下流を一元的に管理したい(開発・実行・監視・保守をSnowflake内で完結)。
  • スキーマオブジェクト+RBAC+バージョン管理 の一体化された統制が求められる環境。
  • Snowflake Tasks による Snowflakeネイティブなスケジューリングとオーケストレーションを重視する場合。

Fivetran Transformations(dbt Core)が適しているケース

  • Fivetranでのデータロードと変換を一体で扱いたい場合。
  • 既に dbt Cloud や CLI で開発されており、Fivetranのパイプラインに組み込みたい場合。
  • 多様なデータソースへの接続やロード後の即時変換を柔軟に設定したい場合

もう一声:料理に例えた場合

以下の感じでしょうか??

  • FivetranのTransformations = 「仕入れと下ごしらえを一緒にやってくれるスーパー」
    → 家族が喜ぶ毎日毎食の料理のために適切な食材(データ)を安全且つ安定的に集めてきて、必要に応じて包丁で切ったり味付けの下地を作ってくれる。家庭で料理(分析)をすぐに始められる。

  • Snowflakeのdbt Projects = 「自社キッチンにある本格的な調理設備」
    → 食材(データ)は既に冷蔵庫(Snowflake)にある状態で、専用の厨房設備でシェフ(データチーム)がじっくり仕込み・調理できる。お店のオペレーションの一部として統合されている。

データチーム視点の利用

目的とユースケース次第ってことは想像できたが、ここで思うのが、dbt core利用という意味では両者とも重なる部分はあり、データエンジニアやデータチーム視点では、Fivetran, Snowflake, dbt自体で変換(dbt)の実行がいろんな場所に散在していると管理が大変・煩雑ではないか?

ジョブ管理の煩雑さ

  • FivetranのUIにも変換スケジュール
  • SnowflakeのTasks/Projectsにもジョブ
  • dbt Cloudにもスケジューラ・CI/CD
    → どこが“正”の実行元かが分かりにくくなる

権限・アクセス管理の分散

  • FivetranでGit接続
  • SnowflakeでRBAC管理
  • dbt Cloudでユーザー・ロール管理
    → 運用ルールや権限の一貫性が保ちにくい

トラブルシューティングが難しい

  • 失敗したら「Fivetran側か?Snowflake側か?dbt側か?」と切り分けが必要
  • ログがツールごとに散在しており、統合ビューがない

この課題に対する整理の方向性

🔹 PoCや小規模利用
👉 Fivetran Transformationsに寄せる

  • ロードと変換を一体で回せるので「早く結果を出す」には最適
  • 将来スケールする場合には、徐々にSnowflake/dbt Cloudへ移行

🔹 本格的なデータ基盤運用
👉 dbt Cloudを「変換の正規の場所」として一本化

  • Fivetranはロード専用にする
  • Snowflakeは実行環境として活用し、オーケストレーションはAirflowやDagsterなど外部ツールに統合するケースも多い

参考URL

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?