このドキュメントでは、Dataform のリポジトリのコンセプトと、新しいリポジトリの作成方法について説明します。
Dataform リポジトリについて
各 Dataform リポジトリには、SQL ワークフローを構成する SQLX と JavaScript ファイルのコレクション、Dataform 構成ファイルとパッケージが格納されています。リポジトリ内のファイルは開発ワークスペースで操作します。
Dataform では、リポジトリは [Dataform] ページでリポジトリ ID のアルファベット順に表示され、並べ替えとフィルタリングを行えます。
リポジトリを表示するには、 Google Cloud コンソールで [Dataform] ページに移動します。
各 Dataform リポジトリは、カスタム サービス アカウントに接続する必要があります。カスタム サービス アカウントは、リポジトリを作成するときに選択します。サービス アカウントは後で編集できます。
Dataform では、変更の記録とファイルのバージョン管理のために、Git を使用します。 各 Dataform リポジトリは Git リポジトリに対応しています。Dataform リポジトリを作成したら、リモートの GitHub、GitLab、または Bitbucket リポジトリに接続できます。
Dataform リポジトリでは、Dataform がリポジトリ コードを保存します。接続されたリポジトリで、サードパーティのリポジトリがリポジトリ コードを保存します。Dataform をサードパーティのリポジトリと連携させることで、Dataform 開発ワークスペースでその内容を編集して実行できるようになります。
Dataform リポジトリ ページは、次のコンポーネントで構成されています。
- [開発ワークスペース] タブ
- リポジトリに作成された開発ワークスペースを表示します。
- [ワークフローの実行ログ] タブ
- Dataform ワークフローの実行ログを表示します。
- [リリースとスケジュール] タブ
- リリース構成とワークフロー構成を検査、作成、編集、削除できます。
- [設定] タブ
- リポジトリの名前と場所が表示されます。サードパーティの Git リポジトリに接続されているリポジトリの場合は、サードパーティのリポジトリ ソース、デフォルトのブランチ名、シークレット トークンを表示します。サードパーティの Git リポジトリにリポジトリを接続し、Git 接続を編集するためのボタンが表示されます。
- [開発ワークスペースを作成] ボタン
- 開発ワークスペースを作成できます。
開発ワークスペースを作成して初期化したら、ワークフロー設定ファイルを編集して、リポジトリの次の Dataform 設定を構成できます。
- デフォルト データベース(Google Cloud プロジェクト ID)。
- デフォルトのスキーマ(BigQuery データセット ID)。
- デフォルトの BigQuery のロケーション
- アサーションのデフォルトのスキーマ(BigQuery データセット ID)
- ウェアハウス。
bigqueryに設定する必要があります - コンパイル中にプロジェクト コードで使用できるユーザー定義変数。
Dataform リポジトリの設定の詳細については、Dataform コアのリファレンスの IProjectConfig をご覧ください。
リポジトリ設定
Dataform リポジトリを作成するときは、次のリポジトリ設定を行う必要があります。
- リポジトリ ID
- リポジトリの一意の ID。ID には数字、英字、ハイフン、アンダースコアのみを使用できます。
- リージョン
リポジトリとそのコンテンツを保存する Dataform リージョン。
このストレージ リージョンは、Dataform がコードを処理して実行の出力を保存する処理リージョンとは異なる場合があります。デフォルトでは、処理リージョンはデフォルトの BigQuery データセット リージョンに設定されます。リポジトリの作成後に、ワークフロー設定ファイルで処理リージョンを編集できます。詳細については、Dataform ワークフロー設定を構成するをご覧ください。
- サービス アカウント
リポジトリに関連付けられているカスタム サービス アカウント。 Google Cloud プロジェクトに関連付けられたサービス アカウントを選択することも、別のサービス アカウントを手動で入力することもできます。
リポジトリでワークフローを実行するには、カスタム サービス アカウントを使用する必要があります。他のすべてのリポジトリ オペレーションは、デフォルトの Dataform サービス エージェントによって実行されます。
- 厳格な act-as モード
サービス アカウントに対する
iam.serviceAccounts.actAs権限を必要とする追加のセキュリティ チェックを有効にします。すべてのリポジトリに対して厳格な act-as モードが適用されます。- 暗号化
リポジトリの暗号化方式。デフォルトの暗号化、一意の顧客管理の Cloud KMS 暗号鍵、またはデフォルトの Dataform CMEK 鍵を使用できます。Dataform で顧客管理の暗号鍵(CMEK)を使用する方法については、顧客管理の暗号鍵を使用するをご覧ください。
リポジトリを作成したら、GitHub または GitLab に接続できます。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- リポジトリに CMEK 暗号化を使用するには、Dataform リポジトリの CMEK 暗号化を有効にします。
必要なロール
リポジトリの作成と削除に必要な権限を取得するには、リポジトリに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Dataform 管理者(
roles/dataform.admin)- プロジェクト - カスタム サービス アカウントに対するサービス アカウント ユーザー ロール(
roles/iam.serviceAccountUser)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
必要なロールを付与する
Dataform リポジトリと BigQuery でワークフローを実行するには、カスタム サービス アカウントまたは Google アカウントを使用できます。
カスタム サービス アカウントには、次の必須ロールが必要です。
- Dataform が読み取りと書き込みの両方のアクセス権を必要とするプロジェクトまたは特定の BigQuery データセットに対する BigQuery データ編集者(
roles/bigquery.dataEditor)。通常は、Dataform リポジトリをホストするプロジェクトが含まれます。 - Dataform が読み取り専用アクセス権を必要とするプロジェクトまたは特定の BigQuery データセットに対する BigQuery データ閲覧者(
roles/bigquery.dataViewer)。 - Dataform リポジトリをホストするプロジェクトに対する BigQuery ジョブユーザー(
roles/bigquery.jobUser)。
Dataform でカスタム サービス アカウントを使用できるようにするには、デフォルトの Dataform サービス エージェントにカスタム サービス アカウント リソースに対する次のロールが必要です。