適用於:
Azure Data Factory
Azure Synapse Analytics
秘訣
關於 Microsoft Fabric 中資料工廠中等效的活動,請參見 KQL 活動。
本文說明如何在 Azure Data Factory 與 Synapse Analytics 管線中利用複製活動,將資料複製至或從 Azure Data Explorer。 本文係以複製活動概觀一文為基礎,該文提供複製活動的一般概觀。
附註
此連接器也可在 Microsoft Fabric 的 Data Factory 中取得。 關於Fabric專屬的設定與功能,請參閱 Fabric Azure Data Explorer 連接器文件。
秘訣
想了解更多關於Azure Data Explorer與服務整合的資訊,通常請閱讀 整合 Azure Data Explorer。
支援的功能
此 Azure Data Explorer 連接器支援以下功能:
| 支援的功能 | IR |
|---|---|
| 複製活動 (來源/接收) | (1)(2) |
| 對應資料流 (來源/接收) | ① |
| 查閱活動 | (1)(2) |
(1) Azure 整合執行時 (2) 自架整合執行時
你可以從任何支援的來源資料儲存庫複製資料到 Azure Data Explorer。 你也可以將 Azure Data Explorer 的資料複製到任何支援的匯入資料庫。 如需複製活動支援作為來源或接收器的資料存放區清單,請參閱支援的資料存放區資料表。
附註
在版本 3.14 及以上版本中,支援使用自我代管整合執行階段,透過本地資料儲存庫將資料複製至或從 Azure Data Explorer。
使用 Azure Data Explorer 連接器,您可以做以下操作:
- 使用服務主體搭配 Microsoft Entra 應用程式權杖驗證來複製資料。
- 作為來源時,請使用 KQL (Kusto) 查詢擷取資料。
- 作為接收時,請將資料附加至目的地資料表。
開始使用
秘訣
如需了解 Azure Data Explorer 連接器的操作,請參見 將資料複製至/從 Azure Data Explorer 以及 從資料庫批量複製至 Azure Data Explorer。
若要透過管線執行複製活動,您可以使用下列其中一個工具或 SDK:
使用 UI 建立連結至 Azure 資料總管的服務
請依照以下步驟在 Azure 入口網站介面中建立與 Azure Data Explorer 的連結服務。
請瀏覽 Azure Data Factory 或 Synapse 工作區的「管理」標籤,選擇「連結服務」,然後選擇「新建服務」:
搜尋 Explorer,並選擇 Azure Data Explorer (Kusto) 連接器。
Azure Data Explorer(Kusto)連接器截圖。
設定服務詳細資料,測試連線,然後建立新的連結服務。
連接器設定詳細資料
以下章節將詳細說明用於定義 Azure Data Explorer 連接器特定實體的屬性。
連結服務屬性
Azure Data Explorer 連接器支援以下認證類型。 如需詳細資訊,請參閱對應章節:
服務主體驗證
若要使用服務主體驗證,請遵循下列步驟來取得服務主體並授與權限:
向 Microsoft 身分識別平台 註冊應用程式。 欲了解如何,請參閱 快速入門:在 Microsoft 身分識別平台 上註冊應用程式。 請記下這些值,以便用於定義連結服務:
- 應用程式識別碼
- 應用程式金鑰
- 租用戶識別碼
在 Azure Data Explorer 中授予服務主體正確的權限。 有關角色與權限及權限管理的詳細資訊,請參閱 管理Azure Data Explorer資料庫權限。 一般而言,您必須:
- 作為來源,至少將資料庫檢視者角色授與您的資料庫
- 作為接收器,至少將資料庫使用者角色授與您的資料庫
附註
當你用 UI 來製作時,預設你的登入使用者帳號會用來列出 Azure Data Explorer 的叢集、資料庫和資料表。 你可以選取重新整理按鈕旁的下拉式選單,使用服務主體列出物件;如果你沒有執行這些作業的權限,也可以手動輸入名稱。
以下屬性支援 Azure Data Explorer 連結服務:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | type 屬性必須設定為 AzureDataExplorer。 | 是的 |
| 端點 | Azure Data Explorer叢集的端點網址,格式為 https://<clusterName>.<regionName>.kusto.windows.net。 |
是的 |
| 資料庫 | 資料庫名稱。 | 是的 |
| 用戶 | 指定您的應用程式所在租用戶的資訊 (網域名稱或租用戶識別碼)。 這在Kusto 連接字串中稱為「權威識別碼」。 請將滑鼠指標懸停在 Azure 入口網站右上角,取得它。 | 是的 |
| servicePrincipalId | 指定應用程式的用戶端識別碼。 這在 Kusto 連接字串 中稱為「Microsoft Entra應用程式用戶端 ID」。 | 是的 |
| servicePrincipalKey | 指定應用程式的金鑰。 這在 Kusto 連接字串中稱為「Microsoft Entra 應用程式金鑰」。 將此欄位標記為 SecureString以安全儲存,或將其設為參考,引用儲存在 Azure Key Vault 中的安全資料。 | 是的 |
| connectVia | 用來連線到資料存放區的整合執行階段。 如果您的資料儲存在私人網路中,可以使用 Azure 整合執行環境或是自架整合執行環境。 若未指定,則使用預設的 Azure 整合執行環境。 | 否 |
範例:使用服務主體金鑰驗證
{
"name": "AzureDataExplorerLinkedService",
"properties": {
"type": "AzureDataExplorer",
"typeProperties": {
"endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
"database": "<database name>",
"tenant": "<tenant name/id e.g. microsoft.onmicrosoft.com>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalKey": {
"type": "SecureString",
"value": "<service principal key>"
}
}
}
}
系統指派的受控身分識別驗證
欲了解更多關於Azure資源的受管理身份,請參閱 Managed Identitys for Azure resources。
若要使用系統指派的受控識別驗證,請遵循下列步驟來授與權限:
複製與處理站或 Synapse 工作區一起產生的受控識別物件識別碼,藉此擷取受控識別資訊。
在 Azure Data Explorer 中授予該管理身份正確的權限。 有關角色與權限及權限管理的詳細資訊,請參閱 管理Azure Data Explorer資料庫權限。 一般而言,您必須:
- 作為來源,將資料庫檢視者角色授與您的資料庫。
- 作為接收器,將資料庫擷取者和資料庫檢視者角色授與您的資料庫。
附註
當你使用 UI 來撰寫時,你的登入使用者帳號會被用來列出 Azure Data Explorer 的叢集、資料庫和資料表。 如果您沒有這些作業的權限,請手動輸入名稱。
以下屬性支援 Azure Data Explorer 連結服務:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | type 屬性必須設定為 AzureDataExplorer。 | 是的 |
| 端點 | Azure Data Explorer叢集的端點網址,格式為 https://<clusterName>.<regionName>.kusto.windows.net。 |
是的 |
| 資料庫 | 資料庫名稱。 | 是的 |
| connectVia | 用來連線到資料存放區的整合執行階段。 如果您的資料儲存在私人網路中,可以使用 Azure 整合執行環境或是自架整合執行環境。 若未指定,則使用預設的 Azure 整合執行環境。 | 否 |
範例:使用系統指派的受控識別驗證
{
"name": "AzureDataExplorerLinkedService",
"properties": {
"type": "AzureDataExplorer",
"typeProperties": {
"endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
"database": "<database name>",
}
}
}
使用者指派的受控身分識別驗證
欲了解更多關於 Azure 資源的受管理身分,請參閱 Azure 資源的受管理身分
若要使用使用者指派的受控識別驗證,請依照下列步驟操作:
建立一個或多個由使用者指派的受管理身份並在Azure Data Explorer中授予權限。 有關角色與權限及權限管理的詳細資訊,請參閱 管理Azure Data Explorer資料庫權限。 一般而言,您必須:
- 作為來源,至少將資料庫檢視者角色授與您的資料庫
- 作為接收器,至少將資料庫擷取者角色授與您的資料庫
將一或多個使用者指派的受控識別指派給 Data Factory 或 Synapse 工作區,並為每個使用者指派的受控識別建立認證。
以下屬性支援 Azure Data Explorer 連結服務:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | type 屬性必須設定為 AzureDataExplorer。 | 是的 |
| 端點 | Azure Data Explorer叢集的端點網址,格式為 https://<clusterName>.<regionName>.kusto.windows.net。 |
是的 |
| 資料庫 | 資料庫名稱。 | 是的 |
| 憑證 | 將使用者指派的受控身分識別指定為認證物件。 | 是的 |
| connectVia | 用來連線到資料存放區的整合執行階段。 如果您的資料儲存在私人網路中,可以使用 Azure 整合執行環境或是自架整合執行環境。 若未指定,則使用預設的 Azure 整合執行環境。 | 否 |
範例:使用使用者指派的受控識別驗證
{
"name": "AzureDataExplorerLinkedService",
"properties": {
"type": "AzureDataExplorer",
"typeProperties": {
"endpoint": "https://<clusterName>.<regionName>.kusto.windows.net ",
"database": "<database name>",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
}
}
}
資料集屬性
如需定義資料集的區段和屬性完整清單,請參閱資料集。 本節列出 Azure Data Explorer 資料集所支援的屬性。
若要將資料複製到 Azure Data Explorer,請將資料集的 type 屬性設為 AzureDataExplorerTable。
以下是支援的屬性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | type 屬性必須設定為 AzureDataExplorerTable。 | 是的 |
| 表格 | 連結服務所參考的資料表名稱。 | Yes (接收):No (來源) |
資料集屬性範例:
{
"name": "AzureDataExplorerDataset",
"properties": {
"type": "AzureDataExplorerTable",
"typeProperties": {
"table": "<table name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Azure Data Explorer linked service name>",
"type": "LinkedServiceReference"
}
}
}
複製活動屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線和活動。 本節提供 Azure Data Explorer 所支援的來源、接收器和屬性清單。
Azure Data Explorer 作為數據來源
若要從 Azure Data Explorer 複製資料,請將複製活動來源中的 type 屬性設為 AzureDataExplorerSource。 複製活動的 source 區段支援下列屬性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 複製活動來源的 type 屬性必須設定為:AzureDataExplorerSource | 是的 |
| 查詢 | KQL 格式中指定的唯讀要求。 使用自訂的 KQL 查詢作為參考。 | 是的 |
| queryTimeout | 查詢要求逾時之前的等候時間。預設值為 10 分鐘 (00:10:00);允許的最大值為 1 小時 (01:00:00)。 | 否 |
| noTruncation | 指出是否要截斷傳回的結果集。 根據預設,結果會在 500,000 筆記錄或 64 MB 之後截斷。 強烈建議截斷,以確保活動的正確行為。 | 否 |
附註
預設情況下,Azure Data Explorer 來源的大小限制為 500,000 筆紀錄或 64 MB。 若要擷取所有記錄而不截斷,您可以在查詢開頭指定 set notruncation;。 如需詳細資訊,請參閱查詢限制。
範例︰
"activities":[
{
"name": "CopyFromAzureDataExplorer",
"type": "Copy",
"typeProperties": {
"source": {
"type": "AzureDataExplorerSource",
"query": "TestTable1 | take 10",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
},
"inputs": [
{
"referenceName": "<Azure Data Explorer input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
]
}
]
Azure Data Explorer 作為資料接收端
要將資料複製到 Azure Data Explorer,請在複製活動匯款中將 type 屬性設為 AzureDataExplorerSink。 複製活動的 sink 區段支援下列屬性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 複製活動接收器的 type 屬性必須設定為:AzureDataExplorerSink。 | 是的 |
| ingestionMappingName | Kusto 資料表上預先建立的對應名稱。 要將欄位從來源映射到 Azure Data Explorer(適用於 所有支援的來源儲存和格式,包括 CSV/JSON/Avro 格式),您可以使用複製活動中的 欄位映射(按名稱隱式或按配置顯式)及/或 Azure Data Explorer 的映射。 | 否 |
| additionalProperties | 一個屬性包,可以用來指定尚未被 Azure Data Explorer Sink 設定的任何擷取屬性。 具體而言,其可以用於指定擷取標籤。 更多資訊請參考 Azure 資料探索資料擷取文件。 | 否 |
範例︰
"activities":[
{
"name": "CopyToAzureDataExplorer",
"type": "Copy",
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureDataExplorerSink",
"ingestionMappingName": "<optional Azure Data Explorer mapping name>",
"additionalProperties": {<additional settings for data ingestion>}
}
},
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure Data Explorer output dataset name>",
"type": "DatasetReference"
}
]
}
]
對應資料流程屬性
在映射資料流程中轉換資料時,你可以從 Azure Data Explorer 中的資料表讀取和寫入資料表。 如需詳細資訊,請參閱對應資料流程中的來源轉換和接收轉換。 你可以選擇使用 Azure Data Explorer 資料集或inline 資料集作為來源與接收端類型。
來源轉換
下表列出 Azure Data Explorer 來源所支援的屬性。 您可以在 [來源選項] 索引標籤中編輯這些屬性。
| 名稱 | 描述 | 必要 | 允許的值 | 資料流程指令碼屬性 |
|---|---|---|---|---|
| 表 | 如果你選擇 Table 作為輸入,資料流會從 Azure Data Explorer 資料集或使用內嵌資料集時的來源選項中取得所有資料。 | 否 | 繩子 |
(僅限內嵌資料集) 資料表名稱 |
| 查詢 | KQL 格式中指定的唯讀要求。 使用自訂的 KQL 查詢作為參考。 | 否 | 繩子 | 查詢 |
| 逾時 | 查詢要求逾時之前的等候時間。預設值為 '172000' (2 天) | 否 | 整數 | timeout |
Azure Data Explorer 原始腳本範例
當你使用 Azure Data Explorer 資料集作為來源類型時,相關的資料流腳本是:
source(allowSchemaDrift: true,
validateSchema: false,
query: 'table | take 10',
format: 'query') ~> AzureDataExplorerSource
如果您使用內嵌資料集,相關聯的資料流程指令碼為:
source(allowSchemaDrift: true,
validateSchema: false,
format: 'query',
query: 'table | take 10',
store: 'azuredataexplorer') ~> AzureDataExplorerSource
接收轉換
下表列出 Azure Data Explorer sink 支援的屬性。 您可以在 [ 設定 ] 索引標籤編輯這些屬性。使用內嵌數據集時,您會看到其他設定,這與 數據集屬性 一節中所述的屬性相同。
| 名稱 | 描述 | 必要 | 允許的值 | 資料流程指令碼屬性 |
|---|---|---|---|---|
| 資料表動作 | 決定在寫入之前,是否要重新建立或移除目的地資料表中的所有資料列。 - 無:資料表不會執行任何動作。 - 重新建立:資料表會遭到捨棄並重新建立。 如果要動態建立新的資料表,則為必要。 - 截斷:系統將會移除目標資料表中的所有資料列。 |
否 |
true 或 false |
recreate 截斷 |
| 前置和後置 SQL 指令碼 | 指定多個 Kusto 控制命令指令碼,這些指令碼將在資料寫入至您的接收器資料庫之前 (前置處理) 和之後 (後置處理) 執行。 | 否 | 繩子 | preSQLs;postSQLs |
| 逾時 | 查詢要求逾時之前的等候時間。預設值為 '172000' (2 天) | 否 | 整數 | timeout |
Azure Data Explorer 匯出腳本範例
當你使用 Azure Data Explorer 資料集作為匯入類型時,相關的資料流腳本是:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
format: 'table',
preSQLs:['pre SQL scripts'],
postSQLs:['post SQL script'],
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzureDataExplorerSink
如果您使用內嵌資料集,相關聯的資料流程指令碼為:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
format: 'table',
store: 'azuredataexplorer',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzureDataExplorerSink
查閱活動屬性
如需屬性的詳細資訊,請參閱查閱活動。
相關內容
如需複製活動支援其作為來源和接收器的資料存放區清單,請參閱支援的資料存放區。
了解更多如何從Azure Data Factory和Synapse Analytics複製資料到Azure Data Explorer。