從 Cloud Storage 載入資料簡介

本頁面提供將資料從 Cloud Storage 載入 BigQuery 的總覽。

總覽

將資料從 Cloud Storage 載入 BigQuery 時,您的資料可以採用以下任何格式:

  • 逗號分隔值檔案 (CSV)
  • JSON (以換行符號分隔)
  • Avro
  • Parquet
  • ORC
  • Datastore 匯出檔案
  • Cloud Firestore 匯出檔案

BigQuery 資料移轉服務支援從 Cloud Storage 至 BigQuery 的週期性載入作業。

BigQuery 支援從以下任何一種 Cloud Storage 儲存空間級別載入資料:

  • 多地區
  • 地區
  • Nearline
  • Coldline

位置注意事項

選擇資料的位置時,請考慮下列事項:

  • 將多個 Cloud Storage 值區並置於相同位置,以便載入資料。
    • 如果您的 BigQuery 資料集位於多地區位置,含有載入資料的 Cloud Storage 值區必須位於相同位置的單一地區或多地區值區。舉例來說,如果您的 BigQuery 資料集位於歐洲,Cloud Storage 值區就必須位於歐洲的單一地區值區或多地區值區。
    • 如果您的資料集位於單一地區位置,您的 Cloud Storage 值區就必須是相同位置的單一地區值區。舉例來說,如果您的資料集位於東京地區,您的 Cloud Storage 值區就必須是位於東京的單一地區值區。
    • 例外狀況:如果您的資料集位於美國的多地區位置,您可以從任何單一地區或多地區位置的 Cloud Storage 值區載入資料。
  • 擬定資料管理方案。
    • 如果您選擇的是地區性的儲存空間資源 (例如 BigQuery 資料集或 Cloud Storage 值區),請擬定資料異地備援管理方案。

    如要進一步瞭解 Cloud Storage 位置,請參閱 Cloud Storage 說明文件中的值區位置一文。

    在不同位置之間移動 BigQuery 資料

    資料集建立之後,即無法更改位置,但您可以建立資料集副本。您無法在不同位置之間移動資料集,但您可以手動移動 (重新建立) 資料集

    複製資料集

    如要查看複製資料集的步驟 (包括跨地區),請參閱複製資料集一文。

    移動資料集

    如要手動將資料集移至其他位置,請按照下列流程操作:

    1. 從 BigQuery 資料表匯出資料至單一地區或多地區 Cloud Storage 值區,而且這個值區必須跟資料集位於相同位置。舉例來說,如果您的資料集位在歐盟的多地區位置,則應將資料匯出至歐盟的單一地區或多地區值區。

      從 BigQuery 中匯出資料並不需要付費,但是在 Cloud Storage 儲存匯出的資料則會產生費用。BigQuery 匯出作業會受到匯出工作的相關限制。

    2. 從您的 Cloud Storage 值區中,將資料複製或移動至新位置的單一地區或多地區值區。舉例來說,如果您要將資料從美國多地區位置移到東京的單一地區位置,則必須把資料移轉到東京的地區值區。如要瞭解如何轉移 Cloud Storage 物件,請參閱 Cloud Storage 說明文件中的重新命名、複製及移動物件一文。

      請注意,在不同地區之間轉移資料,會導致 Cloud Storage 產生網路輸出費用

    3. 將資料轉移至新位置的 Cloud Storage 值區後,請在新位置建立新的 BigQuery 資料集,然後將資料從 Cloud Storage 值區載入 BigQuery。

      將資料載入 BigQuery 無須支付費用,但將資料儲存於 Cloud Storage 則須支付費用,直到您刪除資料或值區為止。載入資料之後,將資料儲存至 BigQuery 亦須支付相關費用。將資料載入 BigQuery 時會受到載入工作的相關限制。

    關於如何使用 Cloud Storage 來儲存及移動大型資料集,請參閱搭配大數據使用 Cloud Storage 一文。

    限制

    將資料從 Cloud Storage 值區載入 BigQuery 時有下列限制:

    • 如果將資料集的位置設定為 US 以外的值,則單一地區或多地區 Cloud Storage 值區必須與資料集位於相同的地區。
    • BigQuery 不保證外部資料來源的資料一致性。如果基礎資料在查詢執行期間遭到變更,可能會導致非預期的行為。

    另外,Cloud Storage 來源資料的格式可能會造成其他限制。詳情請參閱:

    擷取 Cloud Storage URI

    如要從 Cloud Storage 資料來源載入資料,您必須提供 Cloud Storage URI。

    Cloud Storage URI 包含您的值區名稱和物件 (檔名)。例如,如果 Cloud Storage 值區的名稱為 mybucket,且資料檔案的名稱為 myfile.csv,則值區 URI 會是 gs://mybucket/myfile.csv。如果資料分成多個檔案,您可以在 URI 中使用萬用字元。詳情請參閱 Cloud Storage 要求 URI 相關說明。

    BigQuery 不支援來源 URI 在初始雙斜線後還有多個連續斜線。Cloud Storage 物件名稱可以包含多個連續的斜線 (「/」) 字元,但 BigQuery 會將多個連續斜線轉換為一個斜線。舉例來說,下列來源 URI 在 Cloud Storage 中有效,但在 BigQuery 中則無效:gs://bucket/my//object//name

    如何擷取 Cloud Storage URI:

    1. 開啟 Cloud Storage 主控台。

      Cloud Storage 主控台

    2. 瀏覽至含有來源資料的物件 (檔案) 位置。

    3. 在 Cloud Storage 主控台的頂端,您會看到物件路徑。如要撰寫 URI,請將 gs://bucket/file 替換為適當路徑,例如 gs://mybucket/myfile.json。「bucket」是 Cloud Storage 值區名稱,而「file」是含有資料的物件 (檔案) 名稱。

    所需權限

    將資料載入 BigQuery 時,您必須具備相關權限,以便執行載入工作以及將資料載入新的或現有的 BigQuery 資料表和分區。如要載入 Cloud Storage 中的資料,您也要有權限存取包含資料的值區。

    BigQuery 權限

    您至少要具備下列權限,才能將資料載入 BigQuery。不管您要將資料載入或附加到資料表或分區,還是覆寫資料表或分區資料,都需要這些權限。

    • bigquery.tables.create
    • bigquery.tables.updateData
    • bigquery.jobs.create

    以下是同時具有 bigquery.tables.createbigquery.tables.updateData 權限的預先定義 Cloud IAM 角色:

    • bigquery.dataEditor
    • bigquery.dataOwner
    • bigquery.admin

    以下是具有 bigquery.jobs.create 權限的預先定義 Cloud IAM 角色:

    • bigquery.user
    • bigquery.jobUser
    • bigquery.admin

    此外,當具備 bigquery.datasets.create 權限的使用者建立資料集時,會獲得該資料集的 bigquery.dataOwner 存取權。bigquery.dataOwner 存取權可讓使用者透過載入工作建立及更新資料集中的資料表。

    如要進一步瞭解 BigQuery 中的 Cloud IAM 角色和權限,請參閱存取權控管

    Cloud Storage 權限

    您必須具備 storage.objects.get 權限,才能從 Cloud Storage 值區載入資料。如要使用 URI 萬用字元,您還必須具備 storage.objects.list 權限。

    可以授予預先定義的 Cloud IAM 角色 storage.objectViewer,以提供 storage.objects.getstorage.objects.list 權限。

    Cloud Storage 存取權和儲存空間記錄

    Cloud Storage 讓您能以 CSV 格式存取和儲存記錄檔,這種格式可直接匯入至 BigQuery 以供分析。如要進一步瞭解如何載入和分析 Cloud Storage 記錄,請參閱 Cloud Storage 說明文件中的存取記錄和儲存空間記錄一文。

    Cloud Storage URI 的萬用字元支援

    如果您的 Cloud Storage 資料分成多個共用通用基礎名稱的檔案,那麼當您載入資料時,可以在 URI 中使用萬用字元。

    如要新增萬用字元至 Cloud Storage URI,請為基礎名稱加上星號 (*)。例如,如果您有兩個名為 fed-sample000001.csvfed-sample000002.csv 的檔案,則值區 URI 會是 gs://mybucket/fed-sample*。這個萬用字元 URI 之後可以在主控台、傳統網頁版 UI、CLI、API 或用戶端程式庫中使用。

    值區內的物件 (檔案名稱) 只能使用一個萬用字元。萬用字元可以出現在物件名稱內或物件名稱的末端。系統不支援為值區名稱加上萬用字元。

    Google Datastore 匯出檔案只能指定一個 URI,而且必須以 .backup_info.export_metadata 結尾。

    下列情況「不」允許使用 * 萬用字元:

    • 建立外部資料表,並將其連結至 Datastore 或 Cloud Firestore 匯出檔案
    • 從 Cloud Storage 載入 Datastore 或 Cloud Firestore 匯出資料

    後續步驟

    如要瞭解如何將資料從 Cloud Storage 載入至 BigQuery,請參閱資料格式的說明文件:

    如要瞭解如何將資料從 Cloud Storage 定期載入至 BigQuery,請參閱 Cloud Storage 移轉作業一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
需要協助嗎?請前往我們的支援網頁