当s3数据存储同时具有json和.gz压缩文件时,如何通过Glue爬虫创建AWS Athena表?

2023-11-30

我的预期解决方案有两个问题:

1. 我的S3存储结构如下:

mainfolder/date=2019-01-01/hour=14/abcd.json
mainfolder/date=2019-01-01/hour=13/abcd2.json.gz
...
mainfolder/date=2019-01-15/hour=13/abcd74.json.gz

所有 json 文件都有相同的架构,我想制作一个指向的爬虫主文件夹/然后可以在 Athena 中创建一个表进行查询。

我已经尝试过仅使用一种文件格式,例如如果文件只是json要不就gz那么爬虫就可以完美工作,但我正在寻找一种解决方案,通过它我可以自动执行任一类型的文件处理。我愿意编写自定义脚本或任何开箱即用的解决方案,但需要指示从哪里开始。

2. 第二个问题是我的json数据有一个字段(列),爬虫将其解释为struct数据,但我想将该字段类型设置为string。原因是如果类型仍然存在struct日期/小时分区出现不匹配错误,因为显然结构数据在文件中具有不同的内部架构。我试图制作一个自定义分类器,但没有选项来描述数据类型。


我建议完全跳过使用爬虫。根据我的经验,胶水爬虫不值得它们造成的问题。使用 Glue API 创建表很容易,添加分区也很容易。该 API 有点冗长,尤其是添加分区,但它比尝试让爬虫执行您希望它执行的操作要轻松得多。

你当然也可以从 Athena 创建表,这样您就可以确保获得与 Athena 兼容的表(否则您需要正确处理一些细节)。添加分区通过 Athena 使用 SQL 也不太冗长,但速度较慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当s3数据存储同时具有json和.gz压缩文件时,如何通过Glue爬虫创建AWS Athena表? 的相关文章

随机推荐