如何通过Azure Data Factory将ADLS指定列同步至ADX(Kusto)并附配置截图
从ADLS提取指定列同步至Azure Data Explorer(Kusto)的完整流程
前置准备
- 具备ADLS Gen2存储账户、Azure Data Explorer(Kusto)集群及目标数据库的访问权限
- 提前确认ADLS中源数据文件(支持Parquet/CSV等格式)的列结构,明确需要同步的指定列
- 确保Azure Data Factory(ADF)的系统分配托管标识已获得:
- ADLS Gen2的「存储Blob数据读取者」角色(在ADLS存储账户的IAM页面配置)
- ADX数据库的「Ingestor」和「Viewer」权限(在ADX数据库的权限管理页面配置)
一、创建链接服务(Linked Service)
1. ADLS Gen2链接服务
操作步骤:
- 打开Azure Data Factory Studio,切换到「管理」面板 → 「链接服务」 → 点击「+ 新建」
- 搜索并选择「Azure Data Lake Storage Gen2」,点击「继续」
- 配置参数:
- 名称:自定义命名(如
LS_ADLS_Source) - 订阅:选择ADLS存储账户所在的Azure订阅
- 存储账户名称:直接选择目标ADLS账户
- 身份验证方式:选择「系统分配托管标识」
- 名称:自定义命名(如
- 点击「测试连接」,验证通过后点击「创建」
截图示例:
2. Azure Data Explorer链接服务
操作步骤:
- 在「链接服务」面板点击「+ 新建」,搜索「Azure Data Explorer」并选择
- 配置参数:
- 名称:自定义命名(如
LS_ADX_Target) - 订阅:选择ADX集群所在的Azure订阅
- 集群:选择目标ADX集群
- 数据库:选择要写入的ADX数据库
- 身份验证方式:选择「系统分配托管标识」
- 名称:自定义命名(如
- 点击「测试连接」,验证通过后点击「创建」
截图示例:
二、创建数据集(Dataset)
1. ADLS源数据集
操作步骤:
- 切换到「创作」面板 → 「数据集」 → 点击「+ 新建」
- 选择「Azure Data Lake Storage Gen2」,关联之前创建的
LS_ADLS_Source链接服务,点击「继续」 - 选择源数据的格式(如Parquet/CSV),配置文件路径:
- 选择ADLS中的目标容器、文件夹,指定源数据文件(如果是分区表,可配置分区路径过滤数据)
- 切换到「架构」选项卡,点击「导入架构」,自动加载源数据的列结构
- 保存数据集,命名为
DS_ADLS_Source
截图示例:
2. ADX目标数据集
操作步骤:
- 新建数据集,选择「Azure Data Explorer」,关联
LS_ADX_Target链接服务,点击「继续」 - 配置参数:
- 数据库:选择目标ADX数据库
- 表名:输入要写入的目标表名称(若表不存在,ADF会自动创建,需确保权限足够)
- 保存数据集,命名为
DS_ADX_Target
截图示例:
三、配置复制活动实现指定列同步
- 切换到「创作」面板,新建管道(如
Pipeline_ADLS_to_ADX) - 拖入「复制数据」活动到画布,切换到「源」选项卡:
- 数据源选择
DS_ADLS_Source - 点击「预览数据」确认源列,确保需要的列存在
- 数据源选择
- 切换到「列映射」选项卡,选择「自定义映射」:
- 仅保留需要同步的指定列,删除不需要的列(可通过拖拽或勾选的方式调整)
- 切换到「接收器」选项卡:
- 接收器选择
DS_ADX_Target - 写入行为:根据业务需求选择「追加」或「替换」
- 确认列映射关系(源列与目标列名称一致时会自动匹配,不一致需手动调整)
- 接收器选择
- 点击「验证」检查管道配置,完成后可点击「调试」测试同步,或发布后设置触发规则
四、验证同步结果
登录Azure Data Explorer门户,进入目标数据库,执行Kusto查询验证:
<目标表名> | take 10
确认返回结果仅包含指定列,且数据与ADLS源数据一致
内容的提问来源于stack exchange,提问作者user21510438
相关产品推荐
相关产品推荐

