整合 Azure 資料總管與 Azure Data Factory
Azure Data Factory (ADF) 是雲端式數據整合服務,可讓您整合不同的數據存放區,並在數據上執行活動。 ADF 可讓您建立數據驅動工作流程,以協調及自動化數據移動和數據轉換。 Azure Data Explorer 是 Azure Data Factory 中支援的其中一個數據存放區。
適用於 Azure Data Explorer 的 Azure Data Factory 活動
Azure Data Explorer 使用者可以使用各種與 Azure Data Factory 整合:
複製活動
Azure Data Factory 複製活動 可用來在數據存放區之間傳輸數據。 Azure Data Explorer 支援作為來源,其中數據會從 Azure Data Explorer 複製到任何支援的數據存放區,而接收則會將數據從任何支持的數據存放區複製到 Azure Data Explorer。 如需詳細資訊,請參閱使用 Azure Data Factory 將數據複製到 Azure Data Explorer 或從中複製數據。 如需詳細的逐步解說,請參閱將數據從 Azure Data Factory 載入 Azure Data Explorer。 Azure IR (Integration Runtime) 支援 Azure IR Data Explorer、在 Azure 內複製數據時使用,以及從內部部署或具有訪問控制的數據存放區將數據複製到內部部署或網路中的數據存放區時使用,例如 Azure 虛擬網路。 如需詳細資訊,請參閱 要使用的 IR。
提示
使用複製活動並建立連結服務或數據集時,請選取數據存放區 Azure Data Explorer (Kusto) ,而不是舊的數據存放區 Kusto。
查閱活動
查閱活動用於在 Azure Data Explorer 上執行查詢。 查詢的結果會當做查閱活動的輸出傳回,而且可以在管線的下一個活動中使用,如 ADF 查閱檔中所述。
除了回應大小限制為 5,000 個數據列和 2 MB 之外,活動也有 1 小時的查詢逾時限制。
命令活動
Command 活動允許執行 Azure Data Explorer 管理命令。 不同於查詢,管理命令可能會修改資料或元數據。 某些管理命令的目標為將資料內嵌至 Azure Data Explorer,使用 或 .ingest
.set-or-append
) 之類的命令,或使用 之類的.export
命令將數據從 Azure Data Explorer 複製到外部資料存放區。
如需命令活動的詳細逐步解說,請參閱使用 Azure Data Factory 命令活動來執行 Azure Data Explorer 管理命令。 使用管理命令來複製數據,有時比 複製活動 更快又便宜的選項。 若要判斷何時要使用 Command 活動與 複製活動,請參閱在複製數據時選取 [複製] 和 [命令活動]。
從資料庫範本大量複製
使用 Azure Data Factory 範本從資料庫大量複製到 Azure Data Explorer 是預先定義的 Azure Data Factory 管線。 範本可用來建立每個資料庫或每個數據表的許多管線,以加快數據複製的速度。
對應資料流程
Azure Data Factory 對應數據流是可視化設計的數據轉換,可讓數據工程師在不撰寫程式代碼的情況下開發圖形化數據轉換邏輯。 若要建立數據流,並將數據內嵌至 Azure Data Explorer,請使用下列方法:
- 建立 對應數據流。
- 將數據匯出至 Azure Blob。
- 定義事件方格或ADF複製活動,以將資料內嵌至 Azure Data Explorer。
在複製資料時選取 [複製] 和 [Azure Data Explorer 命令活動]
本節可協助您為數據複製需求選取正確的活動。
從 Azure Data Explorer 複製資料或將資料複製到 Azure Data Explorer 時,Azure Data Factory 中有兩個可用的選項:
- 複製活動。
- Azure Data Explorer 命令活動,它會執行其中一個管理命令,以在 Azure Data Explorer 中傳輸數據。
從 Azure Data Explorer 複製數據
您可以使用複製活動或 .export
命令,從 Azure Data Explorer 複製數據。 命令 .export
會執行查詢,然後匯出查詢的結果。
如需從 Azure Data Explorer 複製資料的 複製活動 和.export
命令的比較,請參閱下表。
複製活動 | .export 命令 | |
---|---|---|
流程描述 | ADF 會在 Kusto 上執行查詢、處理結果,並將它傳送至目標數據存放區。 (Azure Data Explorer ADF > 接收資料存放區) > |
ADF 會將.export 管理命令傳送至 Azure Data Explorer,以執行命令,並將數據直接傳送至目標數據存放區。 (** Azure Data Explorer > 接收數據存放區**) |
支援的目標數據存放區 | 各種 支持的數據存放區 | ADLSv2、Azure Blob、SQL Database |
效能 | 集中式 |
|
伺服器限制 | 查詢限制 可以擴充/停用。 根據預設,ADF 查詢包含:
|
根據預設,擴充或停用查詢限制:
|
提示
如果您的複製目的地是命令支援的.export
其中一個數據存放區,而且如果沒有任何 複製活動 功能對您的需求很重要,請選取.export
命令。
將數據複製到 Azure Data Explorer
您可以使用複製活動或擷取命令將數據複製到 Azure Data Explorer,例如從查詢擷取 (.set-or-append
、、.set-or-replace
、.set
、 .replace)
和從記憶體擷取 (.ingest
) 。
如需 複製活動的比較,請參閱下表,並擷取命令以將數據複製到 Azure Data Explorer。
複製活動 | 從查詢內嵌.set-or-append / .set-or-replace / .set / .replace |
從儲存體內嵌.ingest |
|
---|---|---|---|
流程描述 | ADF 會從源數據存放區取得數據、將其轉換成表格式格式,並執行必要的架構對應變更。 ADF 接著會將數據上傳至 Azure Blob、將其分割成區塊,然後下載 Blob 以將它們內嵌到 Azure Data Explorer 數據表。 (源數據存放區 > ADF > Azure Blob > Azure Data Explorer) |
這些命令可以執行查詢或.show 命令,並將查詢的結果擷取至數據表, (Azure Data Explorer Azure Data Explorer >) 。 |
此命令會藉由從一或多個雲端記憶體成品「提取」數據,將數據擷取到數據表中。 |
支援的源數據存放區 | 各種選項 | ADLS Gen 2、Azure Blob、SQL (使用 sql_request () 外掛程式) 、使用 cosmosdb_sql_request 外掛程式 (Azure Cosmos DB) ,以及提供 HTTP 或 Python API 的任何其他數據存放區。 | 文件系統、Azure Blob 儲存體、ADLS Gen 1、ADLS Gen 2 |
效能 | 擷取會排入佇列和管理,這可確保小型擷取並確保高可用性,方法是提供負載平衡、重試和錯誤處理。 |
|
|
伺服器限制 |
|
|
|
提示
- 將數據從ADF複製到 Azure 時 Data Explorer 使用
ingest from query
命令。 - 對於大型數據集 (>1GB) ,請使用 複製活動。
必要權限
下表列出與 Azure Data Factory整合中各種步驟的必要許可權。
步驟 | 作業 | 最低層級的許可權 | 備註 |
---|---|---|---|
建立連結服務 | 資料庫導覽 | 資料庫查看器 使用ADF的登入使用者應獲得授權,以讀取資料庫元數據。 |
用戶可以手動提供資料庫名稱。 |
[測試連接] | 資料庫監視器 或 數據表擷取器 服務主體應獲得授權,以執行資料庫層級 .show 命令或數據表層級擷取。 |
|
|
建立數據集 | 數據表導覽 | 資料庫監視器 使用ADF登入的用戶必須獲得授權,才能執行資料庫層級 .show 命令。 |
用戶可以手動提供數據表名稱。 |
建立數據集 或 複製活動 | 預覽資料 | 資料庫查看器 服務主體必須經過授權,才能讀取資料庫元數據。 |
|
匯入結構描述 | 資料庫查看器 服務主體必須經過授權,才能讀取資料庫元數據。 |
當 Azure Data Explorer 是表格式到表格式複製的來源時,ADF 會自動匯入架構,即使使用者未明確匯入架構也一樣。 | |
Azure Data Explorer 作為接收 | 建立依名稱的數據行對應 | 資料庫監視器 服務主體必須獲得授權,才能執行資料庫層級 .show 命令。 |
|
|
數據表擷取器 或 資料庫管理員 服務主體必須經過授權,才能對數據表進行變更。 |
||
內嵌資料 | 數據表擷取器 或 資料庫管理員 服務主體必須經過授權,才能對數據表進行變更。 |
||
作為來源的 Azure 資料總管 | 執行查詢 | 資料庫查看器 服務主體必須經過授權,才能讀取資料庫元數據。 |
|
Kusto 命令 | 根據每個命令的許可權層級。 |
效能
如果 Azure Data Explorer 是來源,而且您使用包含查詢的查閱、複製或命令活動,請參閱效能資訊的查詢最佳做法和複製活動的 ADF 檔。
本節說明使用 Azure Data Explorer 是接收的複製活動。 Azure Data Explorer 接收的估計輸送量為 11-13 MBps。 下表詳細說明影響 Azure Data Explorer 接收效能的參數。
參數 | 注意 |
---|---|
元件地理鄰近性 | 將所有元件放在相同的區域中:
|
DIU 數目 | ADF 每四個 DIU 一個 VM。 只有當來源是具有多個檔案的檔案型存放區時,增加 DIU 才有説明。 然後,每個 VM 會以平行方式處理不同的檔案。 因此,複製單一大型檔案的延遲高於複製多個較小的檔案。 |
Azure Data Explorer 叢集的數量和 SKU | 大量 Azure Data Explorer 節點可提升擷取處理時間。 使用開發 SKU 將會嚴重限制效能 |
平行處理原則 | 若要從資料庫複製大量數據,請分割您的數據,然後使用 ForEach 迴圈平行複製每個分割區,或使用從資料庫大量複製至 Azure Data Explorer 範本。 注意:複製活動 中的設定>平行處理原則程度與 Azure Data Explorer 無關。 |
數據處理複雜度 | 延遲會根據來源檔格式、數據行對應和壓縮而有所不同。 |
執行整合運行時間的 VM |
|
秘訣和常見陷阱
監視活動進度
監視活動進度時, 數據寫入 屬性可能會大於 數據讀取 屬性,因為 數據讀取 是根據二進位檔大小計算,而 寫入的數據 則是根據記憶體內部大小計算,在數據還原串行化並解壓縮之後。
監視活動進度時,您可以看到數據已寫入 Azure Data Explorer 接收。 查詢 Azure Data Explorer 資料表時,您會看到數據尚未抵達。 這是因為複製到 Azure Data Explorer 時有兩個階段。
- 第一個階段會讀取源數據、將其分割為 900 MB 區塊,並將每個區塊上傳至 Azure Blob。 ADF 活動進度檢視會看到第一個階段。
- 一旦所有數據上傳至 Azure Blob,第二個階段就會開始。 叢集的節點會下載 Blob,並將數據擷取至接收數據表。 然後,數據會顯示在 Azure Data Explorer 資料表中。
由於逸出不當而無法內嵌 CSV 檔案
Azure Data Explorer 預期 CSV 檔案與 RFC 4180 一致。 其預期如下:
- 包含需要逸出 (的字段,例如 “ 和新的行,) 應該以 ” 字元開頭和結尾,不含空格符。 欄位內的所有 「 字元都會使用雙精度浮點數 」 字元 (「) 逸出。 例如 ,「Hello, 」「World」是 具有單一數據行或欄位且內容 為 Hello, “World” 的單一記錄的有效 CSV 檔案。
- 檔案中的所有記錄必須具有相同數目的數據行和欄位。
Azure Data Factory 允許反斜杠 (逸出) 字元。 如果您使用 Azure Data Factory 產生具有反斜杠字元的 CSV 檔案,將檔案擷取至 Azure Data Explorer 將會失敗。
範例
下列文字值:Hello, “World”
ABC DEF
“ABC\D”EF
“ABC DEF
應該會出現在適當的 CSV 檔案中,如下所示:“Hello, ”“World””
“ABC DEF”
“”“ABC\D”“EF”
“”“ABC DEF”
使用默認逸出字元 (反斜杠) ,下列 CSV 將無法與 Azure Data Explorer 搭配使用:“Hello, ”World“”
“ABC DEF”
“”ABC\D“EF”
“”ABC DEF”
巢狀 JSON 物件
將 JSON 檔案複製到 Azure Data Explorer 時,請注意:
- 不支援數位。
- 如果您的 JSON 結構包含對象資料類型,Azure Data Factory 將會扁平化物件的子專案,並嘗試將每個子項目對應至 Azure Data Explorer 數據表中的不同數據行。 如果您希望整個物件項目對應至 Azure 中的單一資料行 Data Explorer:
- 將整個 JSON 資料列內嵌至 Azure Data Explorer 中的單一動態數據行。
- 使用 Azure Data Factory的 JSON 編輯器手動編輯管線定義。 在 對應中
- 拿掉針對每個子專案建立的多個對應,並新增單一對應,將物件類型對應至數據表數據行。
- 在右方括弧後面新增逗號,後面接著:
"mapComplexValuesToString": true
.
複製到 Azure Data Explorer 時指定其他屬性
您可以在管線的複製活動中指定它們,以新增其他 擷取屬性 。
若要新增屬性
在 [Azure Data Factory] 中,選取 [撰寫鉛筆] 工具。
在 [管線] 下,選取您要在其中新增其他擷取屬性的管線。
在 [ 活動] 畫布中,選取 [ 複製數據 ] 活動。
在活動詳細數據中,選取 [ 接收],然後展開 [其他屬性]。
選取 [ 新增],選取 [ 視需要新增節點 ] 或 [ 新增陣列 ],然後指定擷取屬性名稱和值。 重複此步驟以新增更多屬性。
完成儲存併發佈管線之後。
後續步驟
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應