建立存放區
本文說明如何在 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」頁面。
在「Explorer」窗格中,按一下「Repositories」資料夾。
在編輯器中,按一下「新增存放區」。
在「Create repository」(建立存放區) 窗格的「Repository ID」(存放區 ID) 欄位中,輸入專屬 ID。
ID 只能使用數字、英文字母、連字號和底線。
在「Region」(區域) 下拉式清單中,選取用於儲存存放區及其內容的 BigQuery 區域。選取離您所在位置最近的 BigQuery 區域。
如需可用的 BigQuery 區域清單,請參閱 BigQuery Studio 位置。存放區地區不必與 BigQuery 資料集的位置相同。
點選「建立」。
在 Git 供應商中,執行下列操作:
Azure DevOps Services
- 在 Azure DevOps Services 中建立私密安全殼層金鑰。
- 將公開安全殼層金鑰上傳至 Azure DevOps Services 存放區。
Bitbucket
- 在 Bitbucket 中建立私密 SSH 金鑰。
- 將公開安全殼層金鑰上傳至 Bitbucket 存放區。
GitHub
- 在 GitHub 中檢查現有的 SSH 金鑰。
- 如果您沒有現有的 SSH 金鑰,或想使用新的金鑰,請建立私密 SSH 金鑰。
- 將 GitHub 公開 SSH 金鑰上傳至 GitHub 存放區。
GitLab
- 在 GitLab 中建立私密 SSH 金鑰。
- 將 GitLab 公開 SSH 金鑰上傳至 GitLab 存放區。
在 Secret Manager 中建立密鑰,然後將私密 SSH 金鑰貼到密鑰值中。您的私密 SSH 金鑰應儲存在類似
~/.ssh/id_ed25519
的檔案中。為密鑰命名,方便日後尋找。-
預設 Dataform 服務帳戶的格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
將
roles/secretmanager.secretAccessor
角色指派給服務帳戶。前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,展開「Repositories」資料夾。
選取要連結至遠端存放區的 BigQuery 存放區。
在編輯器中,選取「設定」分頁標籤。
按一下「Connect with Git」(透過 Git 連線)。
在「Connect to remote repository」(連線至遠端存放區) 窗格中,選取「SSH」單選按鈕。
在「Remote Git repository URL」(遠端 Git 存放區網址) 欄位中,輸入遠端 Git 存放區的網址,結尾為
.git
。遠端 Git 存放區網址必須採用下列其中一種格式:
- 絕對網址:
ssh://git@{host_name}[:{port}]/{repository_path}
,port
為選填。 - 類似 SCP 的網址:
git@{host_name}:{repository_path}
。
- 絕對網址:
在「Default remote branch name」(預設遠端分支版本名稱) 欄位中,輸入遠端 Git 存放區主要分支版本的名稱。
在「Secret」下拉式選單中,選取您建立的密鑰,其中包含 SSH 私密金鑰。
在「SSH 公開主機金鑰值」欄位中,輸入 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
GitLab
在 GitLab 中建立 GitLab 個人存取權杖。
為權杖命名
dataform
,這是必要步驟。授予 BigQuery
api
、read_repository
和write_repository
權限。視需求設定合適的權杖到期時間。
在 Secret Manager 中,建立密鑰,其中包含遠端存放區的個人存取權杖。
-
預設 Dataform 服務帳戶的格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
將
roles/secretmanager.secretAccessor
角色指派給服務帳戶。前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,展開「Repositories」資料夾。
選取要連結至遠端存放區的 BigQuery 存放區。
在編輯器中,選取「設定」分頁標籤。
按一下「Connect with Git」(透過 Git 連線)。
在「Connect to remote repository」(連線至遠端存放區) 窗格中,選取「HTTPS」單選按鈕。
在「Remote Git repository URL」(遠端 Git 存放區網址) 欄位中,輸入遠端 Git 存放區的網址,結尾為
.git
。遠端 Git 存放區的網址不得包含使用者名稱或密碼。
在「Default remote branch name」(預設遠端分支版本名稱) 欄位中,輸入遠端 Git 存放區主要分支版本的名稱。
在「Secret」下拉式選單中,選取您建立的密碼,其中包含個人存取權權杖。
按一下「連線」。
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,展開「Repositories」資料夾。
選取要編輯連線的 BigQuery 存放區。
在編輯器中,選取「設定」分頁標籤。
在存放區頁面中,按一下「編輯 Git 連線」。
編輯連線設定。
按一下「更新」。
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,按一下「Repositories」資料夾。
在「Git Repositories」窗格中,選取要共用的存放區。
按一下
「動作」選項,然後按一下「分享」。在「分享權限」窗格中,按一下「新增使用者/群組」。
在「新增使用者/群組」窗格的「新增主體」欄位中,輸入一或多個使用者或群組名稱,並以半形逗號分隔。
在「角色」欄位中,選擇要指派給新主體的角色。
按一下 [儲存]。
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,按一下「Repositories」資料夾。
在「Git Repositories」(Git 存放區) 窗格中,選取要刪除的存放區。
按一下
「動作」選項,然後按一下「刪除」。點選「刪除」。
- 瞭解如何建立工作區。
必要的角色
如要取得使用存放區和工作區所需的權限,請要求管理員在存放區和工作區中授予下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
如果主體在存放區中具備程式碼編輯器角色,就能編輯存放區中的所有工作區。
您建立的私人存放區仍會向在專案層級獲派 BigQuery 管理員或 BigQuery Studio 管理員角色的主體顯示。這些主體可以與其他使用者共用您的私人存放區。
建立存放區
如要建立 BigQuery 存放區,請按照下列步驟操作:
連結至第三方存放區
本節說明如何將 BigQuery 存放區連線至遠端存放區。連結存放區後,您就能對存放區所含工作區中的檔案執行 Git 動作。例如從遠端存放區提取更新,以及將變更推送至遠端存放區。
建議您為連線的每個遠端存放區建立專屬的 BigQuery 存放區。為 BigQuery 存放區命名時,請使用與遠端存放區類似的名稱,方便清楚對應。
您可以透過 HTTPS 或 SSH 連線至遠端存放區。如果遠端存放區未對外開放,例如位於防火牆後方,將 BigQuery 存放區連線至遠端存放區可能會失敗。下表列出支援的 Git 供應商,以及這些供應商存放區可用的連線方法:
Git 供應商 | 連線方法 |
---|---|
Azure DevOps Services | SSH |
Bitbucket | SSH |
GitHub | SSH 或 HTTPS |
GitLab | SSH 或 HTTPS |
透過 SSH 連線至遠端存放區
如要透過 SSH 連線至遠端存放區,您必須產生 SSH 金鑰和 Secret Manager 密碼。安全殼層金鑰包含公開安全殼層金鑰和私密安全殼層金鑰。您必須與 Git 供應商共用公開安全殼層金鑰,並使用私密安全殼層金鑰建立 Secret Manager 密鑰。然後,與預設的 BigQuery 服務帳戶共用密鑰。
BigQuery 會使用含有私密 SSH 金鑰的密鑰登入 Git 供應商,代表使用者提交變更。BigQuery 會使用使用者的電子郵件地址進行這些提交作業,因此您可以判斷是誰提交了每項作業。 Google Cloud
如要透過 SSH 將遠端存放區連結至 BigQuery 存放區,請按照下列步驟操作:
透過 HTTPS 連線至遠端存放區
如要透過 HTTPS 連線至遠端存放區,您必須使用個人存取權杖建立 Secret Manager 密鑰,並與預設 BigQuery 服務帳戶共用該密鑰。
BigQuery 接著會使用存取權杖登入 Git 供應商,代表使用者提交變更。BigQuery 會使用使用者的 Google Cloud 電子郵件地址進行這些提交作業,因此您可以判斷每個提交作業是由誰完成。
如要透過 HTTPS 將遠端存放區連結至 BigQuery 存放區,請按照下列步驟操作:
編輯遠端存放區連線
如要編輯 BigQuery 存放區與遠端 Git 存放區之間的連線,請按照下列步驟操作:
共用存放區
如要共用存放區,請按照下列步驟操作:
刪除存放區
如要刪除存放區和當中所有內容,請按照下列步驟操作: