共用方式為


從 Salesforce 擷取資料

重要

LakeFlow Connect 處於封閉式公開預覽狀態。 若要參與預覽,請聯絡您的 Databricks 帳戶團隊。

本文說明如何使用 LakeFlow Connect 從 Salesforce 內嵌數據並將其載入 Azure Databricks。 產生的擷取管線是由 Unity 目錄所控管,並由無伺服器計算和 Delta 實時數據表提供電源。

Salesforce 擷取連接器支援下列來源:

  • Salesforce Sales Cloud

開始之前

若要建立擷取管線,必須符合下列需求:

  • 已為 Unity Catalog 啟用工作區。

  • 已為筆記本、工作流程和 Delta 實時資料表啟用無伺服器計算。 請參閱啟用無伺服器計算

  • 若要建立連線:您在 CREATE CONNECTION 中繼存放區上有 。

    若要使用現有的連線:您在 USE CONNECTION 連線物件上有 或 ALL PRIVILEGES

  • 目標目錄中的 USE CATALOG

  • USE SCHEMACREATE TABLE 在現有的架構或 CREATE SCHEMA 目標目錄上。

  • (建議)建立 Databricks 可用來擷取數據的 Salesforce 使用者。 請確定使用者具有 API 存取權,以及您計畫內嵌的所有物件存取權。

建立 Salesforce 連線

必要許可權:CREATE CONNECTION中繼存放區上。 請聯絡中繼存放區管理員以授與此權限。

如果您想要使用現有的連線建立擷取管線,請跳至下一節。 USE CONNECTION您需要或ALL PRIVILEGES連線。

若要建立 Salesforce 連線,請執行下列動作:

  1. 在 Azure Databricks 工作區中,按兩下 [目錄 > 外部位置 > 連線 > 建立連線]。

  2. 針對 [ 連線],指定 Salesforce 連接的唯一名稱。

  3. 針對 [ 連線類型],按兩下 [ Salesforce]。

  4. 如果您要從 Salesforce 沙盒帳戶擷取,請將 [沙箱] 設定true

  5. 按一下 [使用 Salesforce 登入]。

    Salesforce 登入

  6. 如果您要從 Salesforce 沙箱內嵌,請按兩下 [ 使用自訂網域]。 提供沙箱 URL,然後繼續登入。 Databricks 建議以專門用於 Databricks 擷取的 Salesforce 使用者身分登入。

    使用自訂網域按鈕

    輸入沙箱 URL

  7. 返回 [ 建立連線] 頁面之後,按兩下 [ 建立]。

建立擷取管線

需要的許可權:USE CONNECTIONALL PRIVILEGES連線上的許可權。

此步驟說明如何建立擷取管線。 每個擷取的數據表都會對應至目的地中名稱相同(但所有小寫)的串流數據表,除非您明確重新命名。

Databricks UI

  1. 在 Azure Databricks 工作區的提要字段中,按兩下 [ 數據擷取]。

  2. 在 [新增數據] 頁面上的 [Databricks 連接器] 底下,按兩下 [Salesforce]。

    Salesforce 擷取精靈隨即開啟。

  3. 在精靈的 [ 管線] 頁面上,輸入擷取管線的唯一名稱。

  4. 在 [ 目的地目錄 ] 下拉式清單中,選取目錄。 擷取的數據和事件記錄檔將會寫入此目錄。

  5. 選取儲存存取 Salesforce 資料所需認證的 Unity 目錄連線。

    如果沒有 Salesforce 連線,請按兩下 [ 建立連線]。 您必須擁有 CREATE CONNECTION 中繼存放區的許可權。

  6. 按兩下 [ 建立管線] 並繼續

  7. 在 [來源] 頁面上,選取要內嵌至 Databricks 的 Salesforce 數據表,然後按 [下一步]。

    如果您選取架構,Salesforce 擷取連接器會將來源架構中的所有現有和未來的數據表寫入 Unity 目錄受控數據表。

  8. 在 [ 目的地 ] 頁面上,選取要寫入的 Unity 目錄目錄和架構。

    如果您不想使用現有的架構,請按兩下 [ 建立架構]。 您必須擁有 USE CATALOG 父目錄的 和 CREATE SCHEMA 許可權。

  9. 按兩下 [ 儲存管線] 並繼續

  10. 在 [ 設定] 頁面上,按兩下 [ 建立排程]。 設定重新整理目的地數據表的頻率。

  11. 選擇性地設定管線作業成功或失敗的電子郵件通知。

  12. 按兩下 [ 儲存並執行管線]。

Databricks Asset Bundles

此索引標籤描述如何使用 Databricks 資產組合 (DAB) 部署擷取管線。 套件組合可以包含作業和工作的 YAML 定義、使用 Databricks CLI 來管理,而且可以在不同的目標工作區中共用和執行 (例如開發、預備和生產環境)。 如需詳細資訊,請參閱 Databricks 資產套件組合

  1. 使用 Databricks CLI 建立新的套件組合:

    databricks bundle init
    
  2. 將兩個新的資源檔案新增至套件組合:

    • 管線定義檔 (resources/sfdc_pipeline.yml)。
    • 控制數據擷取頻率的工作流程檔案 (resources/sfdc_job.yml)。

    下列為 resources/sfdc_pipeline.yml 檔案範例:

    variables:
      dest_catalog:
        default: main
      dest_schema:
        default: ingest_destination_schema
    
    # The main pipeline for sfdc_dab
    resources:
      pipelines:
        pipeline_sfdc:
          name: salesforce_pipeline
          ingestion_definition:
            connection_name: <salesforce-connection>
            objects:
              # An array of objects to ingest from Salesforce. This example
              # ingests the AccountShare, AccountPartner, and ApexPage objects.
              - table:
                  source_schema: objects
                  source_table: AccountShare
                  destination_catalog: ${var.dest_catalog}
                  destination_schema: ${var.dest_schema}
              - table:
                  source_schema: objects
                  source_table: AccountPartner
                  destination_catalog: ${var.dest_catalog}
                  destination_schema: ${var.dest_schema}
              - table:
                  source_schema: objects
                  source_table: ApexPage
                  destination_catalog: ${var.dest_catalog}
                  destination_schema: ${var.dest_schema}
          channel: "preview"
    

    下列為 resources/sfdc_job.yml 檔案範例:

    resources:
      jobs:
        sfdc_dab_job:
          name: sfdc_dab_job
    
          trigger:
            # Run this job every day, exactly one day from the last run
            # See https://docs.databricks.com/api/workspace/jobs/create#trigger
            periodic:
              interval: 1
              unit: DAYS
    
          email_notifications:
            on_failure:
              - <email-address>
    
          tasks:
            - task_key: refresh_pipeline
              pipeline_task:
                pipeline_id: ${resources.pipelines.pipeline_sfdc.id}
    
  3. 使用 Databricks CLI 部署管線:

    databricks bundle deploy
    

Databricks CLI

若要建立管線:

databricks pipelines create --json "<pipeline-definition | json-file-path>"

若要更新管線:

databricks pipelines update --json "<<pipeline-definition | json-file-path>"

若要取得管線定義:

databricks pipelines get "<pipeline-id>"

若要刪除管線:

databricks pipelines delete "<pipeline-id>"

如需詳細資訊,您可以執行:

databricks pipelines --help
databricks pipelines <create|update|get|delete|...> --help

在您的管線上啟動、排程及設定警示

  1. 建立管線之後,請重新瀏覽 Databricks 工作區,然後按一下 Delta Live Tables

    新的管線會出現在管線清單中。

  2. 若要檢視管線詳細資料,請按一下管線名稱。

  3. 在管線詳細資料頁面上,按一下 [開始] 可執行管線。 按一下 [排程] 可排程管線。

  4. 若要在管線上設定警示,請按一下 [排程],再按一下 [更多選項],然後新增通知。

  5. 擷取完成之後,可以查詢資料表。

注意

當管線執行時,您可能會看到指定數據表的兩個來源檢視。 一個檢視包含公式欄位的快照集。 另一個檢視包含非公式欄位的累加式數據提取。 這些檢視會聯結在目的地數據表中。