如何对Amazon S3存储的嵌套数组JSON文件执行特定文本检索查询
嵌套JSON书籍数据的S3 Select检索方案
你可以直接使用Amazon S3 Select的SQL语法,通过多层UNNEST操作打平嵌套数组结构,实现指定文本的全量检索。
具体查询语句
将语句中的%检索关键词%替换为你实际要搜索的文本即可:
SELECT r.book AS bookId, r.version, r.bookName, c.chapterId, ct.line, ct.Text FROM S3Object s UNNEST s.repo AS r UNNEST r.chapters AS c UNNEST c.chapterContents AS ct WHERE ct.Text LIKE '%检索关键词%'
语法说明
- 三次
UNNEST操作依次打平repo(书籍数组)、chapters(章节数组)、chapterContents(行内容数组)三层嵌套结构,把所有层级的字段拉平到同一行方便筛选返回 LIKE为模糊匹配规则,如果需要精确匹配文本,直接替换为=即可;如果需要不区分大小写匹配,可以改写为LOWER(ct.Text) LIKE LOWER('%检索关键词%')- 返回字段完全匹配需求:包含书籍ID、版本号、书名、章节ID、匹配行号、匹配到的文本内容
使用注意事项
调用S3 Select执行该查询时,输入格式配置需要选择:
- 格式:
JSON - JSON类型:
文档(因为你的JSON数据是单个顶层对象,而非每行一个JSON对象的JSON Lines格式)
内容的提问来源于stack exchange,提问作者CathyAugust
相关产品推荐
相关产品推荐

