本頁說明如何設定變更資料擷取 (CDC),將資料從自行管理的 PostgreSQL 資料庫串流至支援的目的地,例如 BigQuery 或 Cloud Storage。
在資料庫中啟用邏輯複製功能
- 在資料庫中設定 - wal_level參數,方法是在- postgresql.conf檔案中新增- wal_level=logical。
- 重新啟動伺服器。 
建立發布作業和複製運算單元
- 以超級使用者身分登入 PostgreSQL 控制台。 
- 建立出版品。建議您只針對要複製的資料表建立發布作業。這樣一來,Datastream 就只會讀取相關資料,並降低資料庫和 Datastream 的負載: - CREATE PUBLICATION PUBLICATION_NAME FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2; - 更改下列內容: - PUBLICATION_NAME:出版品名稱。在 Datastream 串流建立精靈中建立串流時,您需要提供這個名稱。
- SCHEMA:包含資料表的結構定義名稱。
- TABLE:要複製的資料表名稱。
 - 您可以為結構中的所有資料表建立發布作業。這個方法可讓您複製指定結構定義清單中資料表的變更,包括日後建立的資料表: - CREATE PUBLICATION PUBLICATION_NAME FOR TABLES IN SCHEMA SCHEMA1, SCHEMA2; - 您也可以為資料庫中的所有資料表建立發布作業。請注意,這種做法會增加來源資料庫和 Datastream 的負載: - CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES; 
- 輸入下列 SQL 指令,建立複製運算單元: - SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');- 更改下列內容: - REPLICATION_SLOT_NAME:複製運算單元的名稱。在 Datastream 串流建立精靈中建立串流時,您需要提供這個名稱。
 
建立 Datastream 使用者
- 輸入下列 SQL 指令,建立 Datastream 使用者: - CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD'; - 更改下列內容: - USER_NAME:要建立的 Datastream 使用者名稱。
- USER_PASSWORD:您要建立的 Datastream 使用者登入密碼。
 
- 將下列權限授予您建立的使用者: - ALTER ROLE USER_NAME WITH REPLICATION; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME; GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME; ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME GRANT SELECT ON TABLES TO USER_NAME; - 更改下列內容: - USER_NAME:要授予權限的使用者。
- SCHEMA_NAME:要授予權限的結構定義名稱。
 
後續步驟
- 進一步瞭解 Datastream 如何搭配 PostgreSQL 來源運作。