はじめに
最近、チーム内のSQL管理が煩雑になってきたな……と感じています..
- SQLが個人PCやNotionに散らばっている
- データ変換処理の実行タイミングが不明確
- Airflowやdbtは少しハードルが高い
そんなときに便利なのが、Dataform(by Google) です。
この記事では、BigQueryを使っている組織に向けて、Dataformの概要・メリット・導入方法をわかりやすく紹介します。
Dataformとは?
Dataform は、SQLで書かれたデータ変換処理を「モジュール化・自動化・可視化」できるツールです。
Googleが提供しており、BigQueryに特化しています。
特徴まとめ:
機能 | 内容 |
---|---|
SQLのモジュール化 | 同じ処理を複数箇所で再利用可能に |
DAGによる可視化 | テーブルの依存関係をグラフィカルに表示 |
自動実行 | 定期実行スケジューラーをGUIで設定 |
Git連携 | SQLの変更履歴・レビューが可能 |
GUI中心 | dbtよりも学習コストが低く、導入しやすい |
dbtとの違いは?
比較項目 | dbt | Dataform |
---|---|---|
UI/UX | CLI中心 | GUI中心 |
データ基盤 | 複数DB対応 | BigQuery専用 |
難易度 | やや高め | わかりやすい |
ターゲット | エンジニア向け | 分析者もOK |
dbtは強力なツールですが、「BigQuery+非エンジニア」チームにはDataformが最適なケースもあります。
使ってみた(サンプル)
プロジェクト構成の例:
/definitions
├─ sources/
├─ models/
├─ includes/
└─ assertions/
例:SQLモデル
config {
type: "table",
tags: ["sales"]
}
SELECT
user_id,
SUM(order_amount) AS total_amount
FROM
${ref("raw_orders")}
GROUP BY
user_id
DAG(依存関係グラフ)
Dataformでは、SQLの依存関係を自動で解析し、以下のようなDAGが可視化されます。
raw_orders → summary_orders → dashboard_data
導入ステップ
- Dataform公式サイト でプロジェクト作成(GoogleアカウントでOK)
- BigQueryの接続設定を行う
- SQLモデルを作成し、依存関係をrefでつなぐ
- スケジューラーで定期実行設定
- GitHub連携してレビュー体制を整備(任意)
導入して良かったこと
✅ 処理の流れが一目で分かるようになった
✅ SQLがチームでレビューできるようになった
✅ 手作業やcronによる運用を削減できた
✅ データ資産が「設計図」として残るようになった
まとめ
Dataformは、「SQLを使ったデータ整形・ETL処理」をチームで効率化するための強力なツールです。
- BigQueryを利用している
- Airflow/dbtまでは不要
- GUIで簡単に始めたい
そんなチームに、Dataformは非常にフィットします。
おまけ:こんなチームにおすすめ!
- SQLが属人化しているが、エンジニア以外も関わっている
- データ変換の履歴管理やレビューを整備したい
- 分析業務の「前処理」をスケールさせたい
おわりに
Dataform、実際に触ってみると「めちゃくちゃ簡単に始められて、効果が大きい」ツールです。
PoCから始めてみることをおすすめします。
補足
- 公式サイト:https://dataform.co
- GitHub連携解説 → 別記事予定