【发布时间】:2022-01-24 03:54:04
【问题描述】:
我有一个包含 1000 行和 2 个字段的 Athena 表。一个字段包含一个 ID,第二个字段包含一个带有 50 个密钥对值的 JSON Blob。
将 JSON 密钥对提取为保留原始 ID 作为主键的表格式的好方法是什么?
【问题讨论】:
标签: sql json amazon-web-services amazon-athena
我有一个包含 1000 行和 2 个字段的 Athena 表。一个字段包含一个 ID,第二个字段包含一个带有 50 个密钥对值的 JSON Blob。
将 JSON 密钥对提取为保留原始 ID 作为主键的表格式的好方法是什么?
【问题讨论】:
标签: sql json amazon-web-services amazon-athena
好的,这很简单,所以将它放在这里供任何人在 Athena 中使用 JSON 和 SQL 开始。
原答案在这里:https://docs.aws.amazon.com/athena/latest/ug/extracting-data-from-JSON.html
我不会遍历全部 50 个键,但做了两个用于测试,它按预期工作。在下面找到测试:
SELECT
json_extract_scalar(json_blob, '$.ticketId') AS ticketId,
json_extract_scalar(json_blob, '$.problemDescription') AS problemDescription
FROM "original_table_with_two_fields"
术语表:json_extract_scalar 是完成这项工作的函数; json_blob 是包含 Json blob 的字段的名称; '$.ticketId' 是 50 个键之一的名称; '$.problemDescription' 是 50 个键中另一个的名称 - 结果是一个包含两列的表,其中包含 1000 行,每行都有每个选定键的值。
【讨论】: