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