Amazon web services 如何使用AWS Glue从S3导入JSON数据?

Amazon web services 如何使用AWS Glue从S3导入JSON数据?,amazon-web-services,amazon-s3,etl,aws-glue,Amazon Web Services,Amazon S3,Etl,Aws Glue,我在AWS S3中有一大堆以JSON格式存储的数据。看起来是这样的: s3://my-bucket/store-1/20190101/sales.json s3://my-bucket/store-1/20190102/sales.json s3://my-bucket/store-1/20190103/sales.json s3://my-bucket/store-1/20190104/sales.json ... s3://my-bucket/store-2/20190101/sales.j

我在AWS S3中有一大堆以JSON格式存储的数据。看起来是这样的:

s3://my-bucket/store-1/20190101/sales.json
s3://my-bucket/store-1/20190102/sales.json
s3://my-bucket/store-1/20190103/sales.json
s3://my-bucket/store-1/20190104/sales.json
...
s3://my-bucket/store-2/20190101/sales.json
s3://my-bucket/store-2/20190102/sales.json
s3://my-bucket/store-2/20190103/sales.json
s3://my-bucket/store-2/20190104/sales.json
...
这都是相同的模式。我想把所有的JSON数据放到一个数据库表中。我找不到一个好的教程来解释如何设置它

理想情况下,我还能够对某些列执行小型的“规范化”转换


我认为胶水是正确的选择,但我对其他选择持开放态度

是的,胶水是一个很好的工具

使用爬虫程序在glue数据目录中创建一个表(创建爬虫程序时,请记住在S3数据分组行为下设置
为每个S3路径创建一个架构)
阅读更多关于它的信息


然后,您可以使用
relationalize
来扁平化我们的json结构,阅读更多关于这方面的信息

如果您需要使用Glue处理数据,并且不需要在Glue目录中注册表,那么就不需要运行Glue Crawler。您可以设置作业并使用选项设置为
true
和指向根文件夹的
路径(
[“s3://my bucket/”]
[“s3://my bucket/store-1”、“s3://my bucket/store-2”、…])
。在这份工作中,你也可以申请任何要求,然后将结果写入另一份。

谢谢!我认为这是正确的方向,但Glue仍然为每个文件创建了一个新表,给我留下了数千个表。这些文件是否都需要具有相同的名称?(它们的名称实际上类似于
sales-{timestamp}.json
所以它们都是唯一的。不,文件名可以是唯一的。您是否选中了爬虫信息下的
为每个S3路径创建一个架构
框?是的,我按照您的建议做了,仍然有数千个表。这比我以前得到的要多,但有些地方似乎仍然不正确。您的包含路径是什么?您有没有选择t:s3://我的bucketyes,这正是它设定的。我实际上只是放弃了,并决定根本不使用胶水。好的,这也很有趣。胶水对我来说仍然没有多大意义,AWS的文档也很糟糕。你看过一篇解释如何一步一步地做你建议的事情的文章吗?没有,不幸的是我没有看到任何指示。我自己做实验。