このドキュメントでは、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 ワークフロー全体でコードを再利用する方法について、インクルードを使用して変数と関数を再利用するを確認する。