【发布时间】:2017-09-06 00:16:43
【问题描述】:
我们偶尔会使用 JSONB 来存储元素。这将作为字符串传递给 Redshift,然后我使用 UDF 对其进行解析。对于审计报告,我想在一列中显示 JSON 的一部分,在另一列中显示不同的部分。 我可以调用一个返回两个值的 UDF,而不是在每一行中调用两个 UDF?
作为一个玩具示例,考虑一个事务性数据库,在该数据库中,我们为每一行存储客户用于支付的方法。一些客户可以支付多个金额(例如,消费一张礼品卡,然后用现金弥补差额),因此我们在此字段中存储一个 JSON blob。
{"Methods": [
{"Type":"Gift Card", "Amount": 5.74}
,{"Type":"Cash", "Amount": 4.26}
],
"Coupons": [
{"Code": "XHAY12", "Amount":1.22},
{"Code": "Y123A", "Amount": 4.66}
]}
在我的报告中,我想要一列 (methods) 显示现金金额,第二列 coupons > $5) 显示交易是否获得超过 5 美元的折扣。
我也尝试了RETURNS float, int 以及括号、大括号和圆括号,但得到了一般的语法错误。有人有建议吗?还是我需要把它吸起来并有单独的功能?
【问题讨论】:
标签: python json amazon-web-services amazon-redshift user-defined-functions