共用方式為


使用 Azure 資料湖工具 (Azure Data Lake Tools) 於 Visual Studio Code

這很重要

除非您的訂用帳戶已啟用,否則無法再建立新的 Azure Data Lake Analytics 帳戶。 如果您需要啟用訂用帳戶,請連絡支持人員 並提供您的商務案例。

如果您已經使用 Azure Data Lake Analytics,您必須在 2024 年 2 月 29 日前,為貴組織建立 azure Synapse Analytics 移轉計畫。

在本文中,您將瞭解如何使用 Azure Data Lake Tools for Visual Studio Code (VS Code) 來建立、測試及執行 U-SQL 腳本。 下列影片也會涵蓋此資訊:

先決條件

適用於 VS Code 的 Azure Data Lake Tools 支援 Windows、Linux 和 macOS。 U-SQL 本機執行和本機偵錯只能在 Windows 中運作。

針對 macOS 和 Linux:

安裝 Azure Data Lake Tools

安裝必要條件之後,您可以安裝適用於 VS Code 的 Azure Data Lake Tools。

安裝 Azure Data Lake Tools

  1. 開啟 Visual Studio Code。

  2. 選取左窗格中的 [ 擴充功能 ]。 在搜尋方塊中輸入 Azure Data Lake Tools

  3. 選取 [Azure Data Lake Tools] 旁的 [安裝]。

    安裝 Data Lake Tools 的選項

    幾秒鐘后,[ 安裝 ] 按鈕會變更為 [重載]。

  4. 選取 [重載 ] 以啟用 Azure Data Lake Tools 擴充功能。

  5. 選取 [重載視窗 ] 以確認。 您可以在 [延伸模組] 窗格中看到 Azure Data Lake Tools

啟用 Azure Data Lake Tools

建立 .usql 檔案,或開啟現有的 .usql 檔案以啟動擴展名。

使用 U-SQL

若要使用 U-SQL,您需要開啟 U-SQL 檔案或資料夾。

開啟範例腳本

開啟命令選擇區 (Ctrl+Shift+P),然後輸入 ADL:開啟範例腳本。 它會開啟此範例的另一個實例。 您也可以在此實例上編輯、設定及提交腳本。

開啟 U-SQL 項目的資料夾

  1. 從 Visual Studio Code 中,選取 [ 檔案 ] 功能表,然後選取 [ 開啟資料夾]。

  2. 指定資料夾,然後選取 [ 選取資料夾]。

  3. 選取 [ 檔案] 功能表,然後選取 [ 新增]。 Untitled-1 檔案會新增至專案。

  4. 在 Untitled-1 檔案中輸入下列程式代碼:

    @departments  =
        SELECT * FROM
            (VALUES
                (31,    "Sales"),
                (33,    "Engineering"),
                (34,    "Clerical"),
                (35,    "Marketing")
            ) AS
                  D( DepID, DepName );
    

    使用 Outputters.Csv() 輸出 @departments 至 “/Output/departments.csv” :

    腳本會建立 departments.csv 檔案,其中包含 /output 資料夾中的某些數據。

  5. 將檔案儲存為 myUSQL.usql,在已開啟的資料夾中。

編譯 U-SQL 腳本

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。
  2. 輸入 ADL:編譯腳本。 編譯結果會出現在 [輸出 ] 視窗中。 您也可以以滑鼠右鍵按下腳本檔案,然後選取 [ADL:編譯腳本 ] 以編譯 U-SQL 作業。 編譯結果會出現在 [ 輸出 ] 窗格中。

提交 U-SQL 腳本

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。
  2. 輸入 ADL:Submit Job。 您也可以以滑鼠右鍵按下腳本檔案,然後選取 [ADL:提交作業]。

提交U-SQL作業之後,提交記錄會出現在 VS Code 的 [ 輸出 ] 視窗中。 作業檢視會出現在右窗格中。 如果提交成功,作業 URL 也會顯示。 您可以在網頁瀏覽器中開啟作業 URL,以追蹤即時作業狀態。

在作業檢視的 [ 摘要] 索引標籤上,您可以看到作業詳細數據。 主要函式包括重新提交腳本、複製腳本,以及在入口網站中開啟。 在作業檢視的 [DATA] 索引標籤上,您可以參考輸入檔、輸出檔案和資源檔。 檔案可以下載到本機計算機。

作業檢視中的 [摘要] 索引標籤

作業檢視中的數據索引標籤

若要設定預設上下文

如果您尚未個別設定檔案的參數,您可以設定預設內容,將此設定套用至所有腳本檔案。

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。

  2. 輸入 ADL:設定預設內容。 或以滑鼠右鍵按下腳本編輯器,然後選取 [ADL:設定預設內容]。

  3. 選擇您想要的帳戶、資料庫和架構。 此設定會儲存至 xxx_settings.json 組態檔。

    帳戶、資料庫和架構設定為預設內容

設定腳本參數

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。

  2. 輸入 ADL:設定文稿參數

  3. xxx_settings.json 檔案以以下屬性開啟:

    • account:Azure 訂用帳戶底下的 Azure Data Lake Analytics 帳戶,這是編譯和執行 U-SQL 作業所需的帳戶。 編譯和執行 U-SQL 作業之前,您需要設定電腦帳戶。
    • database:您的帳戶下的資料庫。 預設值為 master
    • schema:資料庫底下的架構。 預設值為 dbo
    • optionalSettings
      • priority:優先順序範圍從 1 到 1000,1 為最高優先順序。 預設值為 1000
      • degreeOfParallelism:平行度範圍從 1 到 150。 預設值是您在 Azure Data Lake Analytics 帳戶中可允許的最大平行度。

    JSON 檔案的內容

備註

儲存組態之後,如果您沒有設定預設內容,帳戶、資料庫和架構資訊會出現在對應 .usql 檔案左下角的狀態欄上。

若要設定 Git 忽略

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。

  2. 輸入 ADL: 設定 Git Ignore

    • 如果您的 VS Code 工作資料夾中沒有 .gitIgnore 檔案,則會在您的資料夾中建立名為 .gitIgnore 的檔案。 預設會在檔案中新增四個專案(usqlCodeBehindReferenceusqlCodeBehindGenerated.cacheobj)。 如有需要,您可以進行更多更新。
    • 如果您的 VS Code 工作資料夾中已經有 .gitIgnore 檔案,此工具會在 .gitIgnore 檔案中新增四個專案(usqlCodeBehindReference、usqlCodeBehindGenerated.cacheobj),如果檔案中未包含這四個專案。

    .gitIgnore 檔案中的專案

使用程式代碼後置檔案:C Sharp、Python 和 R

Azure Data Lake Tools 支援多個自定義程式碼。 如需指示,請參閱 在 VS Code 中使用 Python、R 和 C Sharp 開發適用於 Azure Data Lake Analytics 的 U-SQL

使用組件

如需開發元件的資訊,請參閱 開發 Azure Data Lake Analytics 作業的 U-SQL 元件

您可以使用 Data Lake Tools 在 Data Lake Analytics 目錄中註冊自定義程式碼元件。

若要註冊組件

您可以透過 ADL:Register AssemblyADL: Register Assembly (Advanced) 命令來註冊元件。

若要透過ADL:Register Assembly指令進行註冊

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。
  2. 輸入 ADL:組件註冊
  3. 指定本機組件路徑。
  4. 選取 Data Lake Analytics 帳戶。
  5. 選取資料庫。

入口網站會在瀏覽器中開啟,並顯示元件註冊程式。

觸發 ADL:註冊元件 命令的更方便方式是在檔案總管中以滑鼠右鍵按兩下 .dll 檔案。

若要透過 ADL: Register Assembly (Advanced) 命令進行註冊

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。

  2. 輸入 ADL:登錄組件(進階)

  3. 指定在地組件目錄路徑。

  4. JSON 檔案隨即顯示。 視需要檢閱和編輯元件相依性和資源參數。 指示會顯示在 [ 輸出 ] 視窗中。 若要繼續進行元件註冊,請儲存 JSON 檔案(Ctrl+S)。

    具有元件相依性和資源參數的 JSON 檔案

備註

  • Azure Data Lake Tools 會自動偵測 DLL 是否有任何元件相依性。 偵測到相依性之後會顯示在 JSON 檔案中。
  • 您可以上傳 DLL 資源(例如,.txt、.png和 .csv),作為元件註冊的一部分。

另一個觸發 ADL: Register Assembly (Advanced) 命令的方法,是在 [檔案總管] 中以滑鼠右鍵按兩下 .dll 檔案。

下列 U-SQL 程式碼示範如何呼叫組件。 在範例中,元件名稱是 測試

REFERENCE ASSEMBLY [test];
@a =
    EXTRACT
        Iid int,
    Starts DateTime,
    Region string,
    Query string,
    DwellTime int,
    Results string,
    ClickedUrls string
    FROM @"Sample/SearchLog.txt"
    USING Extractors.Tsv();
@d =
    SELECT DISTINCT Region
    FROM @a;
@d1 =
    PROCESS @d
    PRODUCE
        Region string,
    Mkt string
    USING new USQLApplication_codebehind.MyProcessor();
OUTPUT @d1
    TO @"Sample/SearchLogtest.txt"
    USING Outputters.Tsv();

Windows 使用者可使用 U-SQL 進行本機執行及本機偵錯

U-SQL 本機執行會先測試本機數據,並在本機驗證腳本,再將程式代碼發佈至 Data Lake Analytics。 您可以在將程式代碼提交至 Data Lake Analytics 之前,使用本機偵錯功能完成下列工作:

  • 偵錯您的 C# 後端程式碼。
  • 逐步執行程式碼。
  • 在本機驗證您的腳本。

本機執行和本機偵錯功能僅適用於 Windows 環境,且不支援 macOS 和 Linux作系統。

如需本機執行和本機偵錯的指示,請參閱 使用Visual Studio Code 執行 U-SQL 本機執行和本機偵錯

連線到 Azure

您必須先連線到 Azure 帳戶,才能在 Data Lake Analytics 中編譯和執行 U-SQL 腳本。

使用命令來連線到 Azure

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區。

  2. 輸入 ADL:Login。 登入資訊會出現在右下角。

    輸入登入命令

    關於登入和驗證的通知

  3. 選取 [複製與開啟 ] 以開啟 登入網頁。 將程式代碼貼到方塊中,然後選取 [ 繼續]。

    登入網頁

  4. 請依照指示從網頁登入。 連線時,您的 Azure 帳戶名稱會出現在 VS Code 視窗左下角的狀態列上。

備註

  • 如果您未註銷,Data Lake Tools 會在下次自動將您登入。
  • 如果您的帳戶已啟用兩個因素,建議您使用手機驗證,而不是使用 PIN。

若要註銷,請輸入 ADL:註銷命令。

從總管連線到 Azure

展開 [AZURE DATALAKE],選取 [ 登入 Azure],然後遵循使用 命令連線至 Azure 的步驟 3 和步驟 4。

瀏覽器中的 [登入 Azure] 選項

您無法從檔案總管登出。 若要註銷,請參閱 使用 命令連線到 Azure

建立擷取腳本

您可以使用 ADL:建立 EXTRACT 腳本 指令,或從 Azure Data Lake 總管建立 .csv、.tsv 和 .txt 檔案的擷取腳本。

要使用命令建立提取腳本

  1. 選取 Ctrl+Shift+P 以開啟命令選擇區,然後輸入 ADL:Create EXTRACT Script
  2. 指定 Azure 記憶體檔案的完整路徑,然後選取 Enter 鍵。
  3. 選取一個帳戶。
  4. 針對 .txt 檔案,選取分隔符以擷取檔案。

建立擷取腳本的程式

擷取腳本會根據您的項目產生。 對於無法偵測數據行的腳本,請從兩個選項中選擇一個。 如果沒有,則只會產生一個腳本。

建立擷取腳本的結果

從檔案總管建立擷取腳本

另一個建立擷取腳本的方法,是透過 Azure Data Lake Store 或 Azure Blob 儲存中的 .csv、.tsv 或 .txt 檔案的右鍵選單(快捷功能表)。

快捷方式選單中的 [建立 EXTRACT 腳本] 命令

後續步驟