使用Athena SQL从JSON键获取值

使用Athena SQL从JSON键获取值,sql,json,amazon-web-services,amazon-s3,amazon-athena,Sql,Json,Amazon Web Services,Amazon S3,Amazon Athena,我需要从firehose日志JSON创建的“facets”表中获取电子邮件地址 现在,我用雅典娜来获取特定的信息 我需要从以下地址获取电子邮件地址: 当我通过时,这是我的“面外”- SELECT * FROM "sampledb"."facets" limit 10 {email_channel={mail_event={mail={message_id=oadfosadu6237864237615,message_send_timestamp=1622

我需要从firehose日志JSON创建的“facets”表中获取电子邮件地址

现在,我用雅典娜来获取特定的信息

我需要从以下地址获取电子邮件地址:

当我通过时,这是我的“面外”-

SELECT * FROM "sampledb"."facets" limit 10
{email_channel={mail_event={mail={message_id=oadfosadu6237864237615,message_send_timestamp=1622696691764,from_address=abcd@jk.com,目的地=[abcd@jk.com],headers\u truncated=false,headers=[{name=From,value=abcd@jk.com},{name=To,value=abcd@jk.com},{name=MIME版本,value=1.0}],公共_头={from=ghjk@li.com,至=[abcd@jk.com]}},send={},呈现_failure=null}}


假设您有一列以提供的格式存储json,那么您可以使用json_extract和所需的路径以及一些强制转换:

将dataset1作为 从valuesJSON中选择* '{ 电子邮箱:{ 邮递活动:{ 邮寄:{ 消息id:oadfosadu6237864237615, 消息发送时间戳:1622696691764, 发信人地址:abcd@jk.com, 目的地:[ abcd@jk.com ], 标题:false, 标题:[ { 姓名:From,, 价值:abcd@jk.com }, { 姓名:To,, 价值:abcd@jk.com }, { 名称:MIME版本, 数值:1.0 } ], 常用_标题:{ 发件人:ghjk@li.com, 致:[ abcd@jk.com ] } }, 发送:{}, 渲染失败:null } } }“作为facetsfacet 选择 json\u.email\u channel.mail\u event.mail.from\u address'mail\u from, CASTjson_.email_channel.mail_event.mail.destination'作为ARRAYVARCHAR目的地 从数据集1 和输出:

寄自 目的地 abcd@jk.com {abcd@jk.com}
假设您有一列以提供的格式存储json,那么您可以使用json_extract和所需的路径以及一些强制转换:

将dataset1作为 从valuesJSON中选择* '{ 电子邮箱:{ 邮递活动:{ 邮寄:{ 消息id:oadfosadu6237864237615, 消息发送时间戳:1622696691764, 发信人地址:abcd@jk.com, 目的地:[ abcd@jk.com ], 标题:false, 标题:[ { 姓名:From,, 价值:abcd@jk.com }, { 姓名:To,, 价值:abcd@jk.com }, { 名称:MIME版本, 数值:1.0 } ], 常用_标题:{ 发件人:ghjk@li.com, 致:[ abcd@jk.com ] } }, 发送:{}, 渲染失败:null } } }“作为facetsfacet 选择 json\u.email\u channel.mail\u event.mail.from\u address'mail\u from, CASTjson_.email_channel.mail_event.mail.destination'作为ARRAYVARCHAR目的地 从数据集1 和输出:

寄自 目的地 abcd@jk.com {abcd@jk.com}
你能发布源JSON记录和DDL吗?这项工作的预期输出是什么?我想要这些电子邮件地址。你能发布源JSON记录和DDL吗?这项工作的预期输出是什么?我想要这些电子邮件地址these@sameerawsnoob我很乐意帮忙@sameerawsnoob很乐意帮忙!