將 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 後,您還必須按照下列步驟設定用戶端憑證流程:

  1. 點選 [設定]。
  2. 在搜尋列中搜尋「已連結的應用程式」
  3. 依序按一下「管理應用程式」「已連結的應用程式」。如果您使用的是 Salesforce Lightning Experience,請按一下「管理已連結的應用程式」
  4. 在您建立的已連結應用程式上,按一下「編輯」
  5. 「應用程式詳細資料」頁面隨即顯示。在「Client Credentials Flow」部分,請在「Run As」欄位中輸入使用者名稱。您可以使用這個欄位的尋找工具,確認已選取正確的使用者。
  6. 按一下 [儲存]

必要的 Salesforce 資訊

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

參數名稱 說明
myDomain 您在 Salesforce 中的 My Domain
clientId 與 Salesforce 連結的應用程式用戶端金鑰。
clientSecret

與 Salesforce 連結的應用程式 OAuth 用戶端密鑰或用戶端密鑰。

如要取得 myDomainclientIDclientSecret 值,請選取下列任一選項:

Salesforce Classic

擷取 myDomain 詳細資料

如要找出 myDomain,請按照下列步驟操作:

  1. 登入 Salesforce 平台。
  2. 點選 [設定]。
  3. 在搜尋列中搜尋「我的網域」
  4. 在搜尋結果中,依序按一下「網域管理」「我的網域」

在「我的網域詳細資料」部分,「目前的我的網域網址」中會顯示 myDomain 前置字串。舉例來說,如果「我的網域」網址為 example.my.salesforce.com,則要使用的 myDomain 值為 example

擷取 ClientIdClientSecret 詳細資料

如要找出 ClientIdClientSecret 值,請按照下列步驟操作:

  1. 登入 Salesforce 平台。
  2. 點選 [設定]。
  3. 在搜尋列中搜尋「應用程式」
  4. 在搜尋結果的「Build」部分,依序點選「Create」>「Apps」
  5. 按一下「已連結的應用程式名稱」
  6. 在「連結的應用程式」詳細資料頁面中,按一下「管理消費者詳細資料」
  7. 使用其中一種註冊方法驗證身分。您最多可以查看五分鐘的消費者詳細資料頁面,系統才會再次提示您驗證身分。
  8. 在「Consumer Details」頁面中,「Consumer Key」就是 ClientId 值。「Customer Secret」是您的 ClientSecret 值。

Salesforce Lightning 體驗

擷取 myDomain 詳細資料

如要找出 myDomain,請按照下列步驟操作:

  1. 登入 Salesforce 平台。
  2. 點選 [設定]。

在 Salesforce 平台中開啟「設定」頁面。

  1. 在搜尋列中搜尋「我的網域」
  2. 在搜尋結果中,依序按一下「公司設定」「我的網域」。

在「我的網域詳細資料」部分,「目前的我的網域網址」中會顯示 myDomain 前置字串。舉例來說,如果「我的網域」網址為 example.my.salesforce.com,則要使用的 myDomain 值為 example

擷取 ClientIdClientSecret 詳細資料

  1. 登入 Salesforce 平台。
  2. 點選 [設定]。
  3. 在搜尋列中搜尋「應用程式」
  4. 在搜尋結果中,依序按一下「應用程式」>「應用程式管理工具」
  5. 找出已連結的應用程式,然後按一下「查看」
  6. 按一下「管理消費者詳細資料」
  7. 使用其中一種註冊方法驗證身分。您最多可以查看五分鐘的消費者詳細資料頁面,系統才會再次提示您驗證身分。
  8. 在「Consumer Details」頁面中,「Consumer Key」就是 ClientId 值。「Customer Secret」是您的 ClientSecret 值。

BigQuery 先決條件

必要的 BigQuery 角色

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

這個預先定義的角色包含建立轉移作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要建立移轉作業,必須具備下列權限:

  • bigquery.transfers.update 使用者
  • bigquery.datasets.get 在目標資料集上
  • bigquery.datasets.update 在目標資料集上

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

設定 Salesforce 資料移轉作業

如要建立 Salesforce 資料移轉作業,請按照下列步驟操作:

主控台

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

    前往「資料移轉」

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

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

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

    • 在「My Domain」(我的網域),輸入您的 Salesforce My Domain
    • 在「Client ID」(用戶端 ID),輸入與 Salesforce 連結的應用程式用戶端金鑰。
    • 在「Client secret」(用戶端密鑰),輸入與 Salesforce 連結的應用程式用戶端密鑰。
    • 在「Salesforce objects to transfer」(要移轉的 Salesforce 物件) 部分點選「Browse」(瀏覽),選取要移轉至 BigQuery 目的地資料集的物件。您也可以在這個欄位手動輸入要移轉資料的物件。

      設定 Salesforce 轉移設定

  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=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.myDomainSalesforce 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 移轉問題

後續步驟