Dataform の機能の概要

このドキュメントでは、Google Cloud の Dataform の機能について説明します。

Dataform は、データ アナリストがテーブル、増分テーブル、ビューを開発して BigQuery にデプロイするためのサーバーレス サービスです。Dataform は、SQL ワークフロー開発、GitHub、GitLab、Bitbucket Cloud との接続、継続的インテグレーション、継続的デプロイ、ワークフロー実行のためのウェブ環境を提供します。

現時点では、Dataform は顧客管理の暗号鍵(CMEK)と VPC Service Controls をサポートしていません。Dataform を使用するには、VPC Service Controls の境界から BigQuery リソースを除外する必要があります。また、Dataform CLI を使用して、SQL ワークフローをローカルで開発することもできます。

リポジトリ

各 Dataform プロジェクトは、リポジトリに保存されます。Dataform リポジトリには、JSON 構成ファイル、SQLX ファイル、JavaScript ファイルのコレクションが格納されます。

Dataform リポジトリには、次の種類のファイルが含まれています。

  • 構成ファイル

    JSON または SQLX の構成ファイルを使用すると、SQL ワークフローを構成できます。新しいテーブルとビューを作成するための一般的な構成、実行スケジュール、スキーマが含まれます。

  • 定義

    定義は、BigQuery で実行する新しいテーブル、ビュー、追加の SQL オペレーションを定義する SQLX ファイルと JavaScript ファイルです。

  • 含まれるサービス

    インクルードは、プロジェクトで使用する変数と関数を定義することができる JavaScript ファイルです。

各 Dataform リポジトリは、サービス アカウントに接続されます。サービス アカウントは、リポジトリの作成時、またはサービス アカウントの編集時に選択できます。

デフォルトでは、Dataform はプロジェクト番号から派生したサービス アカウントを次の形式で使用します。

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

バージョン管理

Dataform は、Git バージョン管理システムを使用して、プロジェクト ファイルに加えられた各変更の記録を保持し、ファイルのバージョンを管理します。

各 Dataform リポジトリは、独自の Git リポジトリを管理することも、リモートのサードパーティ Git リポジトリに接続することもできます。Dataform リポジトリを GitHub、GitLab、または Bitbucket Cloud のリポジトリに接続できます。

ユーザーは、Dataform ワークスペース内で SQL ワークフロー コードをバージョン管理します。Dataform ワークスペースでは、リポジトリから変更を pull し、すべてまたは選択した変更を commit して、リポジトリの Git ブランチに push できます。

ワークフロー開発

Dataform では、開発ワークスペース内のファイルとディレクトリを変更します。開発ワークスペースは、Git リポジトリの仮想の編集可能なコピーです。Dataform は、セッション間で開発ワークスペース内のファイルの状態を保持します。

開発ワークスペースでは、Dataform コアを SQLX と JavaScript とともに使用するか、またはJavaScript のみを使用することで、SQL ワークフロー アクションを開発できます。

テーブルやアサーションなどの Dataform SQL ワークフローの各要素は、Dataform が BigQuery で実行するアクションに対応しています。たとえば、テーブル定義ファイルは、BigQuery でテーブルを作成または更新するアクションです。

Dataform ワークスペースでは、次の SQL ワークフロー アクションを開発できます。

JavaScript を使用して、次の方法で Dataform SQL ワークフロー コードを再利用できます。

Dataform は、ワークスペースで SQL ワークフロー コードをリアルタイムでコンパイルします。ワークスペースで、各ファイルにコンパイルされたクエリとアクションの詳細を表示できます。コンパイルのステータスとエラーは、現在編集されているファイルやリポジトリで表示することもできます。

BigQuery で実行する前にコンパイル済みの SQL クエリの出力をテストするには、Dataform ワークスペースでクエリのプレビューを実行します。

ワークスペースで定義された SQL ワークフロー全体を検査するには、SQL ワークフロー内のすべてのコンパイル済みアクションとそれらの関係を示すインタラクティブなコンパイル済みグラフを表示します。

ワークフローのコンパイル

Dataform は、dataform.json で構成されているデフォルトのコンパイル設定を使用して、ワークスペース内の SQL ワークフロー コードをリアルタイムで SQL にコンパイルし、ワークスペースのコンパイル結果を作成します。

コンパイルの設定をオーバーライドして、Dataform が SQL ワークフローをコンパイル結果にコンパイルする方法をカスタマイズできます。

ワークスペースのコンパイルのオーバーライドを使用すると、リポジトリ内のすべてのワークスペースでコンパイルのオーバーライドを構成できます。動的ワークスペースのオーバーライドを設定して、ワークスペースごとにコンパイル結果をカスタム作成し、ワークスペースを独立した開発環境に変換できます。Dataform がワークスペースの内容を実行する Google Cloud プロジェクトをオーバーライドし、すべてのコンパイル済みテーブルの名前に接頭辞を追加して、デフォルトのスキーマに接尾辞を追加できます。

リリース構成では、Dataform リポジトリのコンパイル結果を作成するために、コンパイル設定のテンプレートを構成できます。リリース構成では、Dataform がコンパイル結果を実行する Google Cloud プロジェクトをオーバーライドし、すべてのコンパイル済みテーブルの名前に接頭辞を追加して、デフォルトのスキーマに接尾辞を追加し、コンパイル変数を追加します。コンパイル結果の作成頻度を設定することもできます。選択したリリース構成で作成されたコンパイル結果の実行をスケジュールするには、ワークフロー構成を作成します。

ワークフローの実行

ワークフローの実行中に、Dataform は SQL ワークフローのコンパイル結果を実行して、BigQuery でアセットを作成または更新します。

BigQuery で SQL ワークフローで定義されたテーブルとビューを作成または更新するには、開発ワークスペースでワークフローの実行を手動で開始するか、実行をスケジュールします。

BigQuery では、次の方法で Dataform 実行をスケジュールできます。

エラーをデバッグするために、次の方法で実行をモニタリングできます。

次のステップ