You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Fabric Eventhouse导入ADLS Gen2 JSON文件异常求助

问题描述

我们的需求是将存储在ADLS Gen2中的JSON文件导入Microsoft Fabric Eventhouse的KQL数据库。此前在完整的Azure Data Explorer(ADX)数据库中,通过数据连接+Event Grid/Event Hub的方案已实现端到端的持续更新,但Fabric Eventhouse不支持配置这类数据连接,改用数据管道的复制活动时遇到以下错误:

ErrorCode=KustoMappingReferenceHasWrongKind,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Mapping reference should be of kind 'Csv'. Mapping reference: 'HistoryRaw_EMR_New_mapping'. Kind 'Json'.,Source=Microsoft.DataTransfer.Runtime.KustoConnector,'

已提前创建KQL原始表及JSON类型的 ingestion mapping:

  • 原始表Schema:
    .create table HistoryRaw_EMR (CreatedUtc: datetime, TraceId: string, OktaUserId: string, TableName: string, HistoryTableNameId: int, ActionId: int, KeyValues: dynamic, FieldHistory: dynamic)
    
  • Ingestion Mapping:
    .create-or-alter table ['HistoryRaw_EMR'] ingestion json mapping 'HistoryRaw_EMR_mapping' '[{"column":"CreatedUtc", "Properties":{"Path":"$.CreatedUtc"}},{"column":"TraceId", "Properties":{"Path":"$[\"TraceId\"]"}},{"column":"OktaUserId", "Properties":{"Path":"$[\"OktaUserId\"]"}},{"column":"TableName", "Properties":{"Path":"$[\"TableName\"]"}},{"column":"HistoryTableNameId", "Properties":{"Path":"$[\"HistoryTableNameId\"]"}},{"column":"ActionId", "Properties":{"Path":"$[\"ActionId\"]"}},{"column":"KeyValues", "Properties":{"Path":"$[\"KeyValues\"]"}},{"column":"FieldHistory", "Properties":{"Path":"$[\"FieldHistory\"]"}}]'
    
解决方案

1. 复制活动两端明确指定JSON格式

Fabric数据管道的Kusto连接器默认按CSV格式处理数据,需手动强制指定JSON格式:

  • 源端配置:打开复制活动的「源」选项卡,在「格式」下拉框中选择「JSON」,根据你的文件结构勾选「多行JSON」(如果每个JSON对象占一行则取消勾选)。
  • 目标端配置:切换到「目标」选项卡,同样将「数据格式」设为「JSON」;在「映射」区域选择「使用KQL ingestion映射」,然后选中已创建的HistoryRaw_EMR_mapping。

2. 验证KQL映射的有效性

在Fabric的KQL查询编辑器中运行以下命令,确认映射的类型确实为JSON:

.show table HistoryRaw_EMR ingestion mappings

输出结果中需确保HistoryRaw_EMR_mapping的Kind字段值为Json。

3. 备选方案:直接调用KQL Ingest命令

如果复制活动仍存在格式识别问题,可改用数据管道的「KQL脚本活动」直接执行 ingestion 命令,绕过连接器的格式限制:

.ingest into table HistoryRaw_EMR (
    h@'abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<文件路径>/*.json'
) with (
    format = 'json',
    ingestionMappingReference = 'HistoryRaw_EMR_mapping'
)

注意需为Fabric的服务主体配置ADLS Gen2容器的读取权限。

额外说明

Fabric Eventhouse目前不支持ADX原生的Blob数据连接+事件触发自动 ingestion 机制,因此只能通过数据管道、事件流或Reflex触发导入操作。核心问题是复制活动的Kusto连接器默认格式为CSV,必须显式指定JSON格式才能关联已创建的JSON类型映射。

内容的提问来源于stack exchange,提问作者Matthew Buckleman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:55:06