【Azure Stream Analytic】用 JavaScript UDF 解决 JSON 字段被转成 Record 的关键点

简介: Azure Stream Analytics将JSON对象输出为CSV时,会自动将其序列化为Record类型,导致数据无法正常解析。根本原因是ASA将JSON对象识别为结构化类型而非字符串。解决方法:通过JavaScript UDF(如`JSON.stringify`)将对象显式转为字符串,再输出至CSV,确保下游系统正确读取。

问题描述

Azure Stream Analytics(ASA)将数据输出到下游并转换为CSV时,某些 JSON 字段(如 message)被自动转换成 Record 类型,导致原本期望的 JSON 字符串无法正常展示或被下游系统解析。

 

问题解答

出现该问题的主要原因是:ASA 在处理 JSON 对象时,如果输入字段是 JSON 对象(object 类型)而非 JSON 字符串,会在输出为 CSV 时默认序列化成 Record。

解答疑惑:为什么 JSON 字段会变成 Record

  • ASA 对输入字段进行类型推断:
  • 字符串 → 正常写入 CSV
  • 对象(Object) → 默认序列化为 Record
  • 当上游消息从“JSON 字符串”变成“JSON 对象”时,ASA 识别到的是结构化对象,因此在输出到 CSV 时自动以 Record 的方式呈现。
  • 因此需主动将 JSON 对象转换为字符串,最简方式是使用 JavaScript UDF。

 

解决步骤

第一步:创建 JavaScript UDF

  • 打开 ASA Job → 点击 Functions(函数)
  • 选择 Add FunctionJavaScript UDF
  • 填写函数名称(如 jsonstringify
  • 在编辑器中填写 JavaScript 代码
function main(x) {
    return JSON.stringify(x);
}
  • 保存函数

 

第二步:在 ASA 查询中调用 UDF

在 ASA 查询内,对目标字段使用 UDF,例如: 

SELECT
UDF.jsonstringify(input.message) AS message,
*
INTO output

保存查询并启动作业后,JSON 对象将被转换成字符串并成功写入 CSV。

 

 

参考资料

JavaScript user-defined functions in Azure Stream Analytics : https://learn.microsoft.com/en-us/azure/stream-analytics/stream-analytics-javascript-user-defined-functions#other-javascript-user-defined-function-patterns

 




当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
2月前
|
JSON 监控 数据可视化
云监控 UModel Explorer:用“图形化”重新定义可观测数据建模
阿里云 UModel Explorer 正式发布:告别复杂配置,拖拽即建模,点击即洞察,实现建模、探索、分析一体化,让可观测真正高效协同,开启可视化运维新时代!
381 56
|
2月前
|
芯片 C++ Perl
南京观海微电子---多路降压稳压DC-DC开关电源电路设计(3.3V、5V、12V、ADJ)
LM2596是一款高效率降压稳压芯片,支持3A输出电流,输入电压可达40V,具有过热、限流保护功能。提供固定(3.3V/5V/12V)和可调(ADJ)版本,广泛用于电源转换设计。
南京观海微电子---多路降压稳压DC-DC开关电源电路设计(3.3V、5V、12V、ADJ)
|
2月前
|
存储 芯片
南京观海微电子---经典继电器驱动电路方案:单片机IO端口、三极管、达林顿管及嵌套连接
本文详解继电器工作原理及单片机驱动电路设计,涵盖四种经典驱动方案:IO口直驱、三极管驱动(NPN/PNP)、达林顿管驱动及继电器套娃方案,结合实际应用与面试常见问题,深入剖析电路设计要点与注意事项。
南京观海微电子---经典继电器驱动电路方案:单片机IO端口、三极管、达林顿管及嵌套连接
|
2月前
|
算法 数据可视化 物联网
国内人员定位系统厂家推荐:从公司背景、技术特点、定位方案和合作客户详解
本文介绍四家领先人员定位系统企业:广西维构、上海飞远、成都四相与精位科技,涵盖其技术优势、核心方案及标杆客户。聚焦多源融合定位、高精度UWB、三维可视化与工业级防护,助力企业实现高效、安全的数字化管理。
|
2月前
|
存储 人工智能 自然语言处理
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
本文深入浅出地讲解了RAG(检索增强生成)原理与LlamaIndex实战,通过《长安的荔枝》案例,从AI如何“读书”讲起,详解三大关键参数(chunk_size、top_k、overlap)对问答效果的影响,并结合真实实验展示不同配置下的回答质量差异。内容兼顾新手引导与进阶优化,帮助读者快速构建高效的文档问答系统。
555 22
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
|
2月前
|
存储 JavaScript 中间件
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:Casbin集成指南
GoWind Admin(风行)是企业级前后端一体中后台框架,集成Casbin实现灵活权限管理。支持RBAC、ABAC等模型,提供开箱即用的权限控制方案,助力构建安全可靠的中后台系统。
165 1
|
2月前
|
芯片
南京观海微电子---差分运算放大电路仿真电路、输入前信号计算
差分运放电路可放大差分信号、抑制共模干扰,稳定性好。通过电阻分压采集高压信号,配合直流偏置适配单极性ADC,输出经RC滤波防止失真,广泛应用于电压检测。
南京观海微电子---差分运算放大电路仿真电路、输入前信号计算
|
2月前
|
移动开发 UED
阿里云号码认证服务介绍、融合认证收费价格及号码认证使用场景说明
阿里云号码认证服务支持一键登录、短信/图形/融合认证,直连运营商实现无感验证,优化注册登录流程。提供多种套餐:短信认证100次3.99元/年,1万次480元/年;号码认证100万次2.9万元/年;融合认证更享优惠。适用于APP、H5等场景,提升用户体验。
|
2月前
|
Kubernetes Cloud Native Nacos
MCP 网关实战:基于 Higress + Nacos 的零代码工具扩展方案
本文会围绕如何基于 Higress 和 Nacos 的 docker 镜像在 K8s 集群上进行分角色部署。
408 46
|
2月前
|
自然语言处理 算法 安全
2025年TOP3最值得的AIGC创意视频服务推荐
本文深度测评2025年TOP级AIGC创意视频服务商:集之互动技术强、安全可靠,可灵操作便捷、适合多元创作,即梦艺术表现力出众。三大平台各具优势,助力企业高效打造高质量、高吸引力视频内容,赋能品牌传播。
259 2