【问题标题】:Getting JSON Data from Redshift table从 Redshift 表中获取 JSON 数据
【发布时间】:2016-06-06 15:02:14
【问题描述】:

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

Postgres 有 row_to_json 函数,可以在 SQL 语句中使用,以获取 JSON 格式的数据。Redshift 中是否有类似的功能?

【问题讨论】:

    标签: json amazon-redshift


    【解决方案1】:

    我仍在试图弄清楚如何不必列出没有复合类型或数组的每个项目,但这应该可以让您生成 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;
    

    【讨论】:

      【解决方案2】:

      根据您想要执行的操作,您可以使用以下功能之一: 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 
      

      【讨论】:

      • 这是我们拥有 Json 文本的时候。我正在寻找从 db 行数据中返回 json 的内容,与此处描述的内容一致。 hashrocket.com/blog/posts/…
      • 我怀疑你必须手工制作 JSON。如果您通过应用程序与 Redshift 进行通信,将行转换为适合您需要的 JSON 对象应该很简单。
      • 我不认为以“我怀疑...”开头的评论最终回答了这个问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多