選擇從 AlloyDB 存取 BigQuery 資料的方式

如要從 AlloyDB for PostgreSQL 存取 BigQuery 資料,可以使用 bigquery_fdw (外部資料封裝函式) 和 alloydb_sync 擴充功能。這些擴充功能共同提供整合分析和營運資料的方法:即時資料存取權 (Lakehouse 聯盟)、一次性資料作業和定期同步。本文說明從 AlloyDB 存取 BigQuery 資料的選項。

Lakehouse Federation

透過 Lakehouse Federation,您可直接從 AlloyDB for PostgreSQL 即時存取 BigQuery 資料,不必移動或複製資料。為連結這兩個系統,這個方法會使用 bigquery_fdw 擴充功能,讓您直接查詢即時資料集。由於您是直接查詢來源資料,因此可從最新的可用資料中取得洞察資訊,避開資料管道或同步間隔的延遲和維護負擔。

為提升效能,AlloyDB 會將標準篩選器和匯總作業推送至 BigQuery,只將相關的預先篩選結果串流回執行個體。詳情請參閱 AlloyDB 存取 BigQuery 即時資料總覽

用途

Lakehouse Federation 支援下列用途:

  • 即時作業分析:您需要存取 BigQuery 中最新的分析資料,以便即時做出業務決策,不必等待批次處理。
  • 混合型交易分析處理 (HTAP):您需要執行分析,將 AlloyDB 中即時的「熱」作業資料,與 BigQuery 中儲存的大量「冷」歷來資料彙整。
  • 臨時和探索性資料分析:您想立即對 BigQuery 資料執行查詢,不必建構、維護或等待複雜的「擷取、轉換和載入」(ETL) 管道。
  • 零複製架構:您希望將分析資料集中管理,同時透過 PostgreSQL 語意維持存取權,盡量降低儲存空間成本和資料控管負擔。

一次性資料表同步

一次性作業會從 BigQuery 移轉或存取資料一次,而不是持續進行。您可以透過同步處理資料表或匯入外部資料表,執行一次性作業。

同步處理資料表

您可以使用 alloydb_sync 擴充功能的 alloydb_sync.import_bq_table() 函式執行一次性同步作業。這項函式會將資料從 BigQuery 串流至本機 AlloyDB 儲存空間。

結果是 AlloyDB 叢集中完全獨立、可寫入的 PostgreSQL 資料表。由於同步處理的資料表可寫入,因此您可以對店面資料自由執行 INSERTUPDATEDELETE 作業。詳情請參閱將 BigQuery 資料同步至 AlloyDB

匯入資料表

您可以使用 bigquery_fdw 擴充功能執行一次性匯入作業。這個方法會使用 IMPORT FOREIGN SCHEMACREATE FOREIGN TABLE,將 BigQuery 資料集對應至 AlloyDB。

使用 bigquery_fdw 建立的外部資料表是遠端 BigQuery 資料的唯讀參照。如要建立資料的本機副本,可以執行 CREATE TABLE local_table AS (SELECT * FROM foreign_table) 查詢。詳情請參閱「將 BigQuery 資料匯入 AlloyDB」。

用途

一次性資料作業支援下列用途:

  • 資料充實:從 BigQuery 將預先計算的數據分析輸出內容 (例如顧客區隔群組或機器學習預測) 提取到 AlloyDB,以充實作業資料庫。
  • 低延遲應用程式服務:即時存取部分歷史資料,避免遠端查詢 BigQuery 時產生無法接受的額外負擔或延遲。
  • 獨立修改資料:取得分析資料的本機副本,以便獨立處理、修改或建立索引,不受來源資料集影響 (例如使用 AlloyDB AI 生成向量嵌入)。

元素週期表同步

定期作業會依排定的時間表重新整理資料,例如每小時或每天。您可以透過同步處理資料表或排定匯入資料表的查詢作業,設定週期性作業。

同步處理資料表

您可以使用 alloydb_sync 擴充功能的 alloydb_sync.create_bq_sync_table() 函式,建立自動重新整理時間表。這項函式會設定背景工作人員,定期從 BigQuery 提取更新資料,並重新整理本機 AlloyDB 資料表,以反映來源資料。

使用 alloydb_sync 建立的定期同步資料表是受管理且唯讀的資料表。 這可確保資料完整性,同時讓應用程式以高效能在本機查詢資料,並在讀取集區中水平擴充。詳情請參閱「將 BigQuery 資料同步至 AlloyDB」和「資料同步總覽」。

匯入資料表

您可以結合 bigquery_fdw 擴充功能和 PostgreSQL pg_cron 擴充功能,設定定期匯入作業。採用這種做法時,bigquery_fdw 會提供唯讀的外部資料表定義,而 pg_cron 會定期執行 SQL 查詢 (例如 TRUNCATEINSERT INTO ... SELECT,或重新建立資料表),以重新整理本機資料表。

與同步處理資料表不同,這個方法需要您手動管理及維護 pg_cron 排程和 SQL 重新整理指令碼。詳情請參閱「設定定期匯入資料的排程」一文。

用途

定期作業支援下列用途:

  • 高並行服務:為數千名並行使用者提供分析洞察資料。在 AlloyDB 中維護本機資料,並使用讀取集區向外擴充,即可略過 BigQuery 固有的並行連線限制。
  • 加速效能:使用 AlloyDB 資料欄引擎和本機緩衝區快取處理資料,盡可能提升查詢效能,但應用程式可容許排程更新資料。
  • 自動資料鏡像:設定排程後,即可一勞永逸地從資料倉儲為營運應用程式提供最新資料。

後續步驟