端点设计:查询 AWS Athena 而不是数据库

问题描述 投票:0回答:1

我正在构建一个端点,将由 5k - 10k 用户使用,例如:

GET /magic/spells?spellIds=1,2,3

“咒语”的底层数据源经常变化,并以压缩格式存储在 s3 上。底层数据的大小相当小(< 100mb).

每次用户点击端点时,我都会直接查询 Athena,以便检索要在 api 响应中返回的咒语数据。我正在使用缓存来帮助减少原始 Athena 查询的数量,但我仍然担心该方法可能无法很好地扩展。

Athena 查询不是免费的,如果用户决定查询随机生成的

spellIds
以避免缓存,它可能很快就会产生账单。

或者,我可以按计划的时间间隔将咒语数据从 Athena 加载到更传统的数据源(数据库)中,然后对其进行查询。这样做的缺点是数据可能会过时,这是我可能必须做出的权衡。

在面向用户的端点中查询 Athena 是一种常见做法,还是最好先将数据存储在更传统的数据存储中?

spring-boot amazon-athena endpoint
1个回答
0
投票

Athena 被设计为分析查询引擎,而不是查找服务。

将数据加载到DynamoDB中,然后根据key进行查询。您可以使用其他数据存储;然而,DynamoDB 是最具成本效益的。

© www.soinside.com 2019 - 2024. All rights reserved.