使用 Azure Databricks 進行轉換

適用於: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的單一分析解決方案。 Microsoft Fabric 涵蓋從數據移動到數據科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

在本教學課程中,您會建立端對端管線,其中包含 Azure Data Factory 中的驗證複製數據和 Notebook 活動。

  • 驗證 可確保來源數據集已準備好供下游取用,再觸發複製和分析作業。

  • 將數據 複製來源數據集複製到接收記憶體,該記憶體會掛接為 Azure Databricks 筆記本中的 DBFS。 如此一來,Spark 可以直接取用數據集。

  • Notebook 會觸發可轉換數據集的 Databricks 筆記本。 它也會將數據集新增至已處理的資料夾或 Azure Synapse Analytics。

為了簡單起見,本教學課程中的範本不會建立排程的觸發程式。 您可以視需要新增一個。

Diagram of the pipeline

必要條件

  • Azure Blob 記憶體帳戶,其容器稱為 sinkdata 作為接收。

    記下記憶體帳戶名稱、容器名稱和存取金鑰。 您稍後會在範本中需要這些值。

  • Azure Databricks 工作區。

匯入筆記本以進行轉換

若要將 轉換 筆記本匯入 Databricks 工作區:

  1. 登入您的 Azure Databricks 工作區,然後選取 [ 匯入]。 Menu command for importing a workspace 您的工作區路徑可能會與顯示的工作區路徑不同,但稍後請記得。

  2. 選取 [ 匯入來源:URL]。 在文字盒中, 輸入 https://adflabstaging1.blob.core.windows.net/share/Transformations.html

    Selections for importing a notebook

  3. 現在讓我們使用 您的記憶體連線資訊來更新轉換 筆記本。

    在匯入的筆記本中,移至 命令 5 ,如下列代碼段所示。

    • 將和 <access key> 取代<storage name>為您自己的記憶體連線資訊。
    • 搭配容器使用記憶體帳戶 sinkdata
    # Supply storageName and accessKey values  
    storageName = "<storage name>"  
    accessKey = "<access key>"  
    
    try:  
      dbutils.fs.mount(  
        source = "wasbs://sinkdata\@"+storageName+".blob.core.windows.net/",  
        mount_point = "/mnt/Data Factorydata",  
        extra_configs = {"fs.azure.account.key."+storageName+".blob.core.windows.net": accessKey})  
    
    except Exception as e:  
      # The error message has a long stack track. This code tries to print just the relevant line indicating what failed.
    
    import re
    result = re.findall(r"\^\s\*Caused by:\s*\S+:\s\*(.*)\$", e.message, flags=re.MULTILINE)
    if result:
      print result[-1] \# Print only the relevant error message
    else:  
      print e \# Otherwise print the whole stack trace.  
    
  4. 產生 Data Factory 的 Databricks 存取令牌,以存取 Databricks。

    1. 在 Databricks 工作區中,選取右上角的使用者配置檔圖示。
    2. 選取 [使用者 設定]。 Menu command for user settings
    3. 選取 [存取令牌] 索引標籤下的 [產生新令牌]。
    4. 選取產生

    "Generate" button

    儲存存取令牌 以供稍後用來建立 Databricks 鏈接服務。 存取令牌看起來像 。dapi32db32cbb4w6eee18b7d87e45exxxxxx

如何使用此範本

  1. 移至 使用 Azure Databricks 進行轉換範本,並建立新的連結服務以進行下列連線。

    Connections setting

    • 來源 Blob 連線 - 存取源數據。

      在此練習中,您可以使用包含來源檔案的公用 Blob 記憶體。 參考設定的下列螢幕快照。 使用下列 SAS URL 連線到來源記憶體(唯讀取):

      https://storagewithdata.blob.core.windows.net/data?sv=2018-03-28&si=read%20and%20list&sr=c&sig=PuyyS6%2FKdB2JxcZN0kPlmHSBlD8uIKyzhBWmWzznkBw%3D

      Selections for authentication method and SAS URL

    • 目的地 Blob 連線 ion - 儲存複製的數據。

      在 [ 新增鏈接服務 ] 視窗中,選取您的接收記憶體 Blob。

      Sink storage blob as a new linked service

    • Azure Databricks - 連線到 Databricks 叢集。

      使用您先前產生的存取金鑰建立 Databricks 連結服務。 如果您有互動式叢集,您可以選擇選取 互動式叢集 。 此範例使用 [ 新增作業叢集 ] 選項。

      Selections for connecting to the cluster

  2. 選取使用此範本。 您會看到已建立管線。

    Create a pipeline

管線簡介和設定

在新管線中,大部分的設定都會使用預設值自動設定。 檢閱管線的組態,並進行任何必要的變更。

  1. 在 [ 驗證 活動 可用性] 旗標中,確認來源 數據集 值已設定為您 SourceAvailabilityDataset 稍早建立的值。

    Source dataset value

  2. 在 [將數據活動檔案複製到 Blob] 中,檢查 [來源] 和 [接收] 索引卷標。 視需要變更設定。

    • 來源索引標籤Source tab

    • [接收] 索引標籤 Sink tab

  3. 在 Notebook 活動轉換,視需要檢閱並更新路徑和設定。

    Databricks 鏈接服務 應該預先填入上一個步驟中的值,如下所示: Populated value for the Databricks linked service

    若要檢查 Notebook 設定:

    1. 選取 [設定] 索引標籤。針對 [筆記本路徑],確認預設路徑正確無誤。 您可能需要瀏覽並選擇正確的筆記本路徑。

      Notebook path

    2. 展開 [ 基底參數 ] 選取器,並確認參數符合下列螢幕快照中顯示的參數。 這些參數會從Data Factory傳遞至 Databricks 筆記本。

      Base parameters

  4. 確認管線參數符合下列螢幕快照中顯示的專案:Pipeline parameters

  5. 連線 數據集。

    注意

    在下列數據集中,範本中會自動指定檔案路徑。 如果需要任何變更,請確定您指定容器目錄的路徑,以防發生任何連線錯誤。

    • SourceAvailabilityDataset - 檢查源數據是否可用。

      Selections for linked service and file path for SourceAvailabilityDataset

    • SourceFilesDataset - 存取源數據。

      Selections for linked service and file path for SourceFilesDataset

    • DestinationFilesDataset - 將數據複製到接收目的地位置。 使用下列值:

      • 在上一個步驟中建立的連結服務 - sinkBlob_LS

      • 檔案路徑 - sinkdata/staged_sink

        Selections for linked service and file path for DestinationFilesDataset

  6. 選取 [ 偵錯 ] 以執行管線。 您可以找到 Databricks 記錄的連結,以取得更詳細的 Spark 記錄。

    Link to Databricks logs from output

    您也可以使用 Azure 儲存體 Explorer 來驗證資料檔。

    注意

    為了與 Data Factory 管線執行相互關聯,此範例會將管線執行標識元從數據處理站附加至輸出資料夾。 這有助於追蹤每個執行所產生的檔案。 Appended pipeline run ID