在API中啟用來源連線的變更資料擷取
在Adobe Experience Platform來源中使用變更資料擷取,讓您的來源和目的地系統近乎即時保持同步。
Experience Platform目前支援 增量資料副本,此副本會定期將來源系統新建立或更新後的記錄傳輸至擷取的資料集。 此方法依賴 時間戳記資料行 來追蹤變更,但不會偵測到刪除,而可能導致資料在一段時間內不一致。
相對地,變更資料擷取會擷取並近乎即時地套用插入、更新及刪除。 此完整的變更追蹤功能可確保資料集與來源系統保持完全一致,並提供完整的變更記錄,超出增量副本所支援的範圍。 不過,刪除作業需要特別考量,因為它們會影響使用目標資料集的所有應用程式。
Experience Platform中的變更資料擷取需要 Data Mirror 搭配以模型為基礎的結構描述 (也稱為關聯結構描述)。 您可以透過兩種方式將變更資料提供給Data Mirror:
- 手動變更追蹤:針對未原生產生變更資料擷取記錄的來源,在您的資料集中包含
_change_request_type
欄 - 原始變更資料擷取匯出:使用直接從來源系統匯出的變更資料擷取記錄
兩種方法都需要使用具有模型架構的Data Mirror來保留關係並強制實施唯一性。
Data Mirror搭配模型架構
Data Mirror使用基於模型的結構描述來擴充變更資料擷取及啟用進階資料庫同步功能。 如需Data Mirror的概觀,請參閱Data Mirror概觀。
基於模型的結構描述會擴充Experience Platform,強制執行主索引鍵的唯一性、追蹤列層級的變更,以及定義結構描述層級的關係。 透過變更資料擷取,它們直接在資料湖中套用插入、更新及刪除,減少擷取、轉換、載入(ETL)或手動調解的需求。
如需詳細資訊,請參閱模型架構概觀。
變更資料擷取的模型架構需求
在使用模型架構進行變更資料擷取之前,請設定下列識別碼:
- 以主索引鍵唯一識別每個記錄。
- 使用版本識別碼依序套用更新。
- 對於時間序列結構描述,請新增時間戳記識別碼。
控制欄處理 control-column-handling
使用_change_request_type
欄指定每個資料列的處理方式:
u
— upsert (如果欄不存在則為預設)d
— 刪除
此欄僅會在擷取期間評估,不會儲存或對應至XDM欄位。
工作流程 workflow
若要啟用以模型為基礎之綱要的變更資料擷取:
_change_request_type
欄。 對於具有原生CDC功能的資料庫來源,變更操作會透過CDC匯出設定自動處理。 根據預設,檔案式擷取會假設更新插入作業 — 如果您想要在檔案上傳中指定刪除作業,則只需新增此欄。提供檔案型來源的變更資料 file-based-sources
針對檔案型來源(Amazon S3、Azure Blob、Google Cloud Storage和SFTP),請在您的檔案中包含_change_request_type
欄。
使用上面_change_request_type
控制項資料行處理區段中定義的值。
_change_request_type
(更新插入)或u
(刪除)的d
資料行,以驗證變更追蹤功能。 例如,Adobe Journey Optimizer的 協調行銷活動 功能需要此欄才能啟用「協調行銷活動」切換功能,並允許選取資料集來進行目標定位。 應用程式特定的驗證需求可能有所不同。請遵循下列來源專屬步驟。
雲端儲存空間來源 cloud-storage-sources
請依照下列步驟啟用雲端儲存空間來源的變更資料擷取:
-
為您的來源建立基礎連線:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 來源 Base Connection指南 Amazon S3 建立 Amazon S3 基本連線 Azure Blob 建立 Azure Blob 基本連線 Google Cloud Storage 建立 Google Cloud Storage 基本連線 SFTP 建立 SFTP 基本連線
所有雲端儲存空間來源都使用上述_change_request_type
檔案型來源一節中所述的相同欄格式。
資料庫來源 database-sources
Azure Databricks
若要搭配Azure Databricks使用變更資料擷取,您必須在來源資料表中啟用 變更資料摘要,並在Experience Platform中使用模型架構設定Data Mirror。
使用下列命令來啟用表格上的變更資料摘要:
新資料表
若要將變更資料摘要套用至新的資料表,您必須在delta.enableChangeDataFeed
命令中將資料表屬性TRUE
設定為CREATE TABLE
。
CREATE TABLE student (id INT, name STRING, age INT) TBLPROPERTIES (delta.enableChangeDataFeed = true)
現有的資料表
若要將變更資料摘要套用至現有的資料表,您必須在delta.enableChangeDataFeed
命令中將資料表屬性TRUE
設定為ALTER TABLE
。
ALTER TABLE myDeltaTable SET TBLPROPERTIES (delta.enableChangeDataFeed = true)
所有新資料表
若要將變更資料摘要套用至所有新表格,您必須將預設屬性設定為TRUE
。
set spark.databricks.delta.properties.defaults.enableChangeDataFeed = true;
如需詳細資訊,請閱讀啟用變更資料摘要Azure Databricks 的指南。
請閱讀下列檔案,以瞭解如何為Azure Databricks來源連線啟用變更資料擷取的步驟:
- 建立 Azure Databricks 基本連線。
- 為資料庫建立來源連線。
Data Landing Zone
若要搭配Data Landing Zone使用變更資料擷取,您必須在來源資料表中啟用 變更資料摘要,並在Experience Platform中使用模型架構設定Data Mirror。
請閱讀下列檔案,以瞭解如何為Data Landing Zone來源連線啟用變更資料擷取的步驟:
Google BigQuery
若要搭配Google BigQuery使用變更資料擷取,您必須在來源表格中啟用變更歷史記錄,並在Experience Platform中以model-based schema設定Data Mirror。
若要在您的Google BigQuery來源連線中啟用變更記錄,請瀏覽至Google BigQuery主控台中的Google Cloud頁面,並將enable_change_history
設定為TRUE
。 此屬性可啟用資料表變更記錄。
如需詳細資訊,請閱讀 GoogleSQL中資料定義語言陳述式的指南。
請閱讀下列檔案,以瞭解如何為Google BigQuery來源連線啟用變更資料擷取的步驟:
- 建立 Google BigQuery 基本連線。
- 為資料庫建立來源連線。
Snowflake
若要搭配Snowflake使用變更資料擷取,您必須在來源資料表中啟用 變更追蹤,並在Experience Platform中透過model-based schema設定Data Mirror。
在Snowflake中,使用ALTER TABLE
並設定CHANGE_TRACKING
為TRUE
來啟用變更追蹤。
ALTER TABLE mytable SET CHANGE_TRACKING = TRUE
如需詳細資訊,請閱讀使用changes子句Snowflake 的指南。
請閱讀下列檔案,以瞭解如何為Snowflake來源連線啟用變更資料擷取的步驟:
- 建立 Snowflake 基本連線。
- 為資料庫建立來源連線。