このドキュメントでは、Dataform のリポジトリのコンセプトと、新しいリポジトリの作成方法について説明します。
Dataform リポジトリについて
各 Dataform リポジトリには、SQL ワークフローを構成する SQLX と JavaScript ファイルのコレクション、Dataform 構成ファイルとパッケージが格納されています。リポジトリ内のファイルは開発ワークスペースで操作します。
Dataform では、リポジトリは [Dataform] ページでリポジトリ ID のアルファベット順に表示され、並べ替えとフィルタリングを行えます。
リポジトリを表示するには、 Google Cloud コンソールで、 [Dataform] ページに移動します。
各 Dataform リポジトリは、デフォルトの Dataform サービス エージェントまたはカスタム サービス アカウントに接続されています。カスタム サービス アカウントは、リポジトリの作成時にのみ選択できます。サービスアカウントは後で編集できます。
デフォルトでは、Dataform はプロジェクト番号から派生した次の形式のサービス エージェントまたはサービス アカウントを使用します。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
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 ワークフロー設定を構成するをご覧ください。
- サービス エージェントまたはサービス アカウント
リポジトリに関連付けられた Dataform サービス エージェントまたはカスタム サービス アカウント。新しいリポジトリの場合は、カスタム サービス アカウントを指定する必要があります。プロジェクトに関連付けられたサービス アカウントを選択するか、別のサービス アカウントを手動で入力できます。Google Cloud
デフォルトでは、Dataform はプロジェクト番号から派生した次の形式のサービス エージェントまたはサービス アカウントを使用します。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comリポジトリでワークフローを実行するにはカスタム サービス アカウントを使用する必要がありますが、他のすべてのリポジトリ オペレーションにはデフォルトの Dataform サービス エージェントが引き続き使用されます。
- 厳格な act-as モード
サービス アカウントに対する
iam.serviceAccounts.actAs権限を必要とする追加のセキュリティ チェックを有効にします。 新しいリポジトリでは、 厳格な act-as モード が適用されます。既存のリポジトリでは、カスタム サービス アカウントを使用し、厳格な act-as モードを有効にして、より安全で予測可能な権限モデルを確保することをおすすめします。- 暗号化
リポジトリの暗号化方式。デフォルトの暗号化、一意の顧客管理 Cloud KMS 暗号鍵、デフォルトの Dataform CMEK 鍵を使用できます。Dataform で顧客管理の暗号鍵(CMEK)を使用する方法については、顧客管理の暗号鍵を使用するをご覧ください。
リポジトリを作成したら、GitHub または GitLab に 接続できます。
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $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 Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. 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 Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- リポジトリに CMEK 暗号化を使用するには、Dataform リポジトリの CMEK 暗号化を有効にします。
必要なロール
リポジトリの作成と削除に必要な権限を取得するには、リポジトリに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Dataform 管理者(
roles/dataform.admin)- プロジェクト -
サービス アカウント ユーザー(
roles/iam.serviceAccountUser)- カスタム サービス アカウント
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
必要なロールを付与する
Dataform リポジトリと BigQuery でワークフローを実行するには、カスタム サービス アカウントまたは Google アカウントを使用します。
カスタム サービス アカウントには、次の必須ロールが必要です。
- BigQuery データ編集者
(
roles/bigquery.dataEditor) Dataform が読み取りと書き込みの両方のアクセス権を必要とするプロジェクトまたは特定の BigQuery データセットに対する通常は、Dataform リポジトリをホストするプロジェクトが含まれます。 - BigQuery データ閲覧者
(
roles/bigquery.dataViewer) (Dataform が読み取り専用アクセス権を必要とするプロジェクトまたは特定の BigQuery データセットに対する) - BigQuery ジョブユーザー
(
roles/bigquery.jobUser) Dataform リポジトリをホストするプロジェクトに対する。
Dataform がカスタム サービス アカウントを使用できるようにするには、デフォルトの Dataform サービス エージェントにカスタム サービス アカウント リソースに対する次のロールが必要です。
- サービス アカウント トークン作成者
(
roles/iam.serviceAccountTokenCreator) - サービス アカウント ユーザー
(
roles/iam.serviceAccountUser)
これらのロールを付与するには、次の手順に沿って操作します。
コンソールで、[IAM] ページに移動します。 Google Cloud
[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、カスタム サービス アカウント ID を入力します。
[ロールを選択] メニューで、次のロールを 1 つずつ選択します。追加のロールごとに [別のロールを追加] を使用します。
- BigQuery データ編集者
- BigQuery データ閲覧者
- BigQuery ジョブユーザー
[保存] をクリックします。
コンソールで、[サービス アカウント] ページに移動します。 Google Cloud
カスタム サービス アカウントを選択します。
[アクセス権を持つプリンシパル] に移動し、[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、デフォルトの Dataform サービス エージェント ID を入力します。
デフォルトの Dataform サービス エージェント ID の形式は次のとおりです。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comPROJECT_NUMBERは、プロジェクトの数値 ID に置き換えます。Google Cloud プロジェクトの Google Cloud ID は Google Cloud コンソール ダッシュボードで確認できます。詳細については、 プロジェクトの識別をご覧ください。[ロールを選択] リストで、次のロールを追加します。
- サービス アカウント ユーザー
- サービス アカウント トークン作成者
[保存] をクリックします。
ロールの付与の詳細については、 Dataform に必要なアクセス権を付与するをご覧ください。
リポジトリを作成する
Dataform リポジトリを作成する手順は次のとおりです。
コンソールで、[Dataform] ページに移動します。 Google Cloud
[リポジトリを作成] をクリックします。
[リポジトリの作成] ページの [リポジトリ ID] フィールドに一意の ID を入力します。
ID には数字、英字、ハイフン、アンダースコアのみを使用できます。
[リージョン] プルダウン リストで、リポジトリとそのコンテンツを保存する Dataform リージョンを選択します。ロケーションに最も近い Dataform リージョンを選択します。
使用可能な Dataform リージョンの一覧については、ロケーションをご覧ください。リポジトリ リージョンは、BigQuery データセットのロケーションと一致する必要はありません。
workflow_settings.yamlファイルで、Dataform がコードを処理して実行の出力を保存する処理リージョンを設定できます。処理リージョンは、BigQuery データセットのロケーションと一致する必要がありますが、リポジトリ リージョンと一致する必要はありません。 詳細については、 Dataform ワークフロー設定を構成するをご覧ください。[サービス アカウント] メニューで、リポジトリのカスタム サービス アカウントを選択します。
メニューで、アクセス権のある Google Cloud プロジェクトに関連付けられたカスタム サービス アカウントを選択できます。カスタム サービス アカウントは、ワークフローの実行にのみ使用されます。他のすべてのリポジトリ オペレーションは、デフォルトの Dataform サービス エージェントによって実行されます。
- 省略可: メニューに表示されていないサービス アカウントを選択するには、[手動で入力] をクリックして、サービス アカウント ID を入力します。
[actAs 権限チェック] セクションで、リポジトリに対するユーザー アクションの権限チェックを適用します。これらのチェックの詳細については、 厳格な act-as モードを使用するをご覧ください。
リポジトリ用に選択した暗号化メカニズムを構成します。
デフォルトの CMEK 鍵
Dataform には [デフォルトの KMS 鍵を使用する] チェックボックスが表示され、デフォルトで選択されています。
- デフォルトの Dataform CMEK 鍵でリポジトリを暗号化するには、[デフォルトの KMS 鍵を使用する] チェックボックスをオンのままにします。
一意の CMEK 鍵
一意の CMEK 鍵でリポジトリを暗号化する手順は次のとおりです。
- [デフォルトの KMS 鍵を使用する] チェックボックスがデフォルトでオンになっている場合は、チェックボックスをオフにします。
- [暗号化] セクションで、[顧客管理の暗号鍵(CMEK)] オプションを選択します。
- [顧客管理の暗号鍵を選択] プルダウンで、一意の CMEK 鍵を選択します。
保存時の暗号化
- デフォルトの暗号化を使用するには、[**暗号化**] セクションで [****] オプションを選択します。Google-managed encryption key
[作成] をクリックし、[リポジトリに移動] をクリックします。
サービス アカウントを編集する
ワークフロー実行には、カスタム サービス アカウントを Dataform リポジトリに関連付ける必要があります。他のすべてのリポジトリ オペレーションは、デフォルトの Dataform サービス エージェントによって実行されます。
Dataform リポジトリのサービス アカウントを編集する手順は次のとおりです。
コンソールで、[Dataform] ページに移動します。 Google Cloud
リポジトリを選択し、[設定] をクリックします。
[サービス アカウント] フィールドの横にある [サービス アカウントを編集] をクリックします。
[サービス アカウント] メニューで、リポジトリのサービス アカウントを選択します。
メニューで、アクセス権のある Google Cloud プロジェクトに関連付けられたカスタム サービス アカウントを選択できます。
- 省略可: メニューに表示されていないサービス アカウントを選択するには、[手動で入力] をクリックして、サービス アカウント ID を入力します。
[保存] をクリックします。
リポジトリを削除する
リポジトリとそのすべてのコンテンツを削除するには、次の手順を行います。
コンソールで、[Dataform] ページに移動します。 Google Cloud
削除するリポジトリの横にある [More] メニューをクリックし、[Delete] を選択します。
[リポジトリの削除] ウィンドウで、リポジトリの名前を入力して削除を確定します。
[削除] をクリックします。
次のステップ
- Dataform リポジトリをサードパーティの Git リポジトリに接続する方法については、サードパーティの Git リポジトリに接続するをご覧ください。
- リポジトリ サイズが Dataform での開発に与える影響については、リポジトリ サイズの概要をご覧ください。
- Dataform でリポジトリを分割する方法については、リポジトリの分割の概要をご覧ください。
- Dataform の処理設定の構成方法については、 Dataform ワークフロー設定を構成するをご覧ください。
- ワークスペースを作成して初期化する方法については、ワークスペースを作成するをご覧ください。