从 Amazon Redshift 中的 JSON 字段中提取数据

Posted

技术标签:

【中文标题】从 Amazon Redshift 中的 JSON 字段中提取数据【英文标题】:Extracting data from JSON field in Amazon Redshift 【发布时间】:2019-03-28 14:27:12 【问题描述】:

我正在尝试从 Redshift 中的 JSON 字段中提取一些数据。

下面是我正在处理的数据的示例视图。

"fileFormat":"excel","data":"name":John,"age":24,"dateofbirth":1993,"Class":"Computer Science"

我能够提取第一级的数据,即对应于的数据 fileFormatdata 如下:

select CONFIGURATION::JSON -> 'fileFormat' from table_name;

我正在尝试提取data 下的信息,例如nameagedateofbirth

【问题讨论】:

【参考方案1】:

你可以使用 Redshift 的原生函数 json_extract_path_text - https://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_PATH_TEXT.html

SELECT
  json_extract_path_text(
    configuration,
      'data',
      'name'
  )
    AS name,
  json_extract_path_text(
    configuration,
      'data',
      'age'
  )
    AS age,
  etc
FROM
  yourTable

【讨论】:

@scottmartin - 不客气,请随时投票并接受对您有帮助的答案;) 会的。它要求我再等 10 分钟才能接受答案..

以上是关于从 Amazon Redshift 中的 JSON 字段中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

Amazon Redshift 从 JSON 获取所有密钥

复制 json 文件时出现 Amazon Redshift 错误 - JSONPath 格式无效:成员不是对象

为啥 Amazon Redshift 会截断此 JSON 浮点数据的精度?

在 Amazon Redshift 中的表之间传输数据

基准 Amazon Redshift JSON_EXTRACT_PATH_TEXT

Amazon Redshift 使用 COPY 命令仅从 JSON 中获取 1 行