我有约300 GB的S3数据。假设这些数据如下所示:
我们正在对数据进行一些复杂的聚合,由于一些国家的数据很大而一些国家的数据很小,因此使用 AWS EMR 没有意义,因为一旦小国家的数据处理完毕,资源就会被浪费,而大国家则需要长时间运行。因此,我们决定使用带 Docker 容器的 AWS Batch 和 Athena。每个作业每天只处理一个国家的数据。
现在大约有 1000 个作业同时启动时,当它们查询 Athena 读取数据时,容器会因达到 Athena 查询限制而失败。
因此,我想知道解决这个问题的其他可能方法是什么?我应该使用 Redshift 集群,将所有数据加载到那里,然后所有容器都向 Redshift 集群查询,因为它们没有查询限制。但这很昂贵,而且需要很长时间才能启动。
另一个选择是在 EMR 上读取数据,并在其上使用 Hive 或 Presto 查询数据,但再次会达到查询限制。
如果有人能提供更好的解决方法,那就太好了。
## S3://Bucket/Country/Month/Day/1.csv
S3://Countries/Germany/06/01/1.csv
S3://Countries/Germany/06/01/2.csv
S3://Countries/Germany/06/01/3.csv
S3://Countries/Germany/06/02/1.csv
S3://Countries/Germany/06/02/2.csv
我们正在对数据进行一些复杂的聚合,由于一些国家的数据很大而一些国家的数据很小,因此使用 AWS EMR 没有意义,因为一旦小国家的数据处理完毕,资源就会被浪费,而大国家则需要长时间运行。因此,我们决定使用带 Docker 容器的 AWS Batch 和 Athena。每个作业每天只处理一个国家的数据。
现在大约有 1000 个作业同时启动时,当它们查询 Athena 读取数据时,容器会因达到 Athena 查询限制而失败。
因此,我想知道解决这个问题的其他可能方法是什么?我应该使用 Redshift 集群,将所有数据加载到那里,然后所有容器都向 Redshift 集群查询,因为它们没有查询限制。但这很昂贵,而且需要很长时间才能启动。
另一个选择是在 EMR 上读取数据,并在其上使用 Hive 或 Presto 查询数据,但再次会达到查询限制。
如果有人能提供更好的解决方法,那就太好了。
amazon-athena
,我也会添加这个标记。 - Theo