リポジトリの作成
このドキュメントでは、BigQuery でリポジトリを操作する方法について説明します。これには、次のタスクが含まれます。
- リポジトリを作成する
- リポジトリを削除する
- リポジトリを共有する
- 必要に応じて BigQuery リポジトリをサードパーティ リポジトリに接続する
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
共有リポジトリを作成して管理する: コードオーナー(
roles/dataform.codeOwner
) - 共有リポジトリでワークスペースを作成、削除する: コード編集者(
roles/dataform.codeEditor
) - 共有リポジトリのワークスペースでファイルの作成、変更、バージョン管理を行う: コード編集者(
roles/dataform.codeEditor
) - 共有リポジトリ内のワークスペースとそれらのファイルを表示する: コード閲覧者(
roles/dataform.codeViewer
) -
プライベート リポジトリを作成して管理する(プライベート リポジトリ内のワークスペースとファイルに対するすべてのアクションを含む): コード作成者(
roles/dataform.codeCreator
) Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、[リポジトリ] フォルダをクリックします。
エディタで [リポジトリの追加] をクリックします。
[リポジトリの作成] ペインの [リポジトリ ID] フィールドに一意の ID を入力します。
ID には数字、英字、ハイフン、アンダースコアのみを使用できます。
[リージョン] プルダウン リストで、リポジトリとそのコンテンツを保存する BigQuery リージョンを選択します。自分の場所に最も近い BigQuery リージョンを選択します。
使用可能な BigQuery リージョンの一覧については、BigQuery Studio のロケーションをご覧ください。リポジトリ リージョンは、BigQuery データセットのロケーションと一致する必要はありません。
[作成] をクリックします。
Git プロバイダで次の操作を行います。
Azure DevOps Services
- Azure DevOps Services で秘密 SSH 認証鍵を作成します。
- Azure DevOps Services リポジトリに公開 SSH 認証鍵をアップロードします。
Bitbucket
- Bitbucket で秘密 SSH 認証鍵を作成します。
- Bitbucket リポジトリに公開 SSH 認証鍵をアップロードします。
GitHub
- GitHub で既存の SSH 認証鍵があるか確認します。
- 既存の SSH 認証鍵がない、または新しい鍵を使用する場合は、秘密 SSH 認証鍵を作成します。
- GitHub リポジトリに GitHub の公開 SSH 認証鍵をアップロードします。
GitLab
- GitLab で秘密 SSH 認証鍵を作成します。
- GitLab リポジトリに GitLab の公開 SSH 認証鍵をアップロードします。
Secret Manager でシークレットを作成し、秘密 SSH 認証鍵をシークレット値として貼り付けます。秘密 SSH 認証鍵は、
~/.ssh/id_ed25519
に似たファイルに保存されているはずです。後で見つけられるように、シークレットに名前を付けます。デフォルトの Dataform サービス アカウントにシークレットへのアクセス権を付与します。
デフォルトの Dataform サービス アカウントの形式は次のとおりです。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
サービス アカウントに
roles/secretmanager.secretAccessor
ロールを付与します。Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、[リポジトリ] フォルダを開きます。
リモート リポジトリに接続する BigQuery リポジトリを選択します。
エディタで [構成] タブを選択します。
[Git と接続] をクリックします。
[リモート リポジトリに接続] ペインで、[SSH] ラジオボタンを選択します。
[リモートの Git リポジトリの URL] フィールドに、末尾が
.git
のリモート Git リポジトリの URL を入力します。リモート Git リポジトリの URL は、次のいずれかの形式にする必要があります。
- 絶対 URL:
ssh://git@{host_name}[:{port}]/{repository_path}
、port
は省略可。 - SCP のような URL:
git@{host_name}:{repository_path}
。
- 絶対 URL:
[デフォルトのリモート ブランチ名] フィールドに、リモート Git リポジトリのメインブランチの名前を入力します。
[シークレット] プルダウンで、SSH 秘密鍵を含む作成したシークレットを選択します。
[ホストの SSH 公開鍵の Key-Value] フィールドに、Git プロバイダのホストの公開鍵を入力します。
Azure DevOps Services
SSH 公開鍵の値は
known_hosts
ファイルの形式にする必要があります。この値には、アルゴリズムと、base64
形式でエンコードされた公開鍵が、次の形式で含まれている必要があります(ホスト名や IP は不要です)。ALGORITHM BASE64_KEY_VALUE
Azure DevOps Services のホストの公開鍵を取得するには、ターミナルで
ssh-keyscan -t rsa ssh.dev.azure.com
コマンドを実行します。Bitbucket
SSH 公開鍵の値は
known_hosts
ファイルの形式にする必要があります。この値には、アルゴリズムと、base64
形式でエンコードされた公開鍵が、次の形式で含まれている必要があります(ホスト名や IP は不要です)。ALGORITHM BASE64_KEY_VALUE
Bitbucket のホストの公開鍵を取得するには、SSH を構成するをご覧ください。
GitHub
SSH 公開鍵の値は
known_hosts
ファイルの形式にする必要があります。この値には、アルゴリズムと、base64
形式でエンコードされた公開鍵が、次の形式で含まれている必要があります(ホスト名や IP は不要です)。ALGORITHM BASE64_KEY_VALUE
GitHub のホストの公開鍵を取得するには、GitHub の SSH 認証鍵のフィンガープリントをご覧ください。
GitLab
SSH 公開鍵の値は
known_hosts
ファイルの形式にする必要があります。この値には、アルゴリズムと、base64
形式でエンコードされた公開鍵が、次の形式で含まれている必要があります(ホスト名や IP は不要です)。ALGORITHM BASE64_KEY_VALUE
GitLab のホストの公開鍵を取得するには、SSH
known_hosts
のエントリをご覧ください。[接続] をクリックします。
Git プロバイダで次の操作を行います。
GitHub
GitHub で、きめ細かい個人アクセス トークンまたは従来の個人アクセス トークンを作成します。
- きめ細かい GitHub 個人アクセス トークンの場合は、次の操作を行います。
選択したリポジトリのみへのリポジトリ アクセスを選択し、接続するリポジトリを選択します。
リポジトリの内容に対する読み取り / 書き込みアクセス権を付与します。
ニーズに応じてトークンの有効期限を設定します。
- 従来の GitHub 個人アクセス トークンの場合は、次の操作を行います。
BigQuery に
repo
権限を付与します。ニーズに応じてトークンの有効期限を設定します。
組織で SAML シングル サインオン(SSO)を使用している場合は、トークンを承認します。
GitLab
GitLab で GitLab 個人アクセス トークンを作成します。
トークンに
dataform
という名前を付けます。これは必須です。BigQuery に
api
、read_repository
、write_repository
の権限を付与します。ニーズに応じてトークンの有効期限を設定します。
Secret Manager で、リモート リポジトリの個人アクセス トークンを含むシークレットを作成します。
デフォルトの Dataform サービス アカウントにシークレットへのアクセス権を付与します。
デフォルトの Dataform サービス アカウントの形式は次のとおりです。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
サービス アカウントに
roles/secretmanager.secretAccessor
ロールを付与します。Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、[リポジトリ] フォルダを開きます。
リモート リポジトリに接続する BigQuery リポジトリを選択します。
エディタで [構成] タブを選択します。
[Git と接続] をクリックします。
[リモート リポジトリに接続] ペインで、[HTTPS] ラジオボタンを選択します。
[リモートの Git リポジトリの URL] フィールドに、末尾が
.git
のリモート Git リポジトリの URL を入力します。リモート Git リポジトリの URL にユーザー名やパスワードを含めることはできません。
[デフォルトのリモート ブランチ名] フィールドに、リモート Git リポジトリのメインブランチの名前を入力します。
[シークレット] プルダウンで、個人アクセス トークンを含む作成したシークレットを選択します。
[接続] をクリックします。
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、[リポジトリ] フォルダを開きます。
接続を編集する BigQuery リポジトリを選択します。
エディタで [構成] タブを選択します。
リポジトリ ページで、[Git 接続を編集] をクリックします。
接続設定を編集します。
[更新] をクリックします。
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、[リポジトリ] フォルダをクリックします。
[Git リポジトリ] ペインで、共有するリポジトリを選択します。
[アクション] オプションをクリックし、[共有] をクリックします。
[共有権限] ペインで、[ユーザー / グループを追加] をクリックします。
[ユーザー / グループの追加] ペインの [新しいプリンシパル] フィールドに、1 つ以上のユーザー名またはグループ名をカンマ区切りで入力します。
[ロール] フィールドで、新しいプリンシパルに割り当てるロールを選択します。
[保存] をクリックします。
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、[リポジトリ] フォルダをクリックします。
[Git リポジトリ] ペインで、削除するリポジトリを選択します。
[アクション] オプションをクリックし、[削除] をクリックします。
[削除] をクリックします。
- ワークスペースを作成する方法を確認する。
必要なロール
リポジトリとワークスペースの操作に必要な権限を取得するには、リポジトリとワークスペースに対する次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
リポジトリに対するコード編集者のロールを持つプリンシパルは、リポジトリ内のすべてのワークスペースを編集できます。
作成したプライベート リポジトリは、プロジェクト レベルで BigQuery 管理者ロールまたは BigQuery Studio 管理者ロールが付与されているプリンシパルには引き続き表示されます。これらのプリンシパルは、それらのプライベート リポジトリを他のユーザーと共有できます。
リポジトリを作成する
BigQuery リポジトリを作成するには、次の操作を行います。
サードパーティ リポジトリに接続する
このセクションでは、BigQuery リポジトリをリモート リポジトリに接続する方法について説明します。リポジトリを接続すると、そのリポジトリに含まれるワークスペース内のファイルに対して Git アクションを実行できます。たとえば、リモート リポジトリから更新を pull したり、リモート リポジトリに変更を push したりできます。
接続するリモート リポジトリごとに専用の BigQuery リポジトリを作成することをおすすめします。マッピングを明確にするために、その BigQuery リポジトリにリモート リポジトリに似た名前を付けます。
リモート リポジトリには、HTTPS または SSH 経由で接続できます。BigQuery リポジトリのリモート リポジトリへの接続は、リモート リポジトリが公共のインターネットに開かれていない場合(例: ファイアウォールの内側にある場合)に失敗する可能性があります。次の表に、サポートされている Git プロバイダと、そのリポジトリで使用できる接続方法を示します。
Git プロバイダ | 接続方法 |
---|---|
Azure DevOps Services | SSH |
Bitbucket | SSH |
GitHub | SSH または HTTPS |
GitLab | SSH または HTTPS |
SSH 経由でリモート リポジトリに接続する
SSH 経由でリモート リポジトリに接続するには、SSH 認証鍵と Secret Manager シークレットを生成する必要があります。SSH 認証鍵は、公開 SSH 認証鍵と秘密 SSH 認証鍵で構成されています。公開 SSH 認証鍵を Git プロバイダと共有し、秘密 SSH 認証鍵を使用して Secret Manager シークレットを作成する必要があります。次に、デフォルトの BigQuery サービス アカウントとシークレットを共有します。
BigQuery は秘密 SSH 認証鍵のシークレットを使用して Git プロバイダにログインし、ユーザーに代わって変更を commit します。BigQuery では、ユーザーの Google Cloud メールアドレスを使用してこれらの commit が行われるため、誰が各 commit を行ったかを確認できます。
SSH を介してリモート リポジトリを BigQuery リポジトリに接続する手順は次のとおりです。
HTTPS 経由でリモート リポジトリに接続する
HTTPS 経由でリモート リポジトリに接続するには、個人アクセス トークンを含む Secret Manager シークレットを作成し、デフォルトの BigQuery サービス アカウントとシークレットを共有する必要があります。
BigQuery は、そのアクセス トークンを使用して Git プロバイダにログインし、ユーザーに代わって変更を commit します。BigQuery では、ユーザーの Google Cloud メールアドレスを使用してこれらの commit が行われるため、誰が各 commit を行ったかを確認できます。
HTTPS を介してリモート リポジトリを BigQuery リポジトリに接続する手順は次のとおりです。
リモート リポジトリ接続を編集する
BigQuery リポジトリとリモート Git リポジトリ間の接続を編集する手順は次のとおりです。
リポジトリを共有する
リポジトリを共有する手順は次のとおりです。
リポジトリを削除する
リポジトリとそのすべてのコンテンツを削除するには、次の手順を行います。