PONOS Advent Calendar 2025 2日目の記事です。
初めに
Bigquery の新機能 Dataform 使っていますか?
以前は、SQLの実行をCloud Run functions経由で行ったり、煩雑になりがちなBigQueryスケジュールクエリを定期実行したりといった方法でデータパイプラインを構築する必要がありました。
しかし、Dataformは想像以上に使い勝手が良く、データ変換の作業効率UPと運用負担軽減に大きく貢献してくれました。
本日は、その魅力をたっぷりとご紹介させていただきます。
Dataformの概要と特徴
Dataformは、データアナリストやデータエンジニアがSQLベースの言語(Dataform Core, SQLX)を使用して、BigQuery上で必要なテーブルやビューを作成・管理するための一元化されたプラットフォームを提供します。
1. SQLベースの開発
SQLX: Dataform Coreで使われるSQLに似た言語で、通常のSQLに加えて依存関係の定義やメタデータの記述が可能です。
JavaScriptの利用: SQLXファイル内でJavaScriptを組み込むことができ、処理の共通化、繰り返し処理、変数定義など、より複雑なロジックを柔軟に記述できます。
2. サーバーレス・フルマネージド
基盤のインフラ管理が不要なサーバーレスアーキテクチャで、運用負荷を大幅に軽減します。
Dataform自体は無料で利用開始でき、BigQueryでのクエリ実行などのリソース利用に対して課金が発生します。
3. データパイプラインの管理と可視化
テーブル間の依存関係を自動で解析し、実行順序を管理するDAG(有向非巡回グラフ)を構築・可視化します。これにより、テーブル更新時の実行ミスを防ぎます。
依存関係の自動解決: Dataformは、コード内の参照関係を解析し、実行順序を管理します。
コンパイル: Dataform Coreで記述されたコードをBigQueryで実行可能なSQLにトランスパイル(ソース間でコンパイル)します。
4. バージョン管理とコラボレーション
Gitとの統合: GitHubやGitLabなどのGitリポジトリと連携し、SQLコードのバージョン管理、変更履歴の追跡、チームでの共同開発を円滑にします。
開発ワークスペースでは、ブラウザ上でクエリ開発からコミット、PR作成までをGUI中心で行えるため、Git操作の学習コストが比較的低いです。
Dataformの主なメリット
Dataformを導入することで、データ変換プロセスにおいて以下のメリットが得られます。
データ品質の向上:
・アサーション(品質チェック): データ品質を検証するためのテストクエリを定義でき、定義した条件に違反した場合にワークフローの実行を制御(例:テストに合格した場合のみ次のテーブルを更新)することが可能です。
・ドキュメント化: テーブルやカラムの説明をコード内に記述することで、データ資産のドキュメント化を容易にします。
開発・運用効率の改善:
・ワークフローの自動化とスケジュール設定: 依存関係に基づいてSQLワークフローを自動実行し、GUIや外部サービス(Cloud Composer, Workflows)を介して定期実行を設定できます。
・BigQueryとのシームレスな連携: Google CloudのサービスとしてBigQueryと連携するため、導入・設定が容易で、データ管理が一貫してGoogle Cloud内で完結します。
チーム開発の強化:
・Git連携によるレビュー体制の構築や、コードのモジュール化により、複数のデータアナリスト・エンジニアによる共同開発がスムーズになります。
dbtとの比較(補足)
データ変換ツールとして人気のdbt (data build tool) と比較すると、Dataformは特にBigQueryユーザーにとって導入しやすいという特徴があります。
| 比較項目 | Dataform | dbt |
|---|---|---|
| 主要な操作環境 | GUI(ブラウザ)中心 | CLI(コマンドライン)中心 |
| サポートDB | BigQueryに特化 | 複数DB(Snowflake, Redshiftなど)対応 |
| 学習コスト | 比較的低い(GUI中心、BigQuery専用) | やや高め(CLI中心、多機能) |
BigQueryを主に使用し、特にデータアナリストなど非エンジニアもデータパイプライン構築に関わるチームにとって、Dataformは直感的で導入しやすい強力なツールと言えます。
まとめ
今回は紹介がメインですが、次回は実装とテクニックの部分を紹介していきます。
早速、明日公開します!
お楽しみに!!