與 Salesforce Marketing Cloud 整合
本頁說明必要設定,以便從 Salesforce Marketing Cloud (SFMC) 匯入資料,做為 Cortex Framework Data Foundation 行銷工作負載的資料來源。
SFMC 是 Salesforce 提供的數位行銷自動化平台。這項服務提供全方位的工具套件,協助商家管理及自動執行多個管道的各種行銷活動。Cortex Framework 是資料分析和 AI 引擎,可協助您瞭解結果、找出待改進之處,並調整行銷策略,進一步提升成效。
下圖說明如何透過 Cortex Framework Data Foundation 的行銷工作負載,取得 SFMC 資料:

設定檔
config.json 檔案會設定連線至資料來源所需的設定,以便從各種工作負載移轉資料。這個檔案包含 SFMC 的下列參數:
   "marketing": {
        "deploySFMC": true,
        "SFMC": {
            "deployCDC": true,
            "fileTransferBucket": "",
            "datasets": {
                "cdc": "",
                "raw": "",
                "reporting": "REPORTING_SFMC"
            }
        }
    }
下表說明各個行銷參數的值:
| 參數 | 意義 | 預設值 | 說明 | 
| marketing.deploySFMC | 部署 SFMC | true | 執行 SFMC 資料來源的部署作業。 | 
| marketing.SFMC.deployCDC | 為 SFMC 部署 CDC 指令碼 | true | 產生 Salesforce Marketing Cloud (SFMC) CDC 處理指令碼,在 Cloud Composer 中以 DAG 形式執行。 | 
| marketing.SFMC.fileTransferBucket | 含有資料擷取檔案的 Bucket | - | 儲存 Salesforce Marketing Cloud (SFMC) Automation Studio 資料擷取檔案的值區。 | 
| marketing.SFMC.datasets.cdc | SFMC 的 CDC 資料集 | Salesforce Marketing Cloud (SFMC) 的 CDC 資料集。 | |
| marketing.SFMC.datasets.raw | SFMC 原始資料集 | Salesforce Marketing Cloud (SFMC) 的原始資料集。 | |
| marketing.SFMC.datasets.reporting | Salesforce Marketing Cloud 報表資料集 | "REPORTING_SFMC" | Salesforce Marketing Cloud (SFMC) 的報表資料集。 | 
資料模型
本節將使用實體關係圖 (ERD) 說明 Salesforce Marketing Cloud (SFMC) 資料模型。
基本檢視畫面
這些是 ERD 中的藍色物件,也是 CDC 資料表上的檢視畫面,除了部分資料欄名稱別名外,沒有任何轉換。請參閱src/marketing/src/SFMC/src/reporting/ddls中的指令碼。
報表資料檢視
這些是 ERD 中的綠色物件,也是包含匯總指標的報表檢視畫面。請參閱src/marketing/src/SFMC/src/reporting/ddls中的指令碼。
使用 Automation Studio 擷取資料
SFMC Automation Studio 可讓 SFMC 消費者將 SFMC 資料匯出至各種儲存系統。 Cortex Framework Data Foundation 會在 Cloud Storage 值區中,尋找使用 Automation Studio 建立的一組檔案。您也必須在此程序中使用 SFMC Email Studio。
如要設定資料擷取和匯出程序,請按照下列步驟操作:
- 設定 Cloud Storage bucket。這個 bucket 會儲存從 SFMC 匯出的檔案。將 bucket 命名為「config
parameter」。marketing.SFMC.fileTransferBucket請參閱 Salesforce 說明文件中的操作說明。
- 建立資料擴充功能。針對要擷取資料的每個實體,在 Email Studio 中建立資料擴充功能。這是為了從 SFMC 內部資料庫識別資料來源。 - 列出實體中定義的所有 src/SFMC/config/table_schema欄位。如要自訂這項設定,擷取更多或更少的欄位,請確保欄位清單與這些步驟以及表格結構定義檔案中的欄位清單一致。例如:
 - Entity: unsubscribe Fields: AccountID OYBAccountID JobID ListID BatchID SubscriberID SubscriberKey EventDate IsUnique Domain
- 列出實體中定義的所有 
- 建立 SQL 查詢活動。為每個實體建立 SQL 查詢活動。這項活動會連結至先前建立的對應資料擴充功能。 如需這個步驟的說明,請參閱 Salesforce 說明文件 : - 定義包含所有相關欄位的 SQL 查詢。查詢需要選取與上一步驟中資料延伸模組定義的實體相關的所有欄位。
- 選取正確的資料擴充功能做為目標。
- 選取「覆寫」做為資料動作。
- 請參閱以下查詢範例:
 - SELECT AccountID, OYBAccountID, JobID, ListID, BatchID, SubscriberID, SubscriberKey, EventDate, IsUnique, Domain FROM _Unsubscribe
- 建立資料擷取活動。如要為每個實體建立「資料擷取活動」,請參閱 Salesforce 說明文件 。這項活動會從 Salesforce 資料擴充功能取得資料,並擷取至 CSV 檔案。這個步驟的注意事項: - 使用正確的命名模式。格式應符合設定中定義的模式。舉例來說,如果是 Unsubscribe實體,檔案名稱可以是unsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv。
- 將「擷取類型」設為 Data Extension Extract。
- 選取「Has column Headers」(有資料欄標題) 和「Text Qualified」(文字符合資格) 選項。
 
- 使用正確的命名模式。格式應符合設定中定義的模式。舉例來說,如果是 
- 建立檔案轉換活動,將格式從 UTF-16 轉換為 UTF-8。根據預設,Salesforce 會以 UTF-16 格式匯出 CSV 檔案。在這個步驟中,您會將檔案轉換為 UTF-8 格式。針對每個實體,建立另一個 Data Extract Activity,用於檔案轉換。這個步驟的注意事項: - 使用與資料擷取活動上一個步驟相同的檔案名稱模式。
- 將「擷取類型」設為 File Convert
- 在 Convert To的下拉式選單中選取UTF8。
 
- 建立檔案傳輸活動。為每個實體建立檔案轉移活動。這些活動會將擷取的 CSV 檔案從 Salesforce Safehouse 移至 Cloud Storage 值區。這個步驟的注意事項: - 使用先前步驟中使用的相同檔案名稱模式。
- 選取先前在程序中設定的 Cloud Storage bucket 做為目的地。
 
- 排定執行時間。完成所有活動後,請設定自動排程來執行活動。 
資料更新間隔和延遲
一般來說,Cortex Framework 資料來源的資料更新頻率取決於上游連線允許的頻率,以及 DAG 的執行頻率。調整 DAG 執行頻率,以配合上游頻率、資源限制和業務需求。
使用 SFMC Automation Studio 時,資料更新延遲時間取決於設定資料匯出時的排程延遲時間。
Cloud Composer 連線權限
在 Cloud Composer 中建立下列連線。詳情請參閱「管理 Airflow 連線」說明文件。
| 連線名稱 | 目的 | 
| sfmc_raw_dataflow | 針對 SFMC 擷取檔案 > BigQueryRaw 資料集。 | 
| sfmc_cdc_bq | 原始資料集 > CDC 資料集移轉。 | 
| sfmc_reporting_bq | 針對 CDC 資料集 > 報表資料集轉移。 | 
Cloud Composer 服務帳戶權限
Cloud Composer 中使用的服務帳戶 (如sfmc_raw_dataflow連線中設定) 需要 Dataflow 相關權限。請參閱 Dataflow 說明文件中的操作說明
內容攝入設定
透過檔案 src/SFMC/config/ingestion_settings.yaml  中的設定,控制 Source to Raw 和 Raw to CDC 資料管道。本節說明各個資料管道的參數。
來源到原始資料表
本節的項目可控管如何使用從 Automation Studio 擷取的檔案。每個項目都對應一個 SFMC 實體。 根據這項設定,Cortex Framework 會建立 Airflow DAG,執行 Dataflow 管道,將資料從匯出檔案載入原始資料集中的 BigQuery 資料表。
目錄 src/SFMC/config/table_schema 包含從 SFMC 擷取的每個實體的結構定義檔案。每個檔案都會說明如何讀取從 Automaton Studio 擷取的 CSV 檔案,以便順利將這些檔案載入 BigQuery 原始資料集。
每個結構定義檔案都包含三個資料欄:
- SourceField:CSV 檔案的欄位名稱。
- TargetField:這個實體在原始資料表中的資料欄名稱。
- DataType:每個原始資料表欄位的資料類型。
下列參數可控制每個項目的 Source to Raw 設定:
| 參數 | 說明 | 
| base_table | 原始資料表名稱,其中載入 SFMC 實體擷取的資料。 | 
| load_frequency | 這個實體的 DAG 執行頻率,用於從擷取的檔案載入資料。如要進一步瞭解可能的值,請參閱 Airflow 說明文件。 | 
| file_pattern | 從 Automation Studio 匯出至 Cloud Storage bucket 的資料表檔案模式。如果您為解壓縮的檔案選擇的名稱與建議名稱不同,請變更此設定。 | 
| partition_details | 為考量效能,原始資料表的分區方式。詳情請參閱「資料表分區」。 | 
| cluster_details | 選用:如要基於效能考量,將原始資料表叢集化。詳情請參閱「叢集設定」。 | 
原始資料表到 CDC 資料表
本節說明哪些項目會控管資料從原始資料表移至 CDC 資料表的方式。每個項目都對應一個原始資料表。
下列參數可控制每個項目的 Raw to CDC 設定:
| 參數 | 說明 | 
| base_table | CDC 資料集中的資料表,用於儲存 CDC 轉換後的原始資料。 | 
| load_frequency | 這個實體的 DAG 執行頻率,用於填入 CDC 資料表。如要進一步瞭解可能的值,請參閱 Airflow 說明文件。 | 
| raw_table | 原始資料集中的來源資料表。 | 
| row_identifiers | 構成這個資料表專屬記錄的資料欄 (以半形逗號分隔)。 | 
| partition_details | 如何根據效能考量將 CDC 資料表分區。詳情請參閱「資料表分區」。 | 
| cluster_details | 選用:如要根據成效考量將這個表格叢集化,詳情請參閱「叢集設定」。 | 
報表設定
您可以使用報表設定檔 (src/SFMC/config/reporting_settings.yaml),設定及控管 Cortex Framework 為 SFMC 最終報表層產生資料的方式。這個檔案會控管報表層 BigQuery 物件 (資料表、檢視區塊、函式或預存程序) 的產生方式。詳情請參閱「自訂報表設定檔」。
後續步驟
- 如要進一步瞭解其他資料來源和工作負載,請參閱「資料來源和工作負載」一文。
- 如要進一步瞭解在正式環境中部署的步驟,請參閱 Cortex Framework Data Foundation 部署作業的必要條件。
