BigQuery Omni 簡介

有了 BigQuery Omni,您就能使用 BigLake 資料表,針對儲存在 Amazon Simple Storage Service (Amazon S3) 或 Azure Blob 儲存體中的資料執行 BigQuery 分析。

許多機構會將資料儲存在多個公有雲中。通常這些資料最後會遭到孤立,因為很難從所有資料中取得洞察。您希望能使用多雲資料工具分析資料,這類工具價格實惠、速度快,且不會產生分散式資料治理的額外成本。透過使用 BigQuery Omni,我們可透過統一介面減少這些摩擦。

如要針對外部資料執行 BigQuery 分析,您必須先連線至 Amazon S3Blob 儲存體。如果您想查詢外部資料,就必須建立參照 Amazon S3 或 Blob Storage 資料的 BigLake 資料表

BigQuery Omni 工具

您可以使用下列 BigQuery Omni 工具,針對外部資料執行 BigQuery 數據分析:

下表概略說明每個跨雲工具的主要功能:

跨雲端聯結 跨雲端具體化檢視表 使用 SELECT 進行跨雲端轉移 使用 LOAD 進行跨雲端轉移
建議用法 查詢一次性使用的外部資料,您可以與本機資料表結合,或在兩個不同的 BigQuery Omni 區域之間結合資料,例如 AWS 和 Azure Blob 儲存體區域。如果資料量不大,且快取不是主要需求,請使用跨雲彙整 設定重複或排定的查詢,以便持續以漸增方式轉移外部資料,其中快取是關鍵需求。例如維護資訊主頁 查詢外部資料 (一次性使用),從 BigQuery Omni 區域查詢 BigQuery 區域,其中需要手動控制 (例如快取和查詢最佳化),且您使用跨雲彙整或跨雲具象化檢視畫面不支援的複雜查詢 使用排程查詢來移動原始資料,不必篩選即可原封不動地遷移大型資料集
支援在移動資料前進行篩選 可以,某些查詢運算子適用限制。詳情請參閱「跨雲彙整限制」一文 可以,特定查詢運算子 (例如匯總函式和 UNION 運算子) 適用限制 可以,查詢運算子不受限制
傳輸大小限制 每筆轉移作業 60 GB (每個遠端區域的子查詢會產生一筆轉移作業) 不限 每筆轉移作業 60 GB (每個遠端區域的子查詢會產生一筆轉移作業) 不限
資料移轉壓縮 線路壓縮 資料欄 線路壓縮 線路壓縮
快取 不支援 支援具備具體化檢視表的快取啟用表 不支援 不支援
輸出定價 AWS 輸出和跨洲費用 AWS 輸出和跨洲費用 AWS 輸出和跨洲費用 AWS 輸出和跨洲費用
資料傳輸的運算用量 使用來源 AWS 或 Azure Blob 儲存體區域中的空白 (預留或隨選) 未使用 使用來源 AWS 或 Azure Blob 儲存體區域中的空白 (預留或隨選) 未使用
篩選器的運算用量 使用來源 AWS 或 Azure Blob 儲存體區域中的空白 (預留或隨選) 使用來源 AWS 或 Azure Blob Storage 區域 (預留或隨選) 中的空格,用於計算本機具體化檢視畫面和中繼資料 使用來源 AWS 或 Azure Blob 儲存體區域中的空白 (預留或隨選) 未使用
增量移轉作業 不支援 支援非匯總具體化檢視表 不支援 不支援

您也可以考慮使用下列替代方案,將資料從 Amazon Simple Storage Service (Amazon S3) 或 Azure Blob 儲存體轉移至 Google Cloud:

  • Storage 移轉服務:在 Google Cloud 和 Amazon Simple Storage Service (Amazon S3) 或 Azure Blob 儲存體之間,轉移物件和檔案儲存空間中的資料。
  • BigQuery 資料移轉服務:設定自動將資料移轉至 BigQuery 的排程和代管方式。支援各種來源,適合用於資料遷移。BigQuery 資料移轉服務不支援篩選。

架構

BigQuery 的架構將運算和儲存空間分開,讓 BigQuery 可視需要擴充,處理非常大量的工作負載。BigQuery Omni 會在其他雲端環境中執行 BigQuery 查詢引擎,藉此擴充這項架構。因此,您不必將資料實際移至 BigQuery 儲存空間。處理作業會在資料所在位置進行。

BigQuery Omni 架構

查詢結果可透過安全連線傳回至 Google Cloud ,例如顯示在 Google Cloud 控制台中。或者,您也可以直接將結果寫入 Amazon S3 值區或 Blob 儲存體。在這種情況下,查詢結果不會跨雲端移動。

BigQuery Omni 會使用標準 AWS IAM 角色或 Azure Active Directory 使用者來存取訂閱中的資料。您可以將讀取或寫入權限委派給 BigQuery Omni,並隨時撤銷存取權。

查詢資料時的資料流程

下圖說明資料在 Google Cloud 與 AWS 或 Azure 之間的移動方式,適用於下列查詢:

  • SELECT 陳述式
  • CREATE EXTERNAL TABLE 陳述式
在 Google Cloud 和 AWS 或 Azure 之間移動資料,以便執行查詢。
圖 1:資料在 Google Cloud 與 AWS 或 Azure 之間的移動,用於查詢。
  1. BigQuery 控制層會透過Google Cloud 主控台、bq 指令列工具、API 方法或用戶端程式庫,接收您提交的查詢工作。
  2. BigQuery 控制層會將要處理的查詢工作傳送至 AWS 或 Azure 上的 BigQuery 資料層。
  3. BigQuery 資料層會透過 VPN 連線接收控制層的查詢。
  4. BigQuery 資料層會從 Amazon S3 值區或 Blob 儲存體讀取資料表資料。
  5. BigQuery 資料層會針對資料表資料執行查詢工作。資料表資料的處理作業會在指定的 AWS 或 Azure 區域中執行。
  6. 查詢結果會透過 VPN 連線從資料層傳輸至控制層。
  7. BigQuery 控制平面會接收查詢工作結果,並在收到查詢工作後顯示給您。這類資料最多會儲存 24 小時。
  8. 系統會傳回查詢結果。

詳情請參閱「查詢 Amazon S3 資料」和「Blob 儲存體資料」。

匯出資料時的資料流

下圖說明在 EXPORT DATA 陳述式期間,資料如何在 Google Cloud 和 AWS 或 Azure 之間移動。

匯出查詢時,在 Google Cloud 和 AWS 或 Azure 之間移動資料。
圖 2:匯出查詢時,資料在 Google Cloud 與 AWS 或 Azure 之間的移動情形。
  1. BigQuery 控制層會透過 Google Cloud 主控台、bq 指令列工具、API 方法或用戶端程式庫,接收您傳送的匯出查詢工作。查詢包含 Amazon S3 儲存貯體或 Blob 儲存體中查詢結果的目標路徑。
  2. BigQuery 控制層會將匯出查詢工作傳送至 BigQuery 資料層 (在 AWS 或 Azure 上) 進行處理。
  3. BigQuery 資料層會透過 VPN 連線接收控制層的匯出查詢。
  4. BigQuery 資料層會從 Amazon S3 值區或 Blob 儲存體讀取資料表資料。
  5. BigQuery 資料層會針對資料表資料執行查詢工作。資料表資料的處理作業會在指定的 AWS 或 Azure 區域中執行。
  6. BigQuery 會將查詢結果寫入 Amazon S3 值區或 Blob 儲存體中的指定目的地路徑。

詳情請參閱「將查詢結果匯出至 Amazon S3」和 Blob 儲存體

優點

效能:資料不會跨雲端複製,且查詢會在資料所在的區域執行,因此您可以更快取得洞察資料。

費用。資料不會移動,因此可節省傳出資料的費用。由於查詢會在 Google 管理的叢集中執行,因此 AWS 或 Azure 帳戶不會產生與 BigQuery Omni 分析相關的額外費用。您只需根據 BigQuery 定價模式支付執行查詢的費用。

安全性與資料管理。您可以管理 AWS 或 Azure 訂閱中的資料。您不需要將原始資料從公開雲端移出或複製。所有運算作業都會在 BigQuery 多租戶服務中執行,該服務會在與資料相同的地區內執行。

無伺服器架構。與其他 BigQuery 服務一樣,BigQuery Omni 也是無伺服器產品。Google 會部署及管理執行 BigQuery Omni 的叢集。您不需要佈建任何資源或管理任何叢集。

易於管理。BigQuery Omni 透過 Google Cloud提供統一的管理介面。BigQuery Omni 可使用您現有的 Google Cloud 帳戶和 BigQuery 專案。您可以在 Google Cloud 主控台中編寫 GoogleSQL 查詢,查詢 AWS 或 Azure 中的資料,並查看 Google Cloud 主控台顯示的結果。

跨雲端轉移:您可以將資料從 S3 值區和 Blob Storage 載入至標準 BigQuery 資料表。詳情請參閱「將 Amazon S3 資料移轉至 BigQuery」和「將 Blob 儲存體資料移轉至 BigQuery」。

為提升效能而快取中繼資料

您可以使用快取的結構描述,改善參照 Amazon S3 資料的 BigLake 資料表查詢效能。這在處理大量檔案或資料已進行 Apache Hive 分割時特別實用。

BigQuery 會使用 CMETA 做為分散式中繼資料系統,有效率地處理大型資料表。CMETA 會在資料欄和區塊層級提供精細的中繼資料,可透過系統表存取。這套系統可改善資料存取和處理方式,進而提升查詢效能。為了進一步加快大型資料表的查詢效能,BigQuery 會維護中繼資料快取。CMETA 重新整理工作會讓這個快取保持最新狀態。

中繼資料包括檔案名稱、區隔資訊,以及檔案的實體中繼資料,例如資料列計數。您可以選擇是否在資料表上啟用中繼資料快取功能。含有大量檔案和 Apache Hive 分區篩選器的查詢,最能從中繼資料快取作業中受益。

如果您未啟用中繼資料快取功能,資料表上的查詢必須讀取外部資料來源,才能取得物件中繼資料。讀取這類資料會增加查詢延遲時間,從外部資料來源列出數百萬個檔案可能需要幾分鐘的時間。啟用中繼資料快取功能後,查詢作業就能避免列出外部資料來源中的檔案,並且能更快速地分割及刪除檔案。

有兩個屬性可控制這項功能:

  • 最大過時時間:指定查詢使用快取中繼資料的時間。
  • 「中繼資料快取模式」會指定中繼資料的收集方式。

啟用中繼資料快取功能後,您可以指定中繼資料過時的最大間隔,以便針對資料表執行作業。舉例來說,如果您指定 1 小時的間隔,則如果表格在過去 1 小時內已重新整理,針對該表格的作業會使用快取中繼資料。如果快取的中繼資料較舊,作業會改為從 Amazon S3 擷取中繼資料。您可以指定 30 分鐘至 7 天的過時間隔。

為 BigLake 或物件資料表啟用中繼資料快取功能時,BigQuery 會觸發中繼資料產生重建工作。您可以選擇自動或手動重新整理快取:

  • 自動重新整理功能會按照系統定義的間隔時間 (通常為 30 到 60 分鐘) 重新整理快取。如果 Amazon S3 中的檔案會在隨機間隔下新增、刪除或修改,自動重新整理快取是一個不錯的做法。如果您需要控制重新整理的時間點 (例如在擷取-轉換-載入工作結束時觸發重新整理),請使用手動重新整理。
  • 如要手動重新整理,您可以執行 BQ.REFRESH_EXTERNAL_METADATA_CACHE 系統程序,按照符合需求的排程重新整理中繼資料快取。如果 Amazon S3 中的檔案會在已知的間隔時間內新增、刪除或修改 (例如管線的輸出內容),手動重新整理快取會是個不錯的做法。

    如果您同時發出多個手動重新整理要求,只有其中一個會成功。

如果未重新整理,中繼資料快取會在 7 天後過期。

手動和自動快取重新整理作業都會以 INTERACTIVE 查詢優先順序執行。

使用 BACKGROUND 保留項目

如果您選擇使用自動重新整理功能,建議您建立預留,然後為執行中繼資料快取重新整理工作的專案,建立使用 BACKGROUND 工作類型的指派。使用 BACKGROUND 保留功能時,重新整理工作會使用專用資源集區,避免重新整理工作與使用者查詢競爭,並避免在沒有足夠資源可供使用時,工作可能會失敗。

雖然使用共用運算單元集區不會產生額外費用,但使用 BACKGROUND 預留功能可分配專用資源集區,提供更穩定的效能,並提高 BigQuery 中重新整理作業的可靠性和整體查詢效率。

設定過時間隔和中繼資料快取模式值前,請先考量兩者之間的互動方式。請見以下範例:

  • 如果您手動重新整理資料表的中繼資料快取,並將失效間隔設為 2 天,則必須每 2 天或更短時間執行 BQ.REFRESH_EXTERNAL_METADATA_CACHE 系統程序,才能讓針對資料表的作業使用快取的中繼資料。
  • 如果您會自動重新整理資料表的結構描述快取,並將失效間隔設為 30 分鐘,如果結構描述快取重新整理作業需要的時間超過一般 30 到 60 分鐘的時間範圍,則針對資料表執行的部分作業可能會從 Amazon S3 讀取資料。

如要查看中繼資料重新整理工作相關資訊,請查詢 INFORMATION_SCHEMA.JOBS 檢視區塊,如以下範例所示:

SELECT *
FROM `region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT`
WHERE job_id LIKE '%metadata_cache_refresh%'
AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 6 HOUR)
ORDER BY start_time DESC
LIMIT 10;

詳情請參閱「中繼資料快取」。

啟用快取功能的資料表,以及具體化檢視畫面

您可以使用 Amazon Simple Storage Service (Amazon S3) 元資料快取啟用表格的實體檢視畫面,在查詢儲存在 Amazon S3 中的結構化資料時,提升效能和效率。這些具體化檢視表的運作方式與 BigQuery 代管儲存資料表的具體化檢視表相同,包括自動重新整理智慧調校的優點。

如要在支援的 BigQuery 區域中使用具體化檢視表中的 Amazon S3 資料進行彙整,請建立具體化檢視表的複本。您只能在已授權的具體化檢視表上建立具體化檢視表副本。

限制

除了BigLake 資料表的限制之外,BigQuery Omni 也適用下列限制,包括以 Amazon S3 和 Blob 儲存體資料為基礎的 BigLake 資料表:

  • Standard 和 Enterprise Plus 版本不支援使用 BigQuery Omni 區域中的資料。如要進一步瞭解版本,請參閱「BigQuery 版本簡介」。
  • 對於以 Amazon S3 和 Blob 儲存空間資料為基礎的 BigLake 資料表,OBJECT_PRIVILEGESSTREAMING_TIMELINE_BY_*TABLE_SNAPSHOTSTABLE_STORAGETABLE_CONSTRAINTSKEY_COLUMN_USAGECONSTRAINT_COLUMN_USAGEPARTITIONS INFORMATION_SCHEMA 檢視畫面均無法使用。
  • Blob 儲存體不支援具體化檢視表。
  • 不支援 JavaScript UDF。
  • 不支援下列 SQL 陳述式:

  • 查詢和讀取目的地暫時性資料表時,請遵守下列限制:

    • 不支援使用 SELECT 陳述式查詢目的地暫存資料表。
  • 排定查詢僅支援透過 API 或 CLI 方法。查詢的「目的地資料表」選項已停用。只允許 EXPORT DATA 查詢。

  • BigQuery Storage API 不適用於 BigQuery Omni 區域

  • 如果查詢使用 ORDER BY 子句,且結果大小超過 256 MB,則查詢會失敗。如要解決這個問題,請減少結果大小,或是從查詢中移除 ORDER BY 子句。如要進一步瞭解 BigQuery Omni 配額,請參閱「配額與限制」。

  • 不支援將客戶管理的加密金鑰 (CMEK) 與資料集和外部資料表搭配使用。

定價

如要瞭解 BigQuery Omni 的價格和限時優惠,請參閱 BigQuery Omni 定價

配額與限制

如要瞭解 BigQuery Omni 配額,請參閱「配額與限制」。

如果查詢結果大於 20 GiB,建議您將結果匯出至 Amazon S3Blob Storage。如要瞭解 BigQuery Connection API 的配額,請參閱 BigQuery Connection API

位置

BigQuery Omni 會在與要查詢的資料表所在資料集相同的位置處理查詢。資料集建立後,就無法變更位置。您的資料會儲存在 AWS 或 Azure 帳戶中。BigQuery Omni 區域支援企業版預留和隨選運算 (資料分析) 定價。如要進一步瞭解版本,請參閱「BigQuery 版本簡介」。

地區說明 地區名稱 同地 BigQuery 區域
AWS
AWS - 美國東部 (北維吉尼亞州) aws-us-east-1 us-east4
AWS - 美國西部 (奧勒岡州) aws-us-west-2 us-west1
AWS - 亞太地區 (首爾) aws-ap-northeast-2 asia-northeast3
AWS - 亞太地區 (雪梨) aws-ap-southeast-2 australia-southeast1
AWS - 歐洲 (愛爾蘭) aws-eu-west-1 europe-west1
AWS - 歐洲 (法蘭克福) aws-eu-central-1 europe-west3
Azure
Azure - 美國東部 2 azure-eastus2 us-east4

後續步驟