外部資料來源簡介

本頁面將概要說明如何查詢儲存在 BigQuery 外部的資料。

總覽

外部資料來源 (也稱為聯合資料來源) 是一種您可以直接查詢的資料來源,即使資料不是儲存在 BigQuery 中也一樣可以。您不用載入或串流資料,只需建立一個參照外部資料來源的資料表即可。

BigQuery 支援直接從下列項目查詢資料:

外部資料來源的用途包括:

  • 藉由查詢外部資料來源 (BigQuery 的外部位置) 中的資料並將清理結果寫入 BigQuery 儲存空間,一次載入和清理資料。
  • 取得與其他資料表聯結但經常變更的少量資料。因為是外部資料來源,所以經常變更的資料不需要在每次更新時就重新載入。

外部資料來源限制

外部資料來源限制包括:

  • BigQuery 不保證外部資料來源的資料一致性。若基礎資料在查詢執行期間遭到變更,可能會導致非預期的行為。
  • 查詢外部資料來源時,效能不一定和在原生 BigQuery 表格中執行資料查詢一樣好。如果以查詢速度為優先要務,請將資料載入 BigQuery,而不要設定外部資料來源。就含有外部資料來源的查詢而言,效能取決於外部儲存空間類型。舉例來說,查詢儲存在 Cloud Storage 中的資料會比查詢 Google 雲端硬碟中的資料快。一般來說,外部資料來源的查詢效能應與直接從外部儲存空間讀取資料的效能相同。
  • 您無法使用 TableDataList JSON API 方法來對位於外部資料來源的資料表擷取資料。詳情請參閱 tabledata.list 相關說明。

    如要解決這項限制,您可以將查詢結果儲存在目標資料表中。然後,對結果資料表使用 TableDataList 方法。

  • 您不能執行從外部資料來源匯出資料的 BigQuery 工作。

    如要解決這項限制,您可以將查詢結果儲存在目標資料表中。然後,對結果資料表執行匯出工作。

  • 您不能在萬用字元資料表查詢中參照外部資料來源。

  • 目前,您無法查詢以 Parquet 或 ORC 格式儲存的外部資料。

  • 外部資料來源不支援將資料表分區或分群的功能。

  • 查詢外部資料來源時,系統不會將結果建立快取。每次查詢外部資料表,系統均會向您收費,即便您是發出多次相同的查詢也一樣。如果您需要對不常變更的外部資料表重複發出查詢,請考慮將查詢結果寫入永久性資料表,然後改對永久性資料表執行查詢。

  • 目前僅有下列地區與區域提供在 Cloud Bigtable 中查詢資料的服務:
    地區 區域
    us-central1

    us-central1-a

    us-central1-b

    us-central1-c

    us-central1-f

    europe-west1

    europe-west1-b

    europe-west1-c

    europe-west1-d

  • 系統限制您只能對 Cloud Bigtable 外部資料來源執行 4 個並行查詢。

位置注意事項

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

  • 將 BigQuery 資料集與外部資料來源放在相同位置。
    • 當您查詢外部資料來源 (如 Cloud Storage) 中的資料時,您要查詢的資料必須與 BigQuery 資料集位在相同的位置。舉例來說,如果您的 BigQuery 資料集位在歐盟多地區位置,則您要查詢的資料所屬的 Cloud Storage 值區也必須是歐盟的多地區值區;若您的資料集位於美國多地區位置,那麼 Cloud Storage 值區就必須是美國多地區值區。
    • 如果您的資料集是位於地區位置,則含有查詢資料的 Cloud Storage 值區就必須位於相同位置的地區值區。舉例來說,如果您的資料集位於東京地區,則您的 Cloud Storage 值區必須是位在東京的地區值區。
    • 如果您的外部資料集在 Cloud BigTable 中,則資料集必須位於美國或歐盟的多地區位置,即您的 Cloud Bigtable 資料必須位於其中一個支援的 Cloud Bigtable 位置
    • 上述的位置考量並不適用於 Google 雲端硬碟外部資料來源。
  • 擬定資料管理方案。
    • 如果您選擇的是地區儲存資源,例如 BigQuery 資料集或 Cloud Storage 值區,則請擬定資料的地理區域管理方案。

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

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

  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 一文。

外部資料來源價格

從 BigQuery 查詢外部資料來源時,系統會針對查詢讀取的位元組數向您收費。詳情請參閱查詢的價格

系統也會依據應用程式的價格規定,針對來源應用程式所儲存的資料和使用的任何資源,向您收費:

  • 如要瞭解 Cloud Storage 價格,請參閱 Cloud Storage 定價
  • 如要瞭解 Cloud Bigtable 價格,請參閱定價
  • 如要瞭解 Google 雲端硬碟價格,請參閱定價

後續步驟

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

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

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