建立資料集
本文說明如何建立資料集,以便在 BigQuery 儲存資料。資料集是一種頂層容器,可用於整理資料表和 view,並控管存取權。
如要瞭解如何使用其他資料集類型,請參閱下列資源:
- 如要瞭解 Spanner 外部資料集,請參閱「建立 Spanner 外部資料集」。
- 如要瞭解 AWS Glue 聯合資料集,請參閱「建立 AWS Glue 聯合資料集」。
如要瞭解如何查詢公開資料集中的資料表,請參閱「使用 Cloud de Confiance 控制台查詢公開資料集」。
資料集的限制
BigQuery 資料集有下列限制:
- 資料集位置只能在建立時設定。資料集建立後即無法變更位置。
- 查詢中參照的所有資料表,都必須儲存在相同位置的資料集中。
外部資料集不支援資料表到期、副本、時間旅行、預設定序、預設捨入模式,也不支援啟用或停用不區分大小寫的資料表名稱。
複製資料表時,包含來源資料表和目的地資料表的資料集必須位於相同位置。
每個專案的資料集名稱不得重複。
事前準備
授予身分與存取權管理 (IAM) 角色,讓使用者擁有執行本文各項工作所需的權限。
所需權限
如要建立資料集,您必須具備 bigquery.datasets.create IAM 權限。
下列每個預先定義的 IAM 角色都包含建立資料集所需的權限:
roles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.userroles/bigquery.admin
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱「預先定義的角色和權限」。
建立資料集
建立資料集時,通常會指定資料儲存位置。如未指定位置,系統會使用預設位置。詳情請參閱「指定位置」。
如何建立資料集:
控制台
- 在 Cloud de Confiance 控制台開啟「BigQuery」頁面。 前往「BigQuery」頁面
- 點選左側窗格中的 「Explorer」。
- 選取要建立資料集的專案。
- 依序點選 「View actions」(查看動作) 和「Create dataset」(建立資料集)。
- 在「Create dataset」(建立資料集) 頁面:
- 在「Dataset ID」(資料集 ID) 中輸入不重複的資料集名稱。
- 在「Location type」(位置類型) 部分,選擇資料集的地理位置。資料集建立後即無法變更位置。
- 選用:如要建立外部資料集,請選取「連結至外部資料集」。
- 如果不需要設定標記和資料表到期時間等其他選項,請按一下「Create dataset」(建立資料集)。否則,請展開下列部分,設定其他資料集選項。
- 選用:展開「標記」部分,在資料集中新增標記。
- 如要套用現有標記,請按照下列步驟操作:
- 按一下「Select scope」(選取範圍) 旁的下拉式箭頭,然後選擇「Current scope」(目前範圍):「Select current organization」(選取目前的組織) 或「Select current project」(選取目前的專案)。
- 在「鍵 1」和「值 1」部分,從清單中選擇適當的值。
- 如要手動輸入新標記,請按照下列步驟操作:
- 按一下「選取範圍」旁的下拉式箭頭,然後依序選擇「手動輸入 ID」>「機構」、「專案」或「標記」。
- 如要為專案或組織建立標記,請在對話方塊中輸入
PROJECT_ID或ORGANIZATION_ID,然後按一下「Save」(儲存)。 - 在「Key 1」和「Value 1」中,從清單中選擇適當的值。
- 如要在表格中新增其他代碼,請按一下「新增代碼」,然後按照上述步驟操作。
- (選用) 展開「Advanced options」(進階選項) 部分,設定下列一或多個選項。
- 如要變更「Encryption」(加密) 選項,以便透過 Cloud Key Management Service 使用自己的加密編譯金鑰,請選取「Cloud KMS key」(Cloud KMS 金鑰)。
- 如要使用不區分大小寫的資料表名稱,請選取「啟用不區分大小寫的資料表名稱」。
- 如要變更預設定序 規格,請從清單中選擇定序類型。
- 如要設定資料集中資料表的到期時間,請選取「Enable table expiration」(啟用資料表到期時間),然後指定「Default maximum table age」(預設資料表存在時間上限) (以天為單位)。
- 如要設定預設捨入模式,請從清單中選擇捨入模式。
- 如要啟用實體儲存空間計費模式,請從清單中選擇計費模式。
- 如要設定資料集的時間回溯期,請從清單中選擇時間範圍大小。
- 點選「建立資料集」。
資料集的其他選項
或者,您也可以按一下「Select scope」(選取範圍),搜尋資源或查看目前資源清單。
變更資料集的計費模式後,最久需要 24 小時才會生效。
變更資料集的儲存空間計費模式後,必須等待 14 天才能再次變更。
SQL
如要在預設專案以外的專案中建立資料集,請將專案 ID 新增至資料集 ID,格式如下:PROJECT_ID.DATASET_ID。
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( default_kms_key_name = 'KMS_KEY_NAME', default_partition_expiration_days = PARTITION_EXPIRATION, default_table_expiration_days = TABLE_EXPIRATION, description = 'DESCRIPTION', labels = [('KEY_1','VALUE_1'),('KEY_2','VALUE_2')], location = 'LOCATION', max_time_travel_hours = HOURS, storage_billing_model = BILLING_MODEL);
替換下列內容:
PROJECT_ID:專案 IDDATASET_ID:您要建立的資料集 IDKMS_KEY_NAME:預設 Cloud Key Management Service 金鑰的名稱,用於保護這個資料集中新建立的資料表,除非在建立時提供其他金鑰。如果資料集已設定這項參數,您就無法在當中建立 Google 加密資料表。PARTITION_EXPIRATION:新建立的分區資料表中的分區預設生命週期 (以天為單位)。預設分區到期時間沒有最小值。到期時間的計算方式為分區日期加上整數值。資料集中分區資料表內建立的任何分區,都會在分區日期後的PARTITION_EXPIRATION天刪除。如果您在建立或更新分區資料表時提供time_partitioning_expiration選項,系統會優先採用資料表層級的分區到期時間,而非資料集層級的預設分區到期時間。TABLE_EXPIRATION:新建立資料表的預設生命週期 (以天為單位)。最小值為 0.042 天 (一小時)。到期時間會是目前時間加上整數值。在資料集中建立的任何資料表,都會在建立時間的TABLE_EXPIRATION天後刪除。如果您在建立資料表時未設定資料表到期時間,系統就會套用這個值。DESCRIPTION:資料集說明KEY_1:VALUE_1:要設為這個資料集第一個標籤的鍵/值組合KEY_2:VALUE_2:要設為第二個標籤的鍵/值組合LOCATION:資料集的位置。資料集建立後即無法變更位置。HOURS:新資料集的時間回溯期 (以小時為單位)。HOURS值必須是 24 的倍數 (48、72、96、120、144、168),介於 48 (2 天) 和 168 (7 天) 之間。如未指定這個選項,預設值為 168 小時。BILLING_MODEL:設定資料集的儲存空間計費模式。將BILLING_MODEL值設為PHYSICAL,即可在計算儲存空間費用時使用實體位元組,設為LOGICAL則會使用邏輯位元組。預設值為LOGICAL。變更資料集的計費模式後,最久需要 24 小時才會生效。
變更資料集的儲存空間計費模式後,必須等待 14 天,才能再次變更儲存空間計費模式。
按一下「 執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
如要建立新的資料集,請使用 bq mk 指令並加上 --location 旗標。如需完整參數清單,請參閱 bq mk --dataset 指令參考資料。
如要在非預設專案中建立資料集,請採用下列格式將專案 ID 新增至資料集:PROJECT_ID:DATASET_ID。
bq --location=LOCATION mk \ --dataset \ --default_kms_key=KMS_KEY_NAME \ --default_partition_expiration=PARTITION_EXPIRATION \ --default_table_expiration=TABLE_EXPIRATION \ --description="DESCRIPTION" \ --label=KEY_1:VALUE_1 \ --label=KEY_2:VALUE_2 \ --add_tags=KEY_3:VALUE_3[,...] \ --max_time_travel_hours=HOURS \ --storage_billing_model=BILLING_MODEL \ PROJECT_ID:DATASET_ID
更改下列內容:
LOCATION:資料集的位置。資料集在建立之後,該位置就無法改變。您可以使用.bigqueryrc檔案設定位置的預設值。KMS_KEY_NAME:預設 Cloud Key Management Service 金鑰的名稱,用於保護這個資料集中新建立的資料表,除非在建立時提供不同的金鑰。您無法在設定此參數的資料集中建立 Google 加密資料表。PARTITION_EXPIRATION:新建立分區資料表中分區的預設生命週期 (以秒為單位)。預設分區到期時間沒有最小值。到期時間的計算方式為分區日期加上整數值。資料集中已分區資料表內建立的任何分區,都會在分區日期過後PARTITION_EXPIRATION秒刪除。如果您在建立或更新分區資料表時提供--time_partitioning_expiration旗標,資料表層級的分區到期時間會優先於資料集層級的預設分區到期時間。TABLE_EXPIRATION:新建立資料表的預設生命週期 (以秒為單位)。最小值是 3600 秒 (1 小時)。到期時間的計算方式為目前時間加上整數值。在資料集中建立的任何資料表,都會在建立時間後TABLE_EXPIRATION秒刪除。如果您在建立資料表時未設定資料表到期時間,系統就會套用這個值。DESCRIPTION:資料集說明KEY_1:VALUE_1:要設為這個資料集第一個標籤的鍵/值組合,KEY_2:VALUE_2則是要設為第二個標籤的鍵/值組合。KEY_3:VALUE_3:要設為資料集標記的鍵值組。在同一個旗標下新增多個標記,並在鍵/值組合之間加上半形逗號。HOURS:新資料集時間旅行期間的時長 (以小時為單位)。HOURS值必須是 24 的倍數 (48、72、96、120、144、168),介於 48 (2 天) 和 168 (7 天) 之間。如果未指定此選項,預設值為 168 小時。BILLING_MODEL:設定資料集的儲存空間計費模式。將BILLING_MODEL值設為PHYSICAL,即可在計算儲存空間費用時使用實體位元組,設為LOGICAL則會使用邏輯位元組。預設值為LOGICAL。變更資料集的計費模式後,最久需要 24 小時才會生效。
資料集的儲存空間計費模式變更後,必須等待 14 天才能再次變更。
PROJECT_ID:您的專案 ID。DATASET_ID是您要建立的資料集 ID。
舉例來說,下列指令會建立名為 mydataset 的資料集,並將資料位置設定為 US,而預設的資料表到期時間為 3,600 秒 (1 小時),說明則為 This is my dataset。這個指令採用 -d 捷徑,而不是使用 --dataset 旗標。如果您省略 -d 和 --dataset,該指令預設會建立資料集。
bq --location=US mk -d \ --default_table_expiration 3600 \ --description "This is my dataset." \ mydataset
如要確認資料集已建立完成,請輸入 bq ls 指令。此外,您也可以使用下列格式建立新資料集時建立資料表:bq mk -t dataset.table。
如要進一步瞭解如何建立資料表,請參閱「建立資料表」。
Terraform
使用 google_bigquery_dataset 資源。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
建立資料集
以下範例會建立名為 mydataset 的資料集:
使用 google_bigquery_dataset 資源建立資料集時,系統會自動將資料集的存取權授予專案層級基本角色的所有成員帳戶。如果您在建立資料集後執行 terraform show 指令,資料集的 access 區塊會類似下列內容:
如要授予資料集的存取權,建議您使用其中一項 google_bigquery_iam 資源 (如下例所示),除非您打算在資料集內建立授權物件,例如授權檢視表。在這種情況下,請使用 google_bigquery_dataset_access 資源。如需範例,請參閱該說明文件。
建立資料集並授予存取權
以下範例會建立名為 mydataset 的資料集,然後使用 google_bigquery_dataset_iam_policy 資源授予存取權。
使用客戶自行管理的加密金鑰建立資料集
以下範例會建立名為 mydataset 的資料集,並使用 google_kms_crypto_key 和 google_kms_key_ring 資源,為資料集指定 Cloud Key Management Service 金鑰。您必須先啟用 Cloud Key Management Service API,才能執行這個範例。
如要在 Cloud de Confiance 專案中套用 Terraform 設定,請完成下列各節的步驟。
準備 Cloud Shell
- 啟動 Cloud Shell。
-
設定要套用 Terraform 設定的預設 Cloud de Confiance 專案。
每個專案只需執行這個指令一次,而且可以在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。
準備目錄
每個 Terraform 設定檔都必須有自己的目錄 (也稱為根模組)。
-
在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有
.tf副檔名,例如main.tf。在本教學課程中,這個檔案稱為main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您正在按照教學課程操作,可以複製每個章節或步驟中的程式碼範例。
將程式碼範例複製到新建立的
main.tf。(選用) 從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。
- 請查看並修改範例參數,以便套用至您的環境。
- 儲存變更。
-
初始化 Terraform。每個目錄只需執行一次。
terraform init
如要使用最新版 Google 供應商,請視需要加入
-upgrade選項:terraform init -upgrade
套用變更
-
查看設定,並確認 Terraform 即將建立或更新的資源符合您的預期:
terraform plan
視需要修正設定。
-
執行下列指令,並在提示中輸入
yes,套用 Terraform 設定:terraform apply
等待 Terraform 顯示「Apply complete!」訊息。
- 開啟 Cloud de Confiance 專案即可查看結果。在 Cloud de Confiance 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。
API
請呼叫 datasets.insert 方法,搭配已定義的資料集資源。
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 C# 設定操作說明進行操作。詳情請參閱 BigQuery C# API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 BigQuery Go API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Node.js 設定操作說明進行操作。詳情請參閱 BigQuery Node.js API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
PHP
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 PHP 設定操作說明進行操作。詳情請參閱 BigQuery PHP API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 BigQuery Python API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Ruby
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Ruby 設定操作說明進行操作。詳情請參閱 BigQuery Ruby API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
命名資料集
在 BigQuery 建立資料集時,每個專案的資料集名稱不得重複。資料集名稱可包含下列字元:
- 最多 1,024 個字元。
- 英文字母 (大寫或小寫)、數字和底線。
根據預設,資料集名稱會區分大小寫。mydataset 和 MyDataset 可在同一個專案中並存,除非其中一個已關閉區分大小寫功能。如需範例,請參閱「建立不區分大小寫的資料集」和「資源:資料集」。
資料集名稱不得包含空格或特殊字元,例如 -、&、@ 或 %。
隱藏的資料集
隱藏資料集的名稱開頭為底線。您可以查詢隱藏資料集中的資料表和檢視區塊,方式與查詢任何其他資料集相同。隱藏資料集有下列限制:
- Cloud de Confiance 控制台的「Explorer」面板不會顯示這些資料集。
- 不會顯示在任何
INFORMATION_SCHEMA檢視畫面中。 - 無法與連結資料集搭配使用。
- 下列授權資源無法使用這類資料集做為來源資料集:
- 不會顯示在 Knowledge Catalog。
- 無法做為建立資料集副本的來源資料集
資料集安全性
如要控管 BigQuery 資料集的存取權,請參閱「控管資料集的存取權」。如要瞭解資料加密,請參閱「靜態資料加密」。