將 Salesforce Marketing Cloud 資料載入 BigQuery
您可以使用 Salesforce Marketing Cloud 專用 BigQuery 資料移轉服務連接器,將資料從 Salesforce Marketing Cloud 載入 BigQuery。透過 BigQuery 資料移轉服務,您可以排定週期性移轉工作,將 Salesforce Marketing Cloud 的最新資料新增至 BigQuery。
限制
Salesforce Marketing Cloud 資料移轉作業會受到下列限制:
- 單一移轉設定在特定時間只能支援一次資料移轉作業。如果排定在第一次資料轉移完成前執行第二次資料轉移,則系統只會完成第一次資料轉移,並略過與第一次轉移重疊的任何其他資料轉移。
- 為避免在單一轉移設定中略過轉移作業,建議您設定「重複頻率」,增加大型資料轉移作業之間的時間間隔。
- 如要透過網路連結進行資料移轉,請務必先定義靜態 IP 位址,再建立網路連結。
- 如果設定的網路連結和虛擬機器 (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`。詳情請參閱「Find the stack location for a Marketing Cloud account」(尋找 Marketing Cloud 帳戶的堆疊位置)。 |
clientId |
API 整合中的用戶端 ID。依序前往「設定」>「應用程式」>「已安裝的套件」,然後點選套件名稱。用戶端 ID 會列在「元件」下方。 |
clientSecret |
應用程式整合項目的用戶端密鑰。依序前往「設定」>「應用程式」>「已安裝的套件」,然後點選套件名稱。用戶端密鑰會列在「元件」下方。 |
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 位址:
- 在虛擬私有雲網路中,設定具有靜態 IP 位址的公用網路位址轉譯 (NAT)。Cloud NAT 必須在與資料移轉目的地資料集相同的區域內設定。
- 在同一個虛擬私有雲網路中設定網路連結。BigQuery 資料移轉服務會使用這項資源存取私人服務。
接著,您必須將靜態 IP 位址加入 Salesforce Marketing Cloud 的許可清單。 新增 IP 位址範圍時,請使用Google Cloud 公開 NAT 的靜態 IP 位址,做為 IP 範圍的起始和結束 IP 位址。
設定 IP 範圍後,您現在可以在設定轉移設定時,透過在「網路附件」欄位中選取網路附件,指定靜態 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 資料集來儲存您的資料。
- 如要為 Pub/Sub 設定移轉作業執行通知,請確認您具備
pubsub.topics.setIamPolicy身分與存取權管理 (IAM) 權限。如果您只想設定電子郵件通知,則不需要擁有 Pub/Sub 權限。詳情請參閱 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,請使用下列任一方法設定移轉作業:
控制台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下「建立轉移作業」。
在「Source type」(來源類型) 部分,「Source」(來源) 請選取「Salesforce Marketing Cloud」。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- 在「Network attachment」(網路連結) 部分,從選單中選取網路連結。如要透過網路連結進行資料移轉,請務必先定義靜態 IP 位址,再建立網路連結。
- 在「API Subdomain」(API 子網域) 部分,輸入驗證基本 URI 的子網域。
- 在「API instance」(API 執行個體) 部分,輸入網址中的 API 執行個體,這在登入 Marketing Cloud 應用程式後即可查看。
- 在「Client ID」(用戶端 ID) 部分,輸入 API 整合套件中的用戶端 ID。
- 在「Client Secret」(用戶端密鑰) 部分,輸入 API 整合套件中的用戶端密鑰。
在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集。
在「Transfer config name」(轉移設定名稱) 部分,「Display name」(顯示名稱) 請輸入資料移轉作業名稱。
在「Schedule options」(排程選項) 部分執行下列操作:
- 在「Repeat frequency」(重複頻率) 清單選取選項,指定這項資料移轉作業的執行頻率。如要指定自訂重複頻率,請選取「Custom」(自訂)。如果選取「On-demand」(隨選),這項移轉作業會在您手動觸發後執行。
- 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
選用:在「Notification options」(通知選項) 專區,執行下列操作:
- 如要啟用電子郵件通知,請點選「Email notification」(電子郵件通知) 切換按鈕。啟用這個選項之後,若移轉失敗,移轉作業管理員就會收到電子郵件通知。
- 如要針對這項移轉作業啟用 Pub/Sub 移轉作業執行通知,請點選「Pub/Sub notifications」(Pub/Sub 通知) 切換按鈕。您可以選取主題名稱,也可以點選「Create a topic」(建立主題) 來建立主題。
按一下「儲存」。
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 的下列資料表:
AssetsCampaignAssetsCampaignsCategoriesEventDefinitionsFacebookMessengerPropertiesJourneyActivitiesJourneysLineMessengerPropertiesSendDefinitionsSubscriptionsDataExtensionDataExtensionObject_DATA_EXTENSION_NAMEEmailLinkSendListListSubscriberSubscriberTriggeredSendDefinition
如要在正常時間表以外手動執行資料轉移作業,可以啟動回填作業。
資料類型對應
下表列出 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 資料移轉作業,請嘗試下列疑難排解步驟:
- 確認為 API 整合套件設定的驗證已設為「伺服器對伺服器」。
- 確認驗證應用程式已在「範圍」下方設定必要權限。
錯誤訊息
- 發生錯誤:
invalid_grant. The client's IP address is unauthorized for this account. Allowlist the client's IP address in Marketing Cloud Administration. 解決方法:請嘗試下列任一步驟:
- 啟用資源的所有可用 IP 位址 Google Cloud 。
- 設定 Google Cloud 環境和 Salesforce Marketing Cloud 帳戶 ,將靜態 IP 位址新增至許可清單。詳情請參閱「為 Salesforce Marketing Cloud 移轉作業設定 IP 許可清單」一文。
- 發生錯誤:
INVALID_ARGUMENT. Table tableName does not exist in asset TableName 解決方法:請確認您已在 Salesforce Marketing Cloud 應用程式中設定正確的範圍權限。詳情請參閱 Salesforce Marketing Cloud 先決條件。
- 發生錯誤:
FAILED_PRECONDITION: There was an issue connecting to API. 解決方法:如果您在轉移作業中加入網路附件,但未設定 Public NAT 和 IP 允許清單,就可能發生這個錯誤。如要解決這項錯誤,請按照「建立網路連結」一文中的步驟操作,定義靜態 IP 位址來建立網路連結。
定價
如要瞭解 Salesforce Marketing Cloud 移轉作業的定價資訊,請參閱「資料移轉服務定價」。
後續步驟
- 如需 BigQuery 資料移轉服務的總覽,請參閱「BigQuery 資料移轉服務簡介」。
- 如要瞭解如何使用資料移轉作業,包括取得移轉設定、列出移轉設定以及查看移轉設定的執行記錄,請參閱「管理移轉作業」一文。
- 瞭解如何透過跨雲端作業載入資料。