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

執筆者:Handbook編集部

Dataformにおけるdry-runを活用した開発フローの解説

なぜdry-runが必要なのか

Dataformを使用してデータパイプラインを構築する際、実環境のデータに影響を与えることなく、変更の結果を事前に確認したいというのは一般的なニーズかと思います。他にも以下のような理由から、dry-runの実行手順を確立することは、安全で効率的な開発プロセスを構築する上で重要です。

  • エラー検出: 構文エラーや論理エラーを早期に発見し、修正することができます。
  • パフォーマンス予測: クエリの実行計画や予想実行時間を確認し、最適化の機会を見つけることができます。
  • コスト管理: 不要なクエリの実行や大規模な変更によるコストの増加を防ぐことができます。

今後の機能拡張

GCP版Dataformでは従来提供されていた幾つかの機能がクローズされています。将来的には以下のような機能拡張が予定されているそうです。

  1. 開発/本番環境の設定
  2. 定期実行スケジュール
  3. 依存関係ツリーの可視化
  4. クエリプレビュー

現状のDataform環境での課題としては、開発ワークスペースから本番環境に直接実行できることが挙げられます。これにより、開発中のものが本番や共通で使っている環境に影響してしまいます。

今後予定されているDataform環境では、本番/開発環境の設定が可能で、これにより安全な開発作業を進めることが出来ます。

dry-runの検証環境

ここから実際に実行手順を見ていきますが、その際に利用する環境について説明します。

  • データセット:dataform
  • 構築テーブル:dryrun\_test
    • Int64_field_0
    • Int64_field_1
    • int64_field_2
  • リソーステーブル:resource
    • Int64_field_0
    • Int64_field_1
    • int64_field_2
  • 実行クエリ:resource\_summary.sqlx
config {
    type: "table",
    schema: "dataform",
    name: "dryrun_test",
    description: "resource_summary",
    dependencies: ["resource"]
}

SELECT
  AVG(int64_field_0) AS AVG_0,
  MIN(int64_field_1) AS min_1,
  MAX(int64_field_2) AS max_2
FROM
  ${ref("resource")}

dry-runの実行手順

Dataformのdry-runを実行するための基本的な手順は以下の通りです。

  1. 環境設定
    • Dataformプロジェクトのルートディレクトリに移動します。
    • 必要な認証情報やプロジェクト設定が正しく構成されていることを確認します。
  2. コマンドラインツールの準備
    • Dataform CLIがインストールされていることを確認します。
    • ターミナルまたはコマンドプロンプトを開きます。
  3. Dry-runコマンドの実行
  • 以下のコマンドを実行します:
  • compileコマンドはSQLファイルをコンパイルし、dry-runコマンドは実際の実行をシミュレートします。
$ dataform compile
$ dataform run --dry-run
  1. 結果の確認
    • コマンド実行後、dry-runの結果が表示されます。
    • 正常に完了した場合、以下のような結果を表示します。
Compiling...
Compiled 1 action(s).
1 dataset(s):
  dataform.dryrun_test [table]


Compiling...
Compiled successfully.
Dry running (no changes to the warehouse will be applied)...
Table dry run success:  dataform.dryrun_test [table]

Dry-runを使った開発フロー

  1. コード変更の実施
  • 新しい機能の追加やバグ修正などの必要なコード変更を行います。
  • 変更内容を適切にコメントし、ドキュメント化します。
  1. ローカル環境でのコンパイル
    dataform compile コマンドを使用して、変更したコードをローカル環境でコンパイルします。コンパイルエラーがある場合は、この段階で修正します。

  2. Dry-runの実行
    dataform dry-run コマンドを使用して、実行をシミュレートします。
    実行結果を注意深く確認し、予期せぬ変更がないか確認します。
    Bigquery側のエラーが報告された場合は、該当するSQLXファイルを見直し、修正します。修正後、再度dry-runを実行して修正が正しく適用されたことを確認します。

    重要な変更の場合は、dry-runの結果をチームメンバーと共有し、レビューを依頼します。

  3. 本番環境への適用判断
    dry-runの結果に問題がなければ、本番環境への適用を検討します。
    必要に応じて、段階的なロールアウトや追加のテストを計画します。

これらの手順を慎重に実行することで、Dataformの変更を安全に管理し、データパイプラインの信頼性を維持することができます。

まとめ

dry-runの実行を開発プロセスに組み込み、定期的に活用することで、より信頼性の高いデータパイプラインを構築・維持することができます。また、今後の機能拡張にも注目し、新しい機能を積極的に取り入れることで、さらなる効率化と品質向上を図ることが可能です。

参考

info
備考

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

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