このドキュメントは、Dataform での SQL ワークフローのアーキテクチャと実行を理解するのに役立ちます。
Dataform を使用して BigQuery で実行し、分析目的でデータを変換できる SQL ワークフローを開発、テスト、バージョン管理できます。SQL ワークフローは、Dataform コアで、SQLX ファイルと、必要に応じて JavaScript ファイルを使用して、または JavaScript で開発できます。
SQL ワークフローは、次のオブジェクトで構成できます。
- データソースの宣言
- Dataform テーブル定義と SQL オペレーションでこれらのデータソースを参照できる BigQuery データソースの宣言。
- テーブル
- 宣言されたデータソースや、SQL ワークフローの他のテーブルに基づいて、Dataform で作成するテーブル。Dataform は、テーブル、増分テーブル、ビュー、マテリアライズド ビューのテーブルをサポートしています。
- アサーション
- テーブルデータの検証に使用できるデータ品質テストクエリ。Dataform は、SQL ワークフローを更新するたびにアサーションを実行し、アサーションが失敗した場合はアラートを送信します。
- カスタム SQL オペレーション
- Dataform がそのまま変更せずに BigQuery で実行する SQL ステートメント。
- 含まれるサービス
- SQL ワークフロー全体で再利用できる変数と関数の定義を含む JavaScript ファイル。
SQL ワークフローの可視化
SQL ワークフローは、有向非巡回グラフ(DAG)の形式で可視化できます。DAG には、ワークスペースで定義された SQL ワークフローのすべてのオブジェクトとそれらの関係が表示されます。ズームインとズームアウト、ドラッグ&ドロップを使用して DAG 内を移動できます。SQL ワークフローにコンパイル エラーがある場合は、Dataform に DAG ではなくエラー メッセージが表示されます。
SQL ワークフローの DAG を表示するには、ワークスペースで [コンパイル済みグラフ] をクリックします。
SQL ワークフローの実行
開発ワークスペースでは、SQL ワークフロー全体、選択したアクション、または選択したタグに対して手動で実行をトリガーできます。
Dataform のリリース構成とワークフロー構成を使用して、実行をスケジュールできます。まず、リポジトリのコンパイル結果を作成するリリース構成を作成します。次に、ワークフロー構成を作成して、リリース構成を選択し、実行する SQL ワークフロー アクションを選択して、実行スケジュールを設定します。
あるいは、Cloud Composer またはWorkflows と Cloud Scheduler を使用して実行をスケジュールすることもできます。
Dataform は、実行中に SQL ワークフローのオブジェクト依存関係の順序に従って BigQuery で SQL クエリを実行します。実行後、BigQuery での分析のすべての目的で、定義されたテーブルとビューを使用できます。
実行構成オプション
SQL ワークフロー オブジェクトの特定のグループを実行するには、選択したファイルに Dataform 実行タグを追加します。その後、実行を手動でトリガーするときに、選択したタグを持つファイルのみを実行できます。
デフォルトでは、Dataform は dataform.json
ファイルで定義された実行設定を使用して SQL ワークフローを実行します。これらの実行設定は、コンパイルのオーバーライドでオーバーライドできます。
ワークスペースのコンパイルのオーバーライドを使用すると、ワークスペースを隔離された実行環境に変換できます。つまり、ワークスペースで手動で実行をトリガーすると、Dataform は BigQuery の分離された場所で出力を実行します。
コンパイルのオーバーライドを使用して単一のコンパイル結果を作成して実行するには、Dataform API を使用してリクエストを渡します。
リリース構成では、リポジトリ全体のコンパイルのオーバーライドと、適用された設定でコンパイル結果を作成する頻度を構成できます。
Dataform でコンパイルとコードのライフサイクルを構成する方法については、Dataform でのコード ライフサイクルの概要をご覧ください。
次のステップ
- データソースの宣言方法については、データソースの宣言をご覧ください。
- 依存関係を宣言して SQL ワークフローのオブジェクト間の関係を定義する方法については、依存関係の宣言をご覧ください。
- カスタム SQL オペレーションの定義方法については、カスタム SQL オペレーションの追加をご覧ください。
- インクルードを使用して SQL ワークフローでコードを再利用する方法については、インクルードを使用して変数と関数を再利用するをご覧ください。