將 Salesforce 資料載入 BigQuery
您可以使用 Salesforce 適用的 BigQuery 資料移轉服務連接器,將資料從 Salesforce 載入至 BigQuery。您可以使用 BigQuery 資料移轉服務,安排週期性移轉工作,將最新資料從 Salesforce 新增至 BigQuery。
限制
Salesforce 資料移轉作業有下列限制:
- Salesforce 專用的 BigQuery 資料移轉服務僅支援 Salesforce 大量 API 連線至 Salesforce 例項,且只支援 Salesforce 大量 API 支援的實體移轉。如要進一步瞭解支援的實體,請參閱「Bulk API 不支援實體」錯誤。
- 重複資料傳輸作業之間的最短間隔時間為 15 分鐘。週期性轉帳的預設間隔為 24 小時。
- BigQuery 資料移轉服務會使用 Salesforce Bulk API v1 連線至 Salesforce 端點,以便擷取資料。
- 如果您設定的網路附件和虛擬機器 (VM) 例項位於不同區域,從 Salesforce 傳輸資料時,可能會發生跨區域資料移轉。
事前準備
以下各節將說明建立 Salesforce 資料移轉作業前,您必須採取的步驟。
建立 Salesforce 連結的應用程式
您必須使用下列必要設定建立 Salesforce 連結應用程式:
- 在已連結的應用程式中設定基本資訊。已連結的應用程式名稱和聯絡電子郵件欄位是 Salesforce 轉移作業的必要欄位。
- 使用下列設定啟用 OAuth 設定:
- 勾選「Enable OAuth Settings」(啟用 OAuth 設定) 核取方塊。
- 在「回呼網址」欄位中輸入以下內容:
- 如果是實際工作環境,請輸入
https://login.salesforce.com/services/oauth2/token
。 - 針對沙箱環境,請輸入
https://test.salesforce.com/services/oauth2/token
。
- 如果是實際工作環境,請輸入
- 在「Selected OAuth Scopes」部分,選取「透過 API 管理使用者資料 (api)」。
- 取消勾選「Required Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows」核取方塊。
- 選取「啟用用戶端憑證流程」,然後點選出現的通知中的「確定」。
設定連結應用程式並完成必要設定後,請按一下「儲存」。系統會將您重新導向至新建立的 Connected 應用程式詳細資料頁面。
建立 Connected App 後,您還必須按照下列步驟設定用戶端憑證流程:
- 點選 [設定]。
- 在搜尋列中搜尋「已連結的應用程式」。
- 依序按一下「管理應用程式」「已連結的應用程式」。如果您使用的是 Salesforce Lightning Experience,請按一下「管理已連結的應用程式」。
- 在您建立的已連結應用程式上,按一下「編輯」。
- 「應用程式詳細資料」頁面隨即顯示。在「Client Credentials Flow」部分,請在「Run As」欄位中輸入使用者名稱。您可以使用這個欄位的尋找工具,確認已選取正確的使用者。
- 按一下 [儲存]。
必要的 Salesforce 資訊
建立 Salesforce 資料移轉時,您必須具備下列 Salesforce 資訊:
參數名稱 | 說明 |
---|---|
myDomain |
您在 Salesforce 中的 My Domain。 |
clientId |
與 Salesforce 連結的應用程式用戶端金鑰。 |
clientSecret |
與 Salesforce 連結的應用程式 OAuth 用戶端密鑰或用戶端密鑰。 |
如要取得 myDomain
、clientID
和 clientSecret
值,請選取下列任一選項:
Salesforce Classic
擷取 myDomain
詳細資料
如要找出 myDomain
,請按照下列步驟操作:
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「我的網域」。
- 在搜尋結果中,依序按一下「網域管理」「我的網域」。
在「我的網域詳細資料」部分,「目前的我的網域網址」中會顯示 myDomain
前置字串。舉例來說,如果「我的網域」網址為 example.my.salesforce.com
,則要使用的 myDomain
值為 example
。
擷取 ClientId
和 ClientSecret
詳細資料
如要找出 ClientId
和 ClientSecret
值,請按照下列步驟操作:
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「應用程式」。
- 在搜尋結果的「Build」部分,依序點選「Create」>「Apps」。
- 按一下「已連結的應用程式名稱」。
- 在「連結的應用程式」詳細資料頁面中,按一下「管理消費者詳細資料」。
- 使用其中一種註冊方法驗證身分。您最多可以查看五分鐘的消費者詳細資料頁面,系統才會再次提示您驗證身分。
- 在「Consumer Details」頁面中,「Consumer Key」就是
ClientId
值。「Customer Secret」是您的ClientSecret
值。
Salesforce Lightning 體驗
擷取 myDomain
詳細資料
如要找出 myDomain
,請按照下列步驟操作:
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「我的網域」。
- 在搜尋結果中,依序按一下「公司設定」「我的網域」。
在「我的網域詳細資料」部分,「目前的我的網域網址」中會顯示 myDomain
前置字串。舉例來說,如果「我的網域」網址為 example.my.salesforce.com
,則要使用的 myDomain
值為 example
。
擷取 ClientId
和 ClientSecret
詳細資料
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「應用程式」。
- 在搜尋結果中,依序按一下「應用程式」>「應用程式管理工具」。
- 找出已連結的應用程式,然後按一下「查看」。
- 按一下「管理消費者詳細資料」。
- 使用其中一種註冊方法驗證身分。您最多可以查看五分鐘的消費者詳細資料頁面,系統才會再次提示您驗證身分。
- 在「Consumer Details」頁面中,「Consumer Key」就是
ClientId
值。「Customer Secret」是您的ClientSecret
值。
BigQuery 先決條件
- 確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。
- 請建立 BigQuery 資料集來儲存您的資料。
- 如果您想要為 Pub/Sub 設定移轉執行通知,請確認您具有
pubsub.topics.setIamPolicy
身分與存取權管理 (IAM) 權限。如果您只想設定電子郵件通知,則不需要擁有 Pub/Sub 權限。詳情請參閱 BigQuery 資料移轉服務執行通知一文。
必要的 BigQuery 角色
如要取得建立移轉作業所需的權限,請向管理員索取 BigQuery 管理員 (roles/bigquery.admin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色包含建立轉移作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立移轉作業,必須具備下列權限:
-
bigquery.transfers.update
使用者 -
bigquery.datasets.get
在目標資料集上 -
bigquery.datasets.update
在目標資料集上
設定 Salesforce 資料移轉作業
如要建立 Salesforce 資料移轉作業,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下
「建立移轉作業」。在「Source type」(來源類型) 部分,「Source」(來源) 請選取「Salesforce」。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- 在「My Domain」(我的網域),輸入您的 Salesforce My Domain。
- 在「Client ID」(用戶端 ID),輸入與 Salesforce 連結的應用程式用戶端金鑰。
- 在「Client secret」(用戶端密鑰),輸入與 Salesforce 連結的應用程式用戶端密鑰。
在「Salesforce objects to transfer」(要移轉的 Salesforce 物件) 部分點選「Browse」(瀏覽),選取要移轉至 BigQuery 目的地資料集的物件。您也可以在這個欄位手動輸入要移轉資料的物件。
在「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=NAME --target_dataset=DATASET --params='PARAMETERS'
其中:
- PROJECT_ID (選用):您的 Google Cloud 專案 ID。如果未提供
--project_id
指定特定專案,系統會使用預設專案。 - DATA_SOURCE:資料來源 —
salesforce
。 - NAME:資料移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改移轉作業時能夠據此識別。
- DATASET:移轉設定的目標資料集。
PARAMETERS:已建立移轉設定的 JSON 格式參數。例如:
--params='{"param":"param_value"}'
。以下是 Salesforce 資料移轉的參數:connector.authentication.oauth.clientId
:與 Salesforce 連結的應用程式用戶端金鑰。connector.authentication.oauth.clientSecret
:Salesforce 連結應用程式的 OAuth 用戶端密鑰或消費者密鑰。connector.authentication.oauth.myDomain
:Salesforce My Domain。舉例來說,如果您的網域網址為example.my.salesforce.com
,則值為example
。assets
:要轉移至 BigQuery 的 Salesforce 物件路徑。
舉例來說,下列指令會在預設專案中,使用所有必要參數建立 Salesforce 資料移轉作業:
bq mk --transfer_config --target_dataset=mydataset --data_source=salesforce --display_name='My Transfer' --params='{"assets":["Account"], "connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345", "connector.authentication.oauth.myDomain":"MyDomainName",}'
API
請使用 projects.locations.transferConfigs.create
方法,並提供 TransferConfig
資源的執行個體。
資料類型對應
下表將 Salesforce 資料類型對應至相應的 BigQuery 資料類型:
Salesforce 資料類型 | BigQuery 資料類型 |
---|---|
_bool |
BOOLEAN |
_int |
INTEGER |
_long |
INTEGER |
_double |
FLOAT |
currency |
FLOAT |
percent |
FLOAT |
geolocation (latitude) |
FLOAT |
geolocation (longitude) |
FLOAT |
date |
DATE |
datetime |
TIMESTAMP |
time |
TIME |
picklist |
STRING |
multipicklist |
STRING |
combobox |
STRING |
reference |
STRING |
base64 |
STRING |
textarea |
STRING |
phone |
STRING |
id |
STRING |
url |
STRING |
email |
STRING |
encryptedstring |
STRING |
datacategorygroupreference |
STRING |
location |
STRING |
address |
STRING |
anyType |
STRING |
定價
在預覽期間,將 Salesforce 資料轉移至 BigQuery 不需額外付費。
排解轉移設定問題
如果您無法順利設定資料移轉作業,請參閱Salesforce 移轉問題。
後續步驟
- 如需 BigQuery 資料移轉服務的總覽,請參閱 BigQuery 資料移轉服務簡介。
- 如要瞭解如何使用移轉作業,包括取得移轉設定、列出移轉設定以及查看移轉設定的執行記錄,請參閱使用移轉功能一文。
- 瞭解如何透過跨雲端作業載入資料。