8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

JQ 解析 JSON 流输入 - Amazon Firehose

Tal 2月前

39 0

0您好,我的 aws firehose 中有一个 json 流,该流可以包含基于数据源的指标或报告键值对。它们看起来像这样 -metrics stream{ \'metric&qu...

0你好,

我的 aws firehose 中有一个 json 流,它可以包含基于数据源的指标或报告键值对。它们看起来像这样 -

指标流

{ \'度量\':{ \'k1\':\'v1\',\'k2\':\'v2\',... } }

报告流

{ \'报告\':{ \'k1\':\'v1\',\'k2\':\'v2\',... } }

我正在尝试使用 JQ 表达式来检查 json 是否具有(\'metric\')/具有(\'report\'),然后从 blob 中派生出值。例如,

if has("metric") then "metric" else "report" end

从在线 JQ Playground(ref) 来看,这似乎是有效的语法。但是,当它在 firehose 中被定义为动态分区键时,它会失败。我想从 json 中读取不同的键来定义流的输出。例如,两个键 - K1、K2 都很重要,并且它们依赖于能够解析父键是否是度量/报告。

在此流中,metirc/report 形成第一级分区键,后跟 K1 值。我使用以下 JQ 语法来派生 K1,

if has("metric") then .metric.k1 else .report.k1 end

错误信息 -

JQ 子进程失败,原因是:jq:错误:语法错误,意外的 if(Unix shell 引用问题?)在第 2 行:{dataType:ifhas(\'metric\') then \'metric\' else \'report\' end} jq:1 个编译错误

错误代码:DynamicPartitioning.MetadataExtractionFailed

这里的 JQ 表达式有什么错误。这里看起来很正常,但我无法获得正确的表达式来验证指标或报告键。

帖子版权声明 1、本帖标题:JQ 解析 JSON 流输入 - Amazon Firehose
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Tal在本站《json》版块原创发布, 转载请注明出处!
最新回复 (0)
返回
作者最近主题: