使用 Azure Data Factory 命令活動來執行 Azure 數據總管管理命令
Azure Data Factory (ADF) 是雲端式數據整合服務,可讓您對數據執行活動的組合。 使用ADF建立數據驅動工作流程,以協調及自動化數據行動和資料轉換。 Azure Data Factory 中的 Azure 數據總管命令活動可讓您在 ADF 工作流程中執行 Azure 數據總管管理命令。 本文將教導您如何建立具有查閱活動的管線,以及包含 Azure 數據總管命令活動的 ForEach 活動。
必要條件
- Azure 訂用帳戶。 建立免費的 Azure 帳戶。
- Azure 資料總管叢集和資料庫。 建立叢集和資料庫。
- 數據源。
- 數據處理站。 建立數據處理站。
建立新管線
選取 [ 撰寫 鉛筆] 工具。
選取 + ,然後從下拉式清單中選取 [管線],以建立新的管線 。
建立查閱活動
查閱活動可以從任何 Azure Data Factory 支援的數據源擷取數據集。 Lookup 活動的輸出可用於 ForEach 或其他活動。
在 [活動] 窗格的 [一般] 底下,選取 [查閱] 活動。 將它拖放到右側的主要畫布。
畫布現在包含您建立的查閱活動。 使用畫布下方的索引標籤來變更任何相關參數。 在 [一般] 中,重新命名活動。
提示
按兩下空白畫布區域以檢視管線屬性。 使用 [ 一般] 索引標籤來重新命名管線。 我們的管線名為 pipeline-4-docs。
在查閱活動中建立 Azure 數據總管數據集
在 [設定] 中,選取您預先建立的 Azure 數據總管來源數據集,或選取 [+ 新增] 以建立新的數據集。
從 [新增數據集] 視窗選取 [Azure 數據總管] [Kusto] 數據集。 選取 [ 繼續] 以新增數據集。
新的 Azure 資料總管數據集參數會顯示在 [設定] 中。 若要更新參數,請選取 [ 編輯]。
AzureDataExplorerTable 新索引標籤會在主要畫布中開啟。
- 選取 [ 一般 ],然後編輯數據集名稱。
- 選取 [ 連線 ] 以編輯資料集屬性。
- 從下拉式清單中選取 [鏈接服務],或選取 [+ 新增] 以建立新的鏈接服務。
建立新的鏈接服務時,[ 新增鏈接服務][Azure 數據總管] 頁面隨即開啟:
- 選取 [Azure 數據總管] 連結服務的名稱。 視需要新增 描述 。
- 在 [透過整合運行時間連線] 中,視需要變更目前的設定。
- 在 [帳戶選取方法] 中,使用下列兩種方法之一來選取您的叢集:
- 選取 [ 從 Azure 訂用 帳戶] 單選按鈕,然後選取您的 Azure 訂 用帳戶帳戶。 然後,選取您的 叢集。 請注意,下拉式清單只會列出屬於使用者的叢集。
- 請改為選取 [ 手動輸入] 單選按鈕,然後輸入您的 端點 (叢集 URL)。
- 指定租 使用者。
- 輸入 服務主體標識碼。 您可以在應用程式註冊>概觀>應用程式 (用戶端) 識別子下的 [Azure 入口網站 中找到此值。 主體必須具有適當的許可權,根據所使用的命令所需的許可權等級。
- 選取 [服務主體金鑰 ] 按鈕,然後輸入 服務主體金鑰。
- 從下拉功能表中選取您的 資料庫 。 或者,選取 [ 編輯] 複選框,然後輸入您的資料庫名稱。
- 選取 [ 測試連線 ] 以測試您所建立的連結服務連線。 如果您可以連線到您的設定,將會顯示綠色複選標記 [連線成功 ]。
- 選取 [完成 ] 以完成鏈接的服務建立。
設定連結服務之後,請在 AzureDataExplorerTable>連線中新增數據表名稱。 選取 [預覽數據],以確定數據已正確呈現。
您的數據集現已就緒,您可以繼續編輯管線。
將查詢新增至查閱活動
在 pipeline-4-docs>[設定 ] 中,於 [查詢] 文本框中新增查詢 ,例如:
ClusterQueries | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb") | summarize count() by Database
視需要變更 [查詢逾時] 或 [無截斷] 和 [第一個數據列] 屬性。 在此流程中,我們會保留預設 的查詢逾時 ,然後取消核取複選框。
建立 For-Each 活動
For-Each 活動可用來逐一查看集合,並在迴圈中執行指定的活動。
現在,您會將 For-Each 活動新增至管線。 此活動會處理查閱活動傳回的數據。
在 [活動] 窗格的 [反復專案和條件式] 下,選取 [ForEach] 活動,然後將它拖放到畫布中。
在查閱活動的輸出與畫布中 ForEach 活動的輸入之間繪製線條,以連接它們。
選取畫布中的 ForEach 活動。 在下方的 [ 設定] 索引標籤中:
核取 [ 循序 ] 複選框,以取得查閱結果的循序處理,或將它取消核取以建立平行處理。
設定 Batch 計數。
在 Items 中,提供下列輸出值的參考: @activity('Lookup1')。output.value
在 ForEach 活動中建立 Azure 數據總管命令活動
按兩下畫布中的 ForEach 活動,在新的畫布中開啟它,以指定 ForEach 內的活動。
在 [活動] 窗格的 [Azure 數據總管] 底下,選取 [Azure 數據總管命令] 活動,然後將它拖放到畫布中。
在 [連線] 索引標籤中,選取先前建立的相同連結服務。
在 [命令] 索引標籤中,提供下列命令:
.export async compressed into csv h"http://<storageName>.blob.core.windows.net/data/ClusterQueries;<storageKey>" with ( sizeLimit=100000, namePrefix=export ) <| ClusterQueries | where Database == "@{item().Database}"
命令會指示 Azure 資料總管以壓縮格式將指定查詢的結果匯出至 Blob 記憶體。 它會以異步方式執行(使用異步修飾詞)。 查詢會尋址查閱活動結果中每個數據列的資料庫數據行。 命令逾 時 可以保持不變。
注意
命令活動有下列限制:
- 大小限制:1 MB 回應大小
- 時間限制:20 分鐘(預設值)、1 小時(最大值)。
- 如有需要,您可以使用 AdminThenQuery 將查詢附加至結果,以減少產生的大小/時間。
現在管線已就緒。 您可以按下管線名稱,回到主要管線檢視。
發佈管線之前,請選取 [ 偵 錯]。 您可以在 [輸出] 索引標籤中監視管線進度。
您可以 發佈全部 ,然後 新增觸發程式 以執行管線。
管理命令輸出
命令活動輸出的結構如下所述。 管線中的下一個活動可以使用此輸出。
非異步管理命令的傳回值
在非異步管理命令中,傳回值的結構類似於查閱活動結果的結構。 欄位 count
表示傳回的記錄數目。 固定數位包含 value
記錄清單。
{
"count": "2",
"value": [
{
"ExtentId": "1b9977fe-e6cf-4cda-84f3-4a7c61f28ecd",
"ExtentSize": 1214.0,
"CompressedSize": 520.0
},
{
"ExtentId": "b897f5a3-62b0-441d-95ca-bf7a88952974",
"ExtentSize": 1114.0,
"CompressedSize": 504.0
}
]
}
異步管理命令的傳回值
在異步管理命令中,活動會在幕後輪詢作業數據表,直到異步作業完成或逾時為止。因此,傳回的值將會包含該指定 OperationId 屬性的結果.show operations OperationId
。 檢查 [狀態] 和 [狀態] 屬性的值,以確認作業成功完成。
{
"count": "1",
"value": [
{
"OperationId": "910deeae-dd79-44a4-a3a2-087a90d4bb42",
"Operation": "TableSetOrAppend",
"NodeId": "",
"StartedOn": "2019-06-23T10:12:44.0371419Z",
"LastUpdatedOn": "2019-06-23T10:12:46.7871468Z",
"Duration": "00:00:02.7500049",
"State": "Completed",
"Status": "",
"RootActivityId": "f7c5aaaf-197b-4593-8ba0-e864c94c3c6f",
"ShouldRetry": false,
"Database": "MyDatabase",
"Principal": "<some principal id>",
"User": "<some User id>"
}
]
}
相關內容
- 使用 Azure Data Factory 將數據複製到 Azure 數據總管。
- 從資料庫大量複製到 Azure 數據總管的 Azure Data Factory 範本。