本頁說明如何設定 Datastream,將資料寫入 Cloud Storage 值區。
Cloud Storage 是在 Google Cloud中儲存資料的服務。資料會以物件形式儲存在名為「bucket」的容器中。將資料串流至 Cloud Storage 時,Datastream 會依物件名稱和時間戳記整理資料。接著,您可以使用 Cloud Storage API 存取資料。 詳情請參閱「關於 Cloud Storage bucket」。
啟用 API
如果目的地 Cloud Storage bucket 與 Datastream 位於同一專案,啟用 Datastream API 即可。
如要將資料寫入其他專案中的值區,必須先將權限授予和 Datastream 相關聯的服務帳戶,讓帳戶能夠存取該值區。
- 取得服務帳戶所用的電子郵件地址。請先在 Google Cloud 控制台首頁中找到「專案編號」,服務帳戶的電子郵件地址為
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com
。 - 請將必要權限授予這個電子郵件地址,以便將資料寫入目標值區 (通常為
roles/storage.objectViewer
、roles/storage.objectCreator
和roles/storage.legacyBucketReader
權限)。
指定目的地 bucket 和前置字串
在串流設定中提供專案名稱、值區名稱和檔案前置字串 (選填),決定資料的寫入位置。
寫入行為
- 指定串流的資料會寫入提供的 bucket 或檔案前置字串,路徑如下:
[bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]
。 - 資料庫來源路徑中的物件名稱是結構定義名稱,後面接著資料表名稱 (以底線「_」分隔)。
- 路徑中的時間戳記 (hh/mm) 是來自事件中繼資料的來源時間戳記。
- 如果是回填事件,時間戳記代表回填工作開始的時間 (通常是串流啟動時,或是手動觸發回填時)。
- 如果是 CDC 事件,時間戳記代表記錄在來源中變更的時間。
- 只要達到檔案大小上限或逾時上限 (以先到者為準),系統就會輪替檔案。您可以使用 Datastream API 調整檔案大小上限和逾時時間上限值。
- 此外,系統每次偵測到來源結構定義變更 (例如新增資料欄) 時,就會輪替檔案。
- 同一路徑中,同一分鐘可能會有多個檔案。
- 您可以根據 Cloud Storage API 存取資料。
- 將資料串流至 Cloud Storage 時,事件大小上限為 100 MB。
在某些情況下 (最常見於串流首次開始執行時),回填和 CDC 之間會發生重疊,導致事件重複。發生這種情況時,Datastream 會從目前的資料庫記錄檔 (在啟動串流前建立) 開始讀取,而這個記錄檔包含一些回填作業也會擷取的事件。這是預期行為,如有必要,可以使用事件中繼資料消除重複事件。