Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在boto3、athena和aws命令行UTIL中,从s3提取数据的有效方法是什么_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 在boto3、athena和aws命令行UTIL中,从s3提取数据的有效方法是什么

Amazon web services 在boto3、athena和aws命令行UTIL中,从s3提取数据的有效方法是什么,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,有人能告诉我什么是从s3中提取数据的有效方法吗。基本上,我想在给定的时间范围内提取数据,并对数据(JSON)应用一些过滤器并将其存储在数据库中。我是AWS新手,经过很少的研究发现,我可以通过boto3 api、athena查询和AWS CLI来实现。但是我需要一些建议,告诉你该用哪一个。如果你想寻找最简单、最直接的解决方案,我建议你使用。它非常适合运行命令从命令行或shell脚本下载文件、列出bucket等 如果您正在寻找一种更健壮并与应用程序集成的解决方案,那么任何一种都可以。sdk在IMO上

有人能告诉我什么是从s3中提取数据的有效方法吗。基本上,我想在给定的时间范围内提取数据,并对数据(JSON)应用一些过滤器并将其存储在数据库中。我是AWS新手,经过很少的研究发现,我可以通过boto3 api、athena查询和AWS CLI来实现。但是我需要一些建议,告诉你该用哪一个。

如果你想寻找最简单、最直接的解决方案,我建议你使用。它非常适合运行命令从命令行或shell脚本下载文件、列出bucket等

如果您正在寻找一种更健壮并与应用程序集成的解决方案,那么任何一种都可以。sdk在IMO上比在应用程序中运行shell命令功能更丰富、更干净

如果拉取数据的应用程序是用python编写的,那么我绝对推荐。请务必阅读以下选项之间的差异。

某些选项:

  • 下载并处理:启动临时EC2实例,让脚本下载感兴趣的文件(例如一天的文件?),使用Python程序处理数据。这让你完全控制正在发生的事情
  • 这是一种从CSV文件中提取数据的简单方法,但一次只能对单个文件进行操作
  • Amazon Athena:提供了一个SQL接口,可以使用Presto跨多个文件进行查询。无服务器,快速。根据从磁盘读取的数据量收费(因此压缩数据更便宜)
  • Amazon EMR:Hadoop服务,提供非常高效的大量数据处理。高度可配置,但对于新用户来说相当复杂

根据您的描述(10个文件,300MB,200k条记录),我建议从Amazon Athena开始,因为它提供了跨多个数据文件的友好SQL界面。首先,在一个文件上运行查询(这会加快测试速度),一旦得到所需的结果,就在所有数据文件上运行查询。

一个文件还是很多文件?文件有多大(有多少行)?你多久做一次?@JohnRotenstein这些文件夹被命名为date-wise,每个目录大约有10个压缩文件。当被提取出来时,每一条记录大约有300mb(约20万条记录)。至少现在我正在考虑每天拉一次。