我的Postgres数据库每日增加数据(每天增加约500行),格式如下
Timestamp,Val1, Val2, Val3, Val4, Val5
--------------------------------------------
1494410340000,1360,1362,1359.2,1354.2,28453
1494410340000,1360,1362,1359.2,1354.2,28453
1494410340000,1360,1362,1359.2,1354.2,28453
每一天结束,我都可以将这些数据作为CSV文件写入AWS S3 每个CSV文件包含当天上述格式的数据。 10May.csv,11May.csv 12May.csv等等。
这些文件各不为25 KB。
我想在AWS中存储上述数据,并允许客户端直接过滤N行
例如:客户可以在 10月10日上午 到 11月3日下午3点之间请求数据
基本上我需要在多个CSV文件上模仿这个查询:
select * from allcsvdata where timestamp between Ts1 and Ts2
到目前为止我发现的相关事项:
对这种情况有什么好办法。 70%的查询需要多天数据[读取多个csv文件]。
那么我应该将所有数据附加到单个文件中并使用Athena吗?
或者我应该获得带有presto的EC2?
或其他适合此需求的架构?
我愿意接受建议,如果需要任何其他细节,请告诉我?
答案 0 :(得分:2)
如果您可以使用亚马逊雅典娜,那么它肯定是最简单的服务 - 没有服务器,闲置时不收费,除了已经存在于Amazon S3中的产品外,不收取任何费用。
不要担心10MB的最低费用。价格为5美元/ TB,最低费用为10MB,查询的最低费用低于0.00005美元。我不会抱怨这个!
Athena不需要将您的数据放在一个文件中 - 它可以读取给定路径中的所有文件。如果您的数据大小增加,您可以将其存储在更高存储效率的格式(例如gzip)中,因为Athena会对从磁盘读取的数据量收费,因此压缩数据会更便宜。