常見問題

總覽

在這個主題中,我們將為您解答 Datastream 的常見問題。此常見問題與下列項目相關:

  • DataStream 與變更資料擷取 (CDC) 的一般問題
  • MySQL 變更資料擷取 (CDC)
  • Oracle 變更資料擷取 (CDC)
  • DataStream 的常見用途
  • Datastream 如何與 Google Cloud 資料服務整合
  • DataStream 預覽與 Google Analytics (分析) 版本的相關資訊
  • DataStream 的行為與限制
  • 安全性與連線
  • 處理資料串流檔案
  • 監控資料串流
  • 定價
  • DataStream 的其他相關資訊

DataStream 與變更資料擷取 (CDC) 的一般問題

問題 回應
什麼是資料串流?

DataStream 是一款無伺服器且易於變更的資料擷取 (CDC) 與複製服務,能讓您以穩定可靠的方式,跨異質資料庫和應用程式同步資料串流。Datastream 支援將資料從 Oracle 和 MySQL 資料庫的資料串流至 Cloud Storage。

這項服務能簡化與 Dataflow 範本的整合,讓您能在 BigQuery 中獲得具體化檢視表、將其資料庫複製到 Cloud SQL 或 Cloud Spanner 以進行資料庫同步處理,或是透過 Cloud Storage 直接利用串流處理事件導向架構,才能使用 Android 手機或平板電腦尋找另一部裝置。如要搭配轉換到 BigQuery 來建立資料管道,DataStream 也會與 Cloud Data Fusion 整合。

什麼是 CDC?

CDC 是一種資料整合方法,能夠減少系統資源整合並分析資料。這個方法僅用來從資料來源擷取最新的變更 (更新、插入或刪除),通常是透過讀取來源來保留內部交易完整性的變更記錄。

CDC 能有效降低新資料載入作業與資料倉儲空間之來源的影響,而且無須透過載入大量載入或即時串流的方式,將資料變更為目的地。

在 CDC 中,有許多用途都能從發生資料的持續性存取中獲取價值,像是數據分析、跨分散式系統同步處理資料,以及事件導向架構等。

什麼是候補廣告? 除了持續的變更之外,DataStream 還使用補充作業從來源提取所有現有資料,然後將資料串流至目的地。因此,目的地會「填入」內含來源的所有歷來資料。
DataStream 資料串流方法為何? 資料串流會以下列其中一種方式,將資料從一個來源串流至目的地:
  • CDC:即時從來源擷取正在進行的變更。
  • 補充:提供資料表中已存在的歷史快照。
什麼是變更串流? 變更串流是指資料串流發送到目的地 (例如 Cloud Storage 以進行下游) 的事件序列。寫入目的地串流的資料寫入目的地是一組檔案,包含特定資料庫表在一段時間內的變更記錄事件。這些事件代表從來源中刪除資料表的插入、更新和刪除作業。您可以針對以事件驅動架構的服務 (例如 Dataflow),針對目的地使用的事件處理及處理事件。
什麼是實質化檢視表?

具體化檢視表是目的地中來源資料表最新 1 到 1 的最新表示法。這類檢視表是 Oracle 資料庫表格,而這個資料表的變更會持續複製到 BigQuery 資料表。因此,使用 Oracle 資料表串流的變更,BigQuery 資料表隨時保持在最新狀態。

具體化檢視表會耗用各項變更事件,並透過更新內容更新具體化檢視表。DataStream 會使用 Dataflow 整合範本,從目的地提取變更串流事件,並據此更新目標資料表,藉此將 BigQuery、Cloud SQL 和 Cloud Spanner 的具體具體化轉換為目的地。

DataStream 需要來源的代理程式嗎? 您不需要在來源安裝代理程式。Datastream 使用現有介面 (例如 Oracle LogMiner) 移出資料。
對資料串流在實際工作環境資料庫使用效能的影響有何影響?

CDC 可在新資料載入目的地資料儲存庫和資料倉儲時,對來源影響的效率有效。此外,CDC 還能夠採用對資料進行大量載入或即時串流資料變更的流程,取代大量載入以及順暢的批次視窗。

此外,資料串流會限制並行補充工作的數量,並將控制中的物件做為補充作業和背回後端,藉此將初始補充作業所造成的影響降至最低。

您可以將記錄檔從來源複製到 Google Cloud 嗎? 否。Datastream 會直接從資料庫伺服器查詢記錄,只有指定的資料表會寫入目的地。
DataStream 也能移轉歷來資料嗎? 可以,根據預設,DataStream 會從您指定的來源資料庫即時擷取所有歷來資料資料,並合併至 CDC 串流。DataStream 可讓您靈活選擇從來源中的部分或所有資料庫資料表取得歷史資料。此外,設定串流時,您可以選擇停用過往候補廣告。
DataStream 支援的資料列大小上限為何? 資料串流目前最多只能包含 3 MB 的資料列。
資料串流保證一定會排序嗎? 資料串流不保證一定會排序。針對每個事件提供額外的中繼資料,可用於確保目的地值區中最終一致性。最終一致性、頻率和頻率等參數,通常能在 1 小時內完成。
DataStream 保證只要傳送一次即可? 不行,資料串流至少必須傳送一次。DataStream 寫入每個事件的額外中繼資料,可用於移除重複的資料。
Datastream 如何處理結構定義中的來源變更? Datastream 會定期從來源擷取結構定義。不過,在結構定義擷取期間,系統可能無法偵測到部分結構定義變更,這可能會導致資料不一致。我們計劃即時擷取資料定義語言事件,以便解決目前這種限制。
您是否使用加密的資料庫? 會。
DataStream 是否可串流來自特定來源的資料表和資料欄? 可以,DataStream 可以讓您針對資料表和結構定義指定及排除清單,只將串流中的資料傳輸至目的地。對於納入的表格,您可以排除資料表的某些資料欄,進一步微調要以串流方式將資料傳入目的地。不過,系統無法複製已建立的檢視表。
如何將串流移至其他專案或地區?
  1. 在與現有串流相同的新地區或專案中建立串流,但不勾選 [補充歷來資料] 核取方塊。
  2. 開始直播
  3. 您建立的串流的狀態為 RUNNING後,請暫停現有串流
  4. (選用) 如要修改新串流,請勾選 [補充歷來資料] 核取方塊。未來加入串流的資料表中的現有資料,將會從來源串流處理目的地。

MySQL 變更資料擷取 (CDC)

問題 回應
DataStream 如何將資料移出 MySQL? Datastream 使用 MySQL 的二進位檔記錄,從 MySQL 擷取變更事件。

Oracle 變更資料擷取 (CDC)

問題 回應
DataStream 如何將資料移出 Oracle? Datastream 使用 Oracle LogMiner 從 Oracle 的重做記錄擷取資料。
DataStream 需要 Oracle 中的 GoldGate 授權嗎? 否,Datastream 使用 Oracle LogMiner 從資料庫的重做記錄讀取資料。
停止支援 Oracle LogMiner 會發生什麼情況? 日後推出的版本將支援 Oracle。Oracle LogMiner 目前全面開放所有 Oracle 版本。
Datastream 是否支援 Oracle 多用戶群架構,特別是容器資料庫 (CDB) 和可插入資料庫 (PDB)? DataStream 目前不支援 CDB 和 PDB,但我們目前正在規劃藍圖。

用途

問題 回應
使用資料串流的常見用途有哪些?

DataStream 屬於美國疾病管制與預防中心 (CDC) 與複製服務,這代表在各種不同情況下,可以持續使用串流資料變更的長期用途。資料串流最常見的用途如下:

  1. 數據分析:整合 DataStream 與 Dataflow 範本,即可將資料載入 BigQuery,方便您取得 BigQuery 中的具體具體資料檢視表。您可以使用此持續更新的資料來建構資料的最新資訊主頁。例如,這不僅可用於監控系統,還能取得關於業務狀態的最新深入分析資料。
  2. 資料庫複製和同步處理情境:將資料串流與 Dataflow 範本整合,以便將資料載入至 Cloud SQL 或 Cloud Spanner,取得這些資料庫中最新資料的具體資料檢視。您可以使用從來源資料庫持續更新的資料,取得從來源到目的地的低延遲資料庫遷移資料,或是用於來源混合式雲端設定 (其中來源和目的地)位於不同的代管環境。
  3. 事件驅動架構:以微服務為基礎的架構必須使用仰賴資料中心,讓工作持續獲得事件導向的中央資料中心。只要持續將事件資料寫入目的地 (例如 Cloud Storage),您就能依據這些目的地的事件資料建構事件導向架構。

整合

問題 回應
DataStream 如何與 Google Cloud 資料服務整合?

DataStream 可將來自不同來源的 CDC 資料複製到各種 Google Cloud 服務,藉此強化及強化 Google Cloud 資料套件。DataStream 與這些服務完美整合,能融入較大 Google Cloud 生態系統。

DataStream 已與下列資料服務整合:

  • Dataflow:Dataflow 透過 Dataflow 範本整合 Dataflow。這些範本可從 Cloud Storage 讀取資料,並將資料載入至 BigQuery、PostgreSQL 適用的 Cloud SQL 或 Cloud Spanner。這些範本可協助持續針對目的地中的複製的來源資料表進行具體化檢視表。您可以在 Dataflow UI 中使用這些範本,以便為使用資料流而產生的檔案,以輕鬆的方式直接進行處理。
  • Cloud Data Fusion:CloudStream Data 可透過 Cloud Data Fusion 的複製功能啟用 Oracle 連接器,藉此與 Cloud Data Fusion 整合。您可以建立資料公開「Oracle」來源的複製 Oracle 來源,以公開透明的方式建立資料管道。這個管道包含資料串流,將資料串流至 Cloud Data Fusion 中的 Oracle 資料豐富轉換。
  • Cloud Storage:CloudStream 會以寫入串流目的地的方式寫入 Cloud Storage,以整合於 Cloud Storage。
  • Cloud SQL、Cloud Spanner 和 BigQuery:資料串流已與這些目的地資料庫整合。只要使用 Dataflow 範本,就能持續更新資料庫中的具體化檢視表。

預覽與評估

問題 回應
資料串流的預覽和 Google Analytics (分析) 版本何時會推出? DataStream 現已推出預覽版。我們預計於今年稍晚正式推出 Google Analytics (分析) 版本。
DataStream 支援哪些來源和目的地來支援預覽?
  • 來源資料串流支援 Oracle 和 MySQL 來源的串流資料,包括雲端託管和自行管理。如需進一步瞭解來源支援,請參閱行為與限制
  • 目的地資料串流支援在串流至 Cloud Storage 的檔案中寫入資料變更。接著,您可以使用 Dataflow 範本,將這些資料從 Cloud Storage 轉移到 BigQuery、Cloud Spanner 和 PostgreSQL 適用的 Cloud SQL。
Data Stream 支援哪些來源和目的地? DataStream 支援的來源和目的地均與 Google Analytics (分析) 預覽用。
DataStream 可以處理加密的資料庫嗎? 會。
DataStream 的地區可用性為何?

如要查看提供資料串流的地區清單,請參閱 IP 允許的清單和地區

如果是 Google Analytics (分析),則資料串流服務適用於所有地區。

行為與限制

問題 回應
DataStream 支援哪些來源版本?

MySQL 的資料串流支援 5.6、5.7 和 8.0。支援任何與 MySQL 相容的資料庫,包括但不限於:

  • 自行託管資料庫,內部部署或任何雲端服務供應商皆可
  • MySQL 適用的 Cloud SQL
  • AWS RDS MySQL 和 Aurora MySQL
  • MariaDB
  • 阿里巴巴 Cloud PolarDB
  • MySQL 適用的 Percona 伺服器

針對 Oracle,Datastream 支援 11g 版本、12c 版本 2、18c 和 19c (非 SCAN 設定、CDB/PDB 或自治資料庫)。支援任何與 Oracle 相容的資料庫,包括但不限於:

  • 自行託管資料庫,內部部署或任何雲端服務供應商皆可
  • AWS RDS
  • Oracle Cloud
DataStream 如何從來源擷取資料?

針對 MySQL,Datastream 會處理 MySQL 二進位檔記錄,以擷取變更事件。

Oracle 會使用 LogMiner 和補充記錄設定,從 Oracle 的重做記錄擷取資料。

您可以將記錄檔從來源直接複製到 Google Cloud 嗎? Datastream 不會複製記錄檔的完整內容,但會直接從資料庫伺服器查詢記錄檔,而且只將指定資料表的變更複製到目的地。
如果是 Oracle 來源,Datastream 是否需要 GoldGate 授權? Datastream 不需要 GoldGate 授權,因為使用 Oracle LogMiner 從資料庫的 redo 記錄讀取資料。
較新版本不支援 Oracle LogMiner 會發生什麼情況? 針對 Oracle 20 及更高版本中的 LogMiner 支援已移除,因此在這兩個版本之前,任何 Oracle 來源皆可繼續使用 LogMiner 與 DataStream。
DataStream 可處理的資料有哪些限制?

MySQL 來源的一般限制、MySQL 來源的限制和限制。

一般限制包括:

  • 總處理量:上限為 5 MBPS 的列數上限 (上限為 3 MB)。
  • 複製作業不支援部分資料定義語言 (DDL) 作業,包括:
    • 從資料表中間捨棄資料欄。這可能造成資料差異,因為這些值與錯誤的欄位相關聯。
    • 變更資料欄的資料類型。這可能會導致資料無法正確對應至正確的資料流整合類型,導致資料損毀。
    • 系統會忽略串聯式刪除。
    • 系統會忽略表格截斷的內容。

MySQL 限制包含不支援無主金鑰且大小超過 100 GB 的資料表的補充作業。

Oracle 限制包括:

  • 資料欄支援:
    • 不支援某些資料類型,並以 NULL 值複製。這些資料類型包括抽象資料類型 (ADT)、ANYDATA、集合 (VARRAY)、BLOB/CLOB/LOB/NCLOBLONGUDTUROWIDXMLType 的問題。
  • 不支援的 Oracle 功能:
    • 外部資料表
    • 資料庫連結 (dblinks)
    • 僅提供索引表 (IOT)
    • Oracle Label Security (OLS) 不會複製。
  • 大小超過 100 GB 的資料表不支援補充作業。

每個由資料串流產生的事件都會包含哪些資料? 每個產生的事件 (用於插入、更新和刪除) 包含來源的完整資料,以及每個資料欄的資料類型和值。每個事件也包含事件中繼資料,可用於建立訂單並確保傳送一次。
資料串流保證一定會排序嗎? 雖然資料串流不保證可進行排序,但會為各個事件提供額外的中繼資料。這個中繼資料可用於確保目的地的最終一致性。視來源來源、變更頻率和頻率和其他參數而定,最終一致性通常可在 1 小時內完成。
DataStream 保證只要傳送一次即可? DataStream 至少會傳送一次。您可以使用資料串流寫入每個事件的額外中繼資料來清除重複資料。
Datastream 如何表示資料來源,供下游處理使用?

DataStream 對所有資料來源進行資料類型標準化,可簡化下游資料的處理作業。Datastream 使用原始來源資料類型 (例如 MySQL NUMERIC 類型或 Oracle NUMBER 類型),並將其正規化為 DataStream 統一類型

統一類型代表所有可能的來源類型無損的超集合,而標準化表示各來源都能輕易地處理及查詢不同來源的資料。

當下游系統需要知道資料類型時,可透過對資料串流結構定義註冊的 API 呼叫來完成。這個登錄檔會儲存所有資料來源的最新版本化架構。由於來源資料庫的結構定義變更,結構定義登錄檔 API 也可讓您使用更快速的下游結構定義偏移。

Datastream 處理結構 (結構定義) 如何變更? DataStream 會持續追蹤來源資料結構的變更。結構定義儲存在 DataStream 的結構定義登錄檔中,且每個事件都會參照產生時的結構定義。這樣一來,Datastream 或其他下游程序就能即時追蹤結構定義變更,並根據變更進行調整,確保所有資料都會串流及載入至目的地。

安全性與連線

問題 回應
DataStream 是否保護機密資料的安全? DataStream 支援多個安全的私人連線設定,可在資料從來源串流至目的地時保護傳輸中的資料。複製資料時,會根據預設加密資料,利用 Cloud Storage 的安全性控管機制。任何由 Datastream 進行緩衝的資料都會經過加密。
哪些可用的連線選項可讓您連接來源的資料串流?

您可以設定三種連線方法

  • IP allowlist:這個方法可列出來源的 Datastream 區域 IP 位址,為您提供公開連線。當您建立串流時,Datastream 會在使用者介面中顯示這些 IP 位址。
  • 轉送安全殼層 (SSH) 通道:這個方法能利用客戶設定的 SSH 防禦主機,以及列出地區 IP 位址,透過公開網路提供安全連線。
  • 透過虛擬私人雲端對等互連進行私人連線:這種方法可透過 Google Cloud 內部網路連線至 Google Cloud 託管的資料庫,或是透過 DataStream 的私人網路以及貴機構 Google 之間的虛擬私人雲端對等互連,利用現有的 VPN 或互連網路 Cloud 虛擬私人雲端。
如何限制資料串流處理機密資料?

DataStream 可讓您指定要從串流來源串流的特定資料元素 (結構定義、表格和欄),以及您要排除在串流外排除的元素。

資料庫記錄可能會包含遭串流定義排除之元素的變更資料。由於系統無法在來源中篩選這些元素,DataStream 會讀取,但不會忽略任何與元素相關聯的資料。

處理資料串流檔案

問題 回應
如何在 Cloud Storage 中建立檔案? Datastream 會為每個資料表建立資料夾。在每個資料夾中,DataStream 會在使用者定義的檔案大小或時間達到指定門檻時輪替檔案 (或建立新檔案)。資料串流則會在偵測到結構定義變更時輪替檔案。檔案名稱是由唯一的架構鍵 (根據結構定義的雜湊碼) 所組成,後面再加上檔案中的第一個事件的時間戳記。為了安全起見,這類檔案名稱不適合用來讀取或理解。
如果 Cloud Storage 中的資料未排序,那麼如何在將物件載入目的地之前,先重新排序事件? 每個事件均含有數個中繼資料欄位,專門用來識別 Oracle 重做記錄中的資料列。具體來說:
  • rs_id,實際上是由三個值 (例如 0x0073c9.000a4e4c.01d0) 組成。 rs_id 專門識別重做記錄中的記錄。
  • ssn:用於重做記錄檔的記錄時間太長。因此,Oracle LogMiner 會將記錄分成多個資料列。
如要排序事件,請先依 rs_id 的各個部分排序,再依 ssn 排序。
如果為同一個時間戳記建立多個檔案,這些檔案應該按照什麼順序來處理? 由於我們無法保證排序檔案,所以無法保證檔案的處理方式,是使用特定時間戳記的所有檔案取得所有事件,然後使用上述方法套用排序。
主要更新的處理方式為何?事件前後是否有發生? row_id 中繼資料欄位可用於識別正在變更的資料列。為確保資料完整性,請依據 row_id 欄位的關聯值來整合資料,而不是依賴主鍵。

監控資料串流

問題 回應
如何得知已將所有歷來資料複製到目標 Cloud Storage 值區? Datastream 提供記錄檔中目前狀態的相關資訊。建立記錄項目,以表示資料表完成補充作業的時間。

定價

問題 回應
DataStream 的定價方式為何?

資料串流費用是根據串流來源至目的地的資料量 (GB) 計費。

如要進一步瞭解 DataStream 的價格資訊,請參閱定價一文。

如何計算資料大小? 費用是根據從來源串流到目的地的原始 (未壓縮) 資料大小計算。串流資料只會收取串流中目的地的資料費用。
如果您搭配 Dataflow 或 Cloud Data Fusion 使用 Datastream,那麼您需要支付多少費用? 每項服務都會分開計費,並計費。

其他資訊

問題 回應
如果我在使用「資料流」時有其他問題或問題,該怎麼辦? 如果您在使用 DataStream 時遇到問題,Google 支援小組可以提供支援服務。此外,疑難排解指南會針對使用 DataStream 時可能遇到的常見問題。