概要
GCPのサービスの一つであるDataformについて、以下の2部構成でまとめいる記事のうち、本記事は実践編です
初級編:https://qiita.com/Memmbers_DataAdventure/items/c39f06bf029bc8c75722
実践編:★本記事
データ分析に関係する業務の人目線での記事となっておりますが、参考になれば幸いです
この記事では、Google Cloud Platform (GCP) のサービスであるDataformの実践的な使い方について説明します
実践編として、5つの機能を紹介し、データ分析に携わる方々にとって役立つ内容となっています
1. 対象を指定して実行する
データ分析において、上流システムの一部不具合により、GCP上に構築したワークフローの中の特定の機能やシナリオを再実行したい場面があります。そんな時に便利な機能が「対象を指定して実行する」機能です
この機能は、SQLXのconfigブロックでtagsを作成し、実行時にそのtagsを指定することで簡単に行えます
2. 全件洗い替えと差分更新
全件更新とは、対象のテーブルをゼロから再作成する処理です
一方、差分更新とは、集計元と集計先の差分のみを更新する処理です
Dataform上での実施方法は以下の通りです
- 全件更新: ワークフロー上で「フル更新で実行」のオプションを選択する
- 差分更新: incrementalテーブルタイプのテーブルを作成し使用する
ここでは差分更新の際のサンプルを以下に示します
configブロックで、incrememntalタイプを定義し、sqlにて差分の条件を記述することで、この条件に該当する差分を更新することが可能
3. テストと通知
データ分析で使用するデータにnull値や重複があると、正確な分析が困難になります
Dataformのassertionsオプションを使用することで、事前にこれらの問題を検知することが可能です
例えば、nullでないことをチェックするには以下のようにする
実行ログやテスト結果が保存されるテーブルから結果を確認することができます
以下のように確認
4. その他の便利機能
その他、個人的におすすめな便利機能があるので、簡単に紹介します
4.1. カスタム変数の利用
Dataformではカスタム変数を使用することができます
カスタム変数を使用し、動的に値を変更したい場合に使うことができます
詳細は、以下の各ドキュメントをご覧ください
4.2. 他サービスとの連携
また、ワークフローを構築すると、都度ログを確認する作業が必要になります
この作業を効率化するために、エラー検知とその結果をSlackに通知する仕組みを構築することが可能です
これにより、エラーが発生した場合のみ通知を受け取り、その通知でログを確認することができます
詳細な手順は以下の記事を参照してください
まとめ
Dataformを使用してSQLのワークフローを構築し、管理・運用するための実践的な機能を紹介しました
これらの機能を効果的に利用することで、データ品質の向上や開発生産性の向上に貢献できれば幸いです