从Redshift表获取JSON数据

时间:2016-06-06 15:02:14

标签: postgresql amazon-redshift postgresql-9.4

我想从redshift表中检索SQL中的数据作为json字符串。有没有可以做到这一点的功能?

Postgres具有row_to_json函数,可以在SQL语句中使用该函数将数据作为JSON获取。在Redshift中是否有相当于此的内容?

2 个答案:

答案 0 :(得分:0)

我仍在尝试找出不必列出没有复合类型或数组的所有项目的方法,但这应该可以帮助您生成json,而无需执行字符串操作。

CREATE OR REPLACE FUNCTION test_function 
  (userid int, firstname varchar, lastname varchar, email varchar)
RETURNS varchar(max) immutable as $$
    import json
    o = {
        "userid": userid,
        "firstname": firstname,
        "lastname": lastname,
        "email": email
    }
    return json.dumps(o)
 $$ LANGUAGE plpythonu;

答案 1 :(得分:-1)

根据您的目的,您可以使用以下功能之一: http://docs.aws.amazon.com/redshift/latest/dg/json-functions.html

JSON_EXTRACT_PATH_TEXT非常有用http://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_PATH_TEXT.html

select json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}}','f4', 'f6');

json_extract_path_text
---------------------- 
star