在 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 相關聯的服務帳戶。
- 取得服務帳戶所用的電子郵件地址。請先在 Google Cloud 控制台首頁中找到「專案編號」,服務帳戶的電子郵件地址會是
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com。 - 授予這個電子郵件地址必要權限,以便寫入目的地 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 開始讀取目前的資料庫記錄檔 (在串流啟動前建立) 時,如果記錄檔包含回填作業也擷取到的事件,就會發生這種情況。這是預期行為,如有需要,您可以使用事件中繼資料排除重複事件。