如何在 Redshift 中合并 JSON 对象?
Posted
技术标签:
【中文标题】如何在 Redshift 中合并 JSON 对象?【英文标题】:How to merge JSON objects in Redhift? 【发布时间】:2018-07-01 12:53:34 【问题描述】:假设我有两行
Account | usage | usage by user | usage month
1 | 20 | "a":10, "b":10 | Jan
1 | 25 | "a": 15, "c":10| Feb
我想写一个查询来获取总使用量
1 | 45 | "a" : 25, "b" :10, "c":10
我可以通过使用 SUM 和按帐户分组来获取使用情况。但我不确定如何合并 Redshift 中的 json 对象。有关如何执行此操作的任何指示?
【问题讨论】:
【参考方案1】:在 Amazon Redshift 中没有本地方法可以做到这一点。另外,我建议您在 Redshift 中不这样做。
JSON 字段在 Redshift 中难以解释。您需要使用JSON_EXTRACT_PATH_TEXT 之类的函数从 JSON 中检索元素。它的效率非常低,并且没有利用 Redshift 的功能来优化查询。
如果您要保留这样一个字段来保存 一对多的值关系,最好创建一个单独的 usage 表 保存每个帐户和用户的使用信息。然后,在您的查询中加入该表。这是正常的 SQL — 与 Redshift 没有任何关系。
例如,请参阅:Creating multiple tables and table relationships
【讨论】:
以上是关于如何在 Redshift 中合并 JSON 对象?的主要内容,如果未能解决你的问题,请参考以下文章
在 Redshift 中解析一个 json 数组对象并转换为表格