將 Salesforce Marketing Cloud 資料載入 BigQuery

您可以使用 Salesforce Marketing Cloud 連接器的 BigQuery 資料移轉服務,將資料從 Salesforce Marketing Cloud 載入 BigQuery。您可以使用 BigQuery 資料移轉服務,排定週期性移轉工作,將 Salesforce Marketing Cloud 的最新資料新增至 BigQuery。

限制

Salesforce Marketing Cloud 資料移轉作業有下列限制:

  • 單一移轉設定在特定時間只能支援一項資料移轉作業。如果第二項資料移轉作業排定在第一項移轉作業完成前執行,則只有第一項資料移轉作業會完成,而與第一項移轉作業重疊的其他資料移轉作業則會略過。
    • 為避免單一移轉設定略過移轉作業,建議您設定「重複頻率」,增加大型資料移轉作業之間的時間長度。
  • 如要透過網路連結進行資料移轉,請務必先定義靜態 IP 位址,再建立網路連結。
  • Salesforce Marketing Cloud 移轉作業不支援包含二進位或大型 blob 欄位的資料擴充。
  • 如果設定的網路連結和虛擬機器 (VM) 執行個體位於不同區域,從 Salesforce Marketing Cloud 移轉資料時,可能會發生跨區域資料移動。

事前準備

以下各節說明建立 Salesforce Marketing Cloud 資料移轉作業前,必須採取的步驟。

Salesforce Marketing Cloud 事前準備

建立 Salesforce Marketing Cloud 資料移轉作業時,您必須具備下列資訊:

參數名稱 說明
subdomain API 子網域,位於基礎 URI。舉例來說,在驗證基本 URI https://SUBDOMAIN.auth.marketingcloudapis.com/ 中,SUBDOMAIN 是子網域值。
instance API 伺服器執行個體,登入 Salesforce Marketing Cloud 應用程式後,即可在網址中找到。執行個體值包含「s」和後續的數值。舉例來說,在網址 `https://mc.s4.exacttarget.com/` 中,執行個體值為 `s4`。詳情請參閱「尋找 Marketing Cloud 帳戶的堆疊位置」。
clientId API 整合項目的用戶端 ID。依序前往「Setup」>「Apps」>「Installed Packages」,然後按一下套件名稱。用戶端 ID 會列在「Components」下方。
clientSecret 應用程式整合項目的用戶端密鑰。依序前往「Setup」>「Apps」>「Installed Packages」,然後按一下套件名稱。用戶端密鑰會列在「Components」(元件) 下方。
Salesforce Marketing Cloud objects to transfer 列出要納入這項移轉作業的 Salesforce Marketing Cloud 物件。您可以在設定移轉設定時選取物件。如需支援的物件清單,請參閱「支援的資料表」。

為 Salesforce Marketing Cloud 移轉作業設定 IP 許可清單

您必須設定 Google Cloud 環境和 Salesforce Marketing Cloud 帳戶,將特定 IP 位址加入資料移轉許可清單。這可確保 Salesforce Marketing Cloud 只接受來自受信任靜態 IP 位址的連線。

如要這麼做,您必須先設定 Google Cloud 網路,使用靜態 IP 位址:

  1. 在虛擬私有雲網路中,設定公開網路位址轉譯 (NAT),並指定靜態 IP 位址。CloudNAT 必須與這項資料移轉作業的目的地資料集位於相同區域。
  2. 在同一個虛擬私有雲網路中設定網路連結。BigQuery 資料移轉服務會使用這項資源存取私人服務。

接著,您必須將靜態 IP 位址新增至 Salesforce Marketing Cloud 的許可清單。新增 IP 位址範圍時,請使用Google Cloud Public NAT 的靜態 IP 位址,做為 IP 範圍的起始和結束 IP 位址。

設定 IP 範圍後,您可以在設定移轉設定時,於「Network attachment」(網路連結) 欄位中選取網路連結,藉此指定靜態 IP。

資料擴充物件規定

如要在資料移轉作業中加入資料擴充物件,物件必須符合下列規定:

  • 資料擴充物件的名稱必須包含 DataExtensionObject 前置字元,後面接著物件名稱。例如:DataExtensionObject_DATA_EXTENSION_NAME。
  • 您必須為資料擴充物件啟用 Read 範圍。
  • 資料擴充物件的檔案位置必須具有 Read 和 Write 範圍。

安裝及設定 Salesforce Marketing Cloud API 整合套件

您必須在 Salesforce Marketing Cloud 中安裝伺服器對伺服器 API 整合套件。您可以在 Salesforce Marketing Cloud 中安裝新的已安裝套件,並指定元件「API 整合」>「伺服器對伺服器」。詳情請參閱「建立及安裝套件」。

安裝 API 整合套件後,您必須新增下列權限範圍:

  • 存取權:Offline Access
  • 電子郵件:Read
  • OTT:Read
  • 推送:Read
  • 簡訊:Read
  • 網頁:Read
  • 文件和圖片:Read
  • 已儲存的內容:Read
  • 歷程:Read
  • 目標對象:Read
  • 清單和訂閱者:Read
  • 日期擴充功能:Read
  • 檔案位置 Read
  • 追蹤事件:Read
  • 回呼:Read
  • 訂閱項目:Read
  • 廣告活動:Read
  • 素材資源:Read
  • 帳戶:Read
  • OTT 頻道:Read
  • 使用者:Read

詳情請參閱「API 整合權限範圍」。

BigQuery 事前準備

必要的 BigQuery 角色

如要取得建立 BigQuery 資料移轉服務資料移轉作業所需的權限,請要求管理員授予您專案的 BigQuery 管理員 (roles/bigquery.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備建立 BigQuery 資料移轉服務資料移轉作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

您必須具備下列權限,才能建立 BigQuery 資料移轉服務資料移轉作業:

  • BigQuery 資料移轉服務權限:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • BigQuery 權限:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

詳情請參閱「授予 bigquery.admin 存取權」。

設定 Salesforce Marketing Cloud 資料移轉作業

如要將 Salesforce Marketing Cloud 資料新增至 BigQuery,請使用下列任一選項設定移轉設定:

控制台

  1. 前往 Google Cloud 控制台的「資料移轉」頁面。

    前往「資料移轉」

  2. 按一下「 建立移轉作業」。

  3. 在「Source type」(來源類型) 部分,「Source」(來源) 請選取「Salesforce Marketing Cloud」。

  4. 在「Data source details」(資料來源詳細資料) 部分執行下列操作:

  5. 在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集。

  6. 在「Transfer config name」(轉移設定名稱) 部分,「Display name」(顯示名稱) 請輸入資料移轉作業名稱。

  7. 在「Schedule options」(排程選項) 部分執行下列操作:

    • 在「Repeat frequency」(重複頻率) 清單選取選項,指定這項資料移轉作業的執行頻率。如要指定自訂重複頻率,請選取「Custom」(自訂)。如果選取「On-demand」(隨選),這項移轉作業會在您手動觸發後執行。
    • 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
  8. 選用:在「Notification options」(通知選項) 專區,執行下列操作:

    • 如要啟用電子郵件通知,請點選「Email notification」(電子郵件通知) 切換按鈕。啟用這個選項之後,若移轉失敗,移轉作業管理員就會收到電子郵件通知。
    • 如要針對這項移轉作業啟用 Pub/Sub 移轉作業執行通知,請點選「Pub/Sub notifications」(Pub/Sub 通知) 切換按鈕。您可以選取主題名稱,也可以點選「Create a topic」(建立主題) 來建立主題。
  9. 按一下「儲存」。

bq

輸入 bq mk 指令,並提供移轉作業建立旗標 --transfer_config。

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

更改下列內容:

  • PROJECT_ID (選用):您的 Google Cloud 專案 ID。 如未提供 --project_id 來指定特定專案,系統會使用預設專案。
  • DATA_SOURCE:資料來源 (例如 saphana)。
  • DISPLAY_NAME:移轉設定的顯示名稱。資料移轉作業名稱可以是任何值,能讓您辨識移轉作業,方便您日後在必要時進行修改。
  • DATASET:移轉設定的目標資料集。
  • PARAMETERS:JSON 格式的已建立移轉設定參數。例如:--params='{"param":"param_value"}'。Salesforce Marketing Cloud 移轉作業的參數如下:
    • connector.subdomain:API 子網域。
    • connector.instance:API 執行個體值。
    • connector.authentication.oauth.clientId:OAuth 用戶端的應用程式 ID 名稱。
    • connector.authentication.oauth.clientSecret:OAuth 用戶端的應用程式密鑰。
    • assets:要從 Salesforce Marketing Cloud 移轉的 Salesforce Marketing Cloud 資料表名稱清單。

舉例來說,下列指令會在預設專案中建立 Salesforce Marketing Cloud 資料移轉作業,並設定所有必要參數:

  bq mk
      --transfer_config
      --target_dataset=mydataset
      --data_source=salesforce_marketing
      --display_name='My Transfer'
      --params='{"connector.subdomain": "abcd",
      "connector.instance": "x",
      "connector.authentication.oauth.clientId": "1234567890",
      "connector.authentication.oauth.clientSecret":"ABC12345"}'

API

使用 projects.locations.transferConfigs.create 方法,並提供 TransferConfig 資源的例項。

儲存移轉設定時,Salesforce Marketing Cloud 連接器會根據您的排程選項,自動觸發移轉作業。

支援的資料表

每次執行移轉作業時,Salesforce Marketing Cloud 連接器都會根據 REST 介面,將 Salesforce Marketing Cloud 中的所有可用資料移轉至 BigQuery 的下列資料表:

  • Assets
  • CampaignAssets
  • Campaigns
  • Categories
  • EventDefinitions
  • FacebookMessengerProperties
  • JourneyActivities
  • Journeys
  • LineMessengerProperties
  • SendDefinitions
  • Subscriptions
  • DataExtension
  • DataExtensionObject_DATA_EXTENSION_NAME
  • Email
  • LinkSend
  • List
  • ListSubscriber
  • Subscriber
  • TriggeredSendDefinition

如要在排定的時間以外手動執行資料移轉作業,可以啟動補充執行作業。

資料類型對應

下表列出 Salesforce Marketing Cloud 資料類型與對應的 BigQuery 資料類型。

Salesforce Marketing Cloud 資料類型 BigQuery 資料類型
Boolean BOOLEAN
Number INTEGER
Text STRING
Decimal FLOAT
EmailAddress STRING
Phone STRING
Date DATE
DateTime TIMESTAMP
Locale STRING

排解轉移設定問題

如果設定或執行 Salesforce Marketing Cloud 資料移轉作業時遇到問題,請嘗試下列疑難排解步驟:

  • 確認 Salesforce Marketing Cloud 中的 API 整合套件已專門設定為伺服器對伺服器驗證。
  • 確認驗證器應用程式已在「Scope」下設定所有必要權限,包括 Data Extensions: Read。
  • 為避免逾時和間歇性失敗,請將每項移轉設定限制為不超過 10 個資產。
  • 確認您未移轉含有二進位或大型 blob 欄位的資料擴充。

錯誤訊息

錯誤:invalid_grant. The client's IP address is unauthorized for this account. Allowlist the client's IP address in Marketing Cloud Administration.

解決方法:請嘗試下列任一步驟:

錯誤:INVALID_ARGUMENT. Table tableName does not exist in asset TableName

解決方法:請確認素材資源名稱與 Salesforce Marketing Cloud 帳戶中的名稱完全一致 (區分大小寫),且已授予 Data Extensions: Read 範圍。轉移資料擴充功能的資料列時,名稱必須完全符合以下模式:DataExtensionObject_DATA_EXTENSION_NAME。詳情請參閱「Salesforce Marketing Cloud 必要條件」。

問題:移轉作業成功,但未載入任何記錄

解決方法:您必須同時具備檔案位置的 Read 和 Write 權限,才能讀取資料擴充內容。確認 Salesforce Marketing Cloud 範圍包含 File Locations: Read, Write。

錯誤:FAILED_PRECONDITION: There was an issue connecting to API.

解決方法:如果轉移作業包含網路連結,但您未設定 Public NAT 和 IP 許可清單,就可能發生這項錯誤。如要解決這項錯誤,請按照「建立網路連結」中的步驟操作,並定義靜態 IP 位址來建立網路連結。

定價

如要瞭解 Salesforce Marketing Cloud 移轉作業的定價資訊,請參閱「資料移轉服務定價」。

後續步驟