Use Case for Amazon Athena



我们正在构建一个web应用程序,使客户能够根据当前流式传输到ElasticSearch的事件深入了解他们的活动。客户是一个向人们发送信息的组织。

有人担心,在Elasticsearch的情况下,托管这些数据三年的要求意味着需要大量的存储和高昂的实施成本。

另一种选择是将每天的数据处理成存储在S3中的报告CSV,并使用类似Amazon Athena的东西来执行查询。我们的应用程序是否可以向Athena发送特别查询以响应web浏览器请求?它不太可能一直生成大量请求,但我不确定延迟会是什么样子。

是的,Athena将是这个用例的一个可能的解决方案——如果做得好,它也可能相当便宜。

Athena不是一个低延迟查询引擎,但出于报告目的,它通常已经足够好了。如果不了解更多信息,就无法确定,但如果做得好,我们谈论的是低个位数的秒数。

你可以用不同的方式来处理这个问题,或者按照你说的做,每天生成一个CSV,根据需要存储这些CSV,并根据需要对它们运行查询。根据您的描述,听起来这些CSV已经是聚合的,我认为每个客户每天的CSV将大大少于1兆字节。如果您按客户和月份进行分区,您应该能够在几秒钟内运行任意时间段的查询。

另一种方法是将所有数据存储在S3上,并对整个数据集运行查询。当您将数据流式传输到ElasticSearch时,也将其流式传输至S3。根据您的操作方式,您可能需要一些Lambda函数形式的ETL,该函数按客户和时间(天或月取决于卷(对数据进行分区。然后,您可以对完整的历史数据集运行Athena查询。缺点是查询速度较慢(大多数查询的秒数为两位数,但我不知道你的数据量(,但优点是你可以查询的内容完全灵活。

有了关于用例细节的更多细节,我可以帮你了解细节。

雅典娜是无服务器的。您可以快速查询数据,而无需设置和管理任何服务器或数据仓库。只需指向AmazonS3中的数据,定义模式,然后使用内置的查询编辑器开始查询。

AmazonAthena会自动并行执行查询,因此大多数结果会在几秒钟/分钟内返回。

最新更新