共用方式為


使用 Azure Databricks 進行轉換

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

在本教學課程中,您會建立端對端管線,其中包含 Azure Data Factory 中的驗證複製資料筆記本活動。

  • 驗證確保您的來源資料集已準備好供下游取用,然後再觸發複製和分析作業。

  • 複製資料會將來源資料集複製至接收儲存體,此儲存體會掛接為 Azure Databricks 筆記本中的 DBFS。 如此一來,Spark 即可直接取用資料集。

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

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

管線的圖表

必要條件

  • Azure Blob 儲存體帳戶,其有一個稱為 sinkdata 的容器,用作接收器。

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

  • Azure Databricks 工作區。

匯入筆記本進行轉換

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

  1. 登入您的 Azure Databricks 工作區,然後選取 [匯入]匯入工作區的功能表命令 您的工作區路徑可以不同於顯示的工作區路徑,但記住該路徑,稍後會用到。

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

    匯入筆記本的選項

  3. 現在,我們將以您的儲存體連線資訊更新轉換筆記本。

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

    • <storage name><access key> 取代為您自己的儲存體連線資訊。
    • 搭配 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. 選取 [使用者設定]用戶設定的功能表命令
    3. 選取 [存取權杖] 索引標籤底下的 [產生新權杖]
    4. 選取產生

    “Generate”按鈕

    儲存存取權杖,以在稍後建立 Databricks 連結服務時使用該存取權杖。 存取權杖看起來如下:dapi32db32cbb4w6eee18b7d87e45exxxxxx

如何使用此範本

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

    線上設定

    • 來源 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

      驗證方法和SAS URL的選取專案

    • 目的地 Blob 連線 - 儲存複製的資料。

      在 [新增連結服務] 視窗中,選取您的接收儲存體 Blob。

      接收記憶體 Blob 作為新的連結服務

    • Azure Databricks - 連線到 Databricks 叢集。

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

      線上到叢集的選項

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

    建立管線

管線簡介和設定

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

  1. 驗證活動可用性旗標中,驗證來源資料集值是否已設定為您稍早建立的 SourceAvailabilityDataset

    源數據集值

  2. 複製資料活動 file-to-blob 中,勾選 [來源] 和 [接收器] 索引標籤。 如有必要,請變更設定。

    • [來源] 索引標籤 來源索引標籤

    • [接收] 索引標籤 [接收] 索引標籤

  3. 筆記本活動轉換中,視需要檢閱並更新路徑和設定。

    Databricks 連結服務應該預先填入來自前一個步驟的值,如下所示:Databricks 連結服務的填入值

    若要檢查 [筆記本] 設定:

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

      Notebook 路徑

    2. 展開 [基礎參數] 選取器,並驗證參數是否符合下列螢幕擷取畫面中顯示的內容。 這些參數會從 Data Factory 傳遞至 Databricks 筆記本。

      基本參數

  4. 驗證管線參數是否符合下列螢幕擷取畫面顯示的內容:管線參數

  5. 連線至您的資料集。

    注意

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

    • SourceAvailabilityDataset - 檢查來源資料是否可用。

      SourceAvailabilityDataset 的鏈接服務和檔案路徑的選取專案

    • SourceFilesDataset - 存取來源資料。

      SourceFilesDataset 的連結服務和檔案路徑的選取專案

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

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

      • 檔案路徑 - sinkdata/staged_sink

        DestinationFilesDataset 的連結服務和檔案路徑的選取專案

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

    從輸出連結至 Databricks 記錄

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

    注意

    為了建立與 Data Factory 管線執行的相互關聯,此範例會將管線執行識別碼從資料處理站附加至輸出資料夾。 這有助於持續追蹤每個執行所產生的檔案。 附加的管線執行標識碼