Amazon web services 如何使用AWS Glue从S3导入JSON数据?
我在AWS 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
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的文档也很糟糕。你看过一篇解释如何一步一步地做你建议的事情的文章吗?没有,不幸的是我没有看到任何指示。我自己做实验。