將 Salesforce 資料載入 BigQuery
您可以使用 BigQuery 資料移轉服務的 Salesforce 連接器,將資料從 Salesforce 載入 BigQuery。您可以使用 BigQuery 資料移轉服務,安排週期性移轉工作,將 Salesforce 的最新資料新增至 BigQuery。
限制
Salesforce 資料移轉作業會受到下列限制:
- Salesforce 專用的 BigQuery 資料移轉服務僅支援使用 Salesforce Bulk API 連線至 Salesforce 執行個體,且僅支援移轉 Salesforce Bulk API 支援的實體。如要進一步瞭解支援的實體,請參閱「『Entity is not supported by the Bulk API』錯誤」。
- 週期性資料移轉作業之間的最短間隔時間為 15 分鐘。重複轉帳的預設間隔為 24 小時。
- BigQuery 資料移轉服務會使用 Salesforce Bulk API 第 1 版連線至 Salesforce 端點,以擷取資料。
- 如果設定的網路附件和虛擬機器 (VM) 執行個體位於不同區域,從 Salesforce 轉移資料時,可能會發生跨區域資料移動。
事前準備
下列各節說明建立 Salesforce 資料轉移作業前必須採取的步驟。
建立 Salesforce 連結的應用程式
您必須建立 Salesforce 連線的應用程式,並完成下列必要設定:
- 在已連線的應用程式中設定基本資訊。已連線的應用程式名稱和聯絡人電子郵件 欄位為 Salesforce 轉移作業的必填欄位。
- 啟用 OAuth 設定,並進行下列設定:
- 勾選「啟用 OAuth 設定」核取方塊。
- 在「Callback URL」(回呼網址) 欄位中,輸入下列內容:
- 如果是實際工作環境,請輸入
https://login.salesforce.com/services/oauth2/token
。 - 如果是沙箱環境,請輸入
https://test.salesforce.com/services/oauth2/token
。
- 如果是實際工作環境,請輸入
- 在「選取的 OAuth 範圍」部分,選取「透過 API 管理使用者資料 (api)」。
- 取消勾選「Required Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows」(支援的授權流程必須使用 Proof Key for Code Exchange (PKCE) 擴充功能) 核取方塊。
- 選取「啟用用戶端憑證流程」,然後按一下顯示的通知訊息中的「確定」。
設定連結的應用程式並完成必要設定後,請按一下「儲存」。系統會將您重新導向至新建立的「已連結應用程式」詳細資料頁面。
建立已連線的應用程式後,您也必須設定用戶端憑證流程,方法如下:
- 點選 [設定]。
- 在搜尋列中搜尋「已連結的應用程式」。
- 依序點選「管理應用程式」>「已連結的應用程式」。如果您使用 Salesforce Lightning Experience,請按一下「管理已連結的應用程式」。
- 在您建立的已連線應用程式上,按一下「編輯」。
- 「應用程式詳細資料」頁面隨即顯示。在「用戶端憑證流程」部分,於「以這個身分執行」欄位中輸入使用者名稱。您可以使用這個欄位中的尋找工具,確保選取的使用者正確無誤。
- 按一下 [儲存]。
必要的 Salesforce 資訊
建立 Salesforce 資料移轉作業時,您必須提供下列 Salesforce 資訊:
參數名稱 | 說明 |
---|---|
myDomain |
Salesforce 中的「我的網域」。 |
clientId |
與 Salesforce 連結的應用程式用戶端金鑰。 |
clientSecret |
與 Salesforce 連結的應用程式 OAuth 用戶端密鑰或用戶端密鑰。 |
如要取得 myDomain
、clientID
和 clientSecret
值,請選取下列其中一個選項:
Salesforce Classic
擷取「myDomain
」詳細資料
如要找出 myDomain
,請按照下列步驟操作:
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「我的網域」。
- 在搜尋結果中,依序點選「網域管理」>「我的網域」。
在「我的網域詳細資料」部分中,myDomain
會顯示為「目前的我的網域 URL」的前置字元。舉例來說,如果「我的網域」網址為 example.my.salesforce.com
,則要使用的 myDomain
值為 example
。
擷取 ClientId
和 ClientSecret
詳細資料
如要找出 ClientId
和 ClientSecret
值,請按照下列步驟操作:
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「應用程式」。
- 在搜尋結果的「建構」部分,依序點選「建立」>「應用程式」。
- 按一下「已連結的應用程式名稱」。
- 在「連結的應用程式」詳細資料頁面,按一下「管理取用者詳細資料」。
- 使用其中一種已註冊的方法驗證身分。系統最多會顯示消費者詳細資料頁面五分鐘,之後會再次提示您驗證身分。
- 在「消費者詳細資料」頁面中,「消費者金鑰」就是你的
ClientId
值。「Customer Secret」是您的ClientSecret
值。
Salesforce Lightning Experience
擷取「myDomain
」詳細資料
如要找出 myDomain
,請按照下列步驟操作:
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「我的網域」。
- 在搜尋結果中,依序點選「公司設定」「我的網域」。
在「我的網域詳細資料」部分中,myDomain
會顯示為「目前的我的網域 URL」的前置字元。舉例來說,如果「我的網域」網址為 example.my.salesforce.com
,則要使用的 myDomain
值為 example
。
擷取 ClientId
和 ClientSecret
詳細資料
- 登入 Salesforce 平台。
- 點選 [設定]。
- 在搜尋列中搜尋「應用程式」。
- 在搜尋結果中,依序點選「應用程式」「應用程式管理工具」。
- 找出已連結的應用程式,然後按一下「查看」。
- 按一下「管理取用者詳細資料」。
- 使用其中一種已註冊的方法驗證身分。系統最多會顯示消費者詳細資料頁面五分鐘,之後會再次提示您驗證身分。
- 在「消費者詳細資料」頁面中,「消費者金鑰」就是你的
ClientId
值。「Customer Secret」是您的ClientSecret
值。
BigQuery 必要條件
- 確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。
- 請建立 BigQuery 資料集來儲存您的資料。
- 如要為 Pub/Sub 設定移轉作業執行通知,請確認您擁有
pubsub.topics.setIamPolicy
身分與存取權管理 (IAM) 權限。如果您只想設定電子郵件通知,則不需要擁有 Pub/Sub 權限。詳情請參閱 BigQuery 資料移轉服務執行通知一文。
須具備的 BigQuery 角色
如要取得建立移轉作業所需的權限,請要求管理員授予您 BigQuery 管理員 (roles/bigquery.admin
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備建立轉移作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立移轉作業,必須具備下列權限:
-
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 我的網域。 舉例來說,如果網域網址為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 資料移轉服務簡介。
- 如要瞭解如何使用移轉作業,包括取得移轉設定、列出移轉設定以及查看移轉設定的執行記錄,請參閱使用移轉功能一文。
- 瞭解如何透過跨雲端作業載入資料。