我们使用JSONB偶尔存储元素。这将作为字符串传递给Redshift,然后使用UDF进行解析。对于审计报告,我想在一列中显示JSON的一部分,而在另一列中显示另一部分。我可以调用一个返回两个值的UDF,而不是每行都调用两个UDF,?你能从Redshift的python 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
),显示现金量和显示交易是否得到了超过$ 5第二列coupons > $5
)。
我试过RETURNS float, int
以及括号,大括号和括号,但得到一般的语法错误。任何人都有建议?或者我需要吮吸它并具有单独的功能?
哦哇,我喜欢那个黑客! – ScottieB