設定 Cloud Storage 目標位置

在 Datastream 中將資料串流至 Cloud Storage,即可將來源變更事件儲存在 Google Cloud 內稱為「bucket」的物件容器中。將資料複製到 Cloud Storage bucket 時,Datastream 會依物件名稱和事件時間戳記整理檔案,以便透過 Cloud Storage API 使用。

如要設定目的地,請啟用 Datastream API,並指定目標 bucket 和檔案前置字串。如果 bucket 位於其他專案,請一併授予跨專案服務帳戶權限。

啟用 API

如果目的地 Cloud Storage bucket 與 Datastream 位於相同專案,只要啟用 Datastream API 即可。

如要寫入其他專案中的 bucket,則必須將 bucket 存取權授予與 Datastream 相關聯的服務帳戶。

  1. 取得服務帳戶所用的電子郵件地址。請先在 Google Cloud 控制台首頁中找到「專案編號」,服務帳戶的電子郵件地址會是 service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com。
  2. 授予這個電子郵件地址必要權限,以便寫入目的地 bucket (通常是 roles/storage.objectViewer、roles/storage.objectCreator 和 roles/storage.legacyBucketReader 權限)。

指定目的地 bucket 和前置字元

在串流設定中提供專案名稱、bucket 名稱和選用檔案前置字元,決定資料寫入位置。

寫入行為

  • 指定串流的資料會寫入提供的 bucket 或檔案前置字元,位置如下:[bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]。
  • 資料庫來源路徑中的物件名稱,是由結構定義名稱和資料表名稱組成,兩者以底線「_」分隔。
  • 路徑中的時間戳記 (hh/mm) 是事件中繼資料的來源時間戳記。
    • 如果是補充事件,時間戳記代表從來源擷取資料的時間。如果是 Salesforce 來源,時間戳記代表記錄上次變更的時間。
    • 如果是 CDC 事件,時間戳記代表記錄在來源變更的時間。
  • 只要達到檔案大小上限或逾時上限 (以先達到者為準),系統就會輪替檔案。您可以使用 Datastream API 調整檔案大小上限和逾時上限值。
  • 此外,每當偵測到來源結構定義變更 (例如新增資料欄),檔案就會輪替。
  • 同一分鐘內,同一個路徑中可能有多個檔案。
  • 您可以依據 Cloud Storage API 使用資料。
  • 將資料串流至 Cloud Storage 時,事件大小上限為 100 MB。
  • 在目的地檔案中,來源資料欄名稱中的每個非英數字元都會替換為底線 (_)。

在某些情況下 (最常見的是串流剛開始執行時),補充和 CDC 之間會重疊,導致事件重複。Datastream 開始讀取目前的資料庫記錄檔 (在串流啟動前建立) 時,如果記錄檔包含回填作業也擷取到的事件,就會發生這種情況。這是預期行為,如有需要,您可以使用事件中繼資料排除重複事件。

後續步驟