如何在Microsoft Fabric Eventstream中实现自定义转换(如列转行)
在Microsoft Fabric Eventstream中实现列转行自定义转换
Eventstream默认提供的转换算子无法覆盖列转行这类复杂操作,你可以通过添加自定义KQL转换处理器,利用KQL的原生函数来实现需求,具体操作如下:
操作步骤
- 进入你的Eventstream数据流画布,点击「添加处理器」,选择「自定义转换(KQL)」选项
- 在KQL编辑界面,根据你的数据结构编写对应转换逻辑:
- 若要将数组类型列拆分为多行,使用
mv-expand函数:// 示例:将源数据中名为`order_items`的数组列拆分为单行 source | mv-expand order_items | extend product_name = order_items.product, price = order_items.price | project-away order_items - 若要将动态对象列的键值对拆分为多行,结合
bag_keys和mv-expand实现:// 示例:将源数据中名为`user_properties`的动态对象拆分为键值对行 source | extend prop_keys = bag_keys(user_properties), prop_values = bag_values(user_properties) | mv-expand prop_keys, prop_values | project user_id, prop_key = prop_keys, prop_value = prop_values
- 若要将数组类型列拆分为多行,使用
- 点击编辑窗口的「测试」按钮,传入样例数据验证转换结果是否符合预期
- 确认无误后保存处理器,部署Eventstream即可生效
关键提示
- 如果你的源数据是字符串格式的JSON,需要先使用
parse_json函数将其转为动态类型,再执行列转行操作 - 编写KQL时要确保对源数据的字段结构完全了解,避免因字段名不匹配导致转换失败
内容的提问来源于stack exchange,提问作者mestu
相关产品推荐
相关产品推荐

