將 Salesforce Marketing Cloud 資料載入 BigQuery
您可以使用 Salesforce Marketing Cloud 專用的 BigQuery 資料移轉服務連接器,將資料從 Salesforce Marketing Cloud 載入 BigQuery。透過 BigQuery 資料移轉服務,您可以排定週期性移轉工作,將 Salesforce Marketing Cloud 的最新資料新增至 BigQuery。
限制
Salesforce Marketing Cloud 資料移轉作業會受到下列限制:
- 單一移轉設定在特定時間只能支援一次資料移轉作業。如果排定在第一次資料轉移完成前執行第二次資料轉移,則系統只會完成第一次資料轉移,並略過與第一次轉移重疊的任何其他資料轉移。
- 為避免在單一轉移設定中略過轉移作業,建議您設定「重複頻率」,增加大型資料轉移作業之間的時間間隔。
- 如果設定的網路連結和虛擬機器 (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。依序前往「設定」>「應用程式」>「已安裝的套件」,然後按一下套件名稱。用戶端 ID 會列在「元件」下方。 |
clientSecret |
應用程式整合項目的用戶端密鑰。依序前往「設定」>「應用程式」>「已安裝的套件」,然後按一下套件名稱。用戶端密鑰會列在「元件」下方。 |
為 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。
安裝及設定 Salesforce Marketing Cloud API 整合套件
您必須在 Salesforce Marketing Cloud 中安裝伺服器對伺服器 API 整合套件。如要在 Salesforce Marketing Cloud 中執行這項操作,請安裝新的已安裝套件,然後指定「API Integration」>「Server-to-Server」元件。詳情請參閱「建立及安裝套件」。
安裝 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 資料移轉服務資料移轉作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立 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」(資料來源詳細資料) 部分執行下列操作:
- 在「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 用戶端的應用程式密鑰。
舉例來說,下列指令會在預設專案中建立 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
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 |
Date |
TIMESTAMP |
排解轉移設定問題
如果無法順利設定 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 。
- 停用 IP 許可清單。如要執行這項操作,請登入 Salesforce Marketing Cloud 應用程式,然後前往「設定」>「安全性設定」頁面。按一下「編輯」,然後將「依 IP 位址限制登入 (IP 許可清單)」設定設為「已停用 IP 許可清單」。
- 錯誤:
INVALID_ARGUMENT. Table tableName does not exist in asset TableName
解決方法:請確認您已在 Salesforce Marketing Cloud 應用程式中設定正確的範圍權限。詳情請參閱 Salesforce Marketing Cloud 先決條件。
定價
這項功能處於預覽階段時,將 Salesforce Marketing Cloud 資料移轉至 BigQuery 不會產生費用。
後續步驟
- 如需 BigQuery 資料移轉服務的總覽,請參閱「BigQuery 資料移轉服務簡介」。
- 如要瞭解如何使用資料移轉作業,包括取得移轉設定、列出移轉設定以及查看移轉設定的執行記錄,請參閱「管理移轉作業」一文。
- 瞭解如何透過跨雲端作業載入資料。