无法获取仪表板的数据(100k行以上)



对于dynamoDb和整个AWS来说都是全新的,这非常令人兴奋,但我觉得学习曲线有点陡峭。不管怎样,这是我的处境和我的问题。

我们有一个移动react原生应用程序,每次用户进行搜索时,它都会存储到一个dynamoDb表中一行。(数据库是一个带有UUID和搜索条件的搜索历史(。平均而言,我们每天都会有数千次新的搜索。该表只有一个主键,即搜索id。

这个应用程序很新,但我们已经达到了表中的几十万行,预计在接下来的几个月里会有一百万行。数据是简单的数据,在其他属性中具有唯一的id、字符串和数字。没有联系,没有关系,等等…那时我已经觉得DynamoDb可能不是最好的选择,但我仍然在任何地方读到,如果管理得当,它可以适用于任何事情。

除此之外,还有一个webapp仪表板,由于使用了nodejs lambdas的rest api,该仪表板可以查询dynamoDB来统计搜索情况:每天搜索次数、上次搜索列表。。。问题是DynamoDb并不真正适合查询数十万个数据(1mb限制、查询限制、信用…(。当我进行扫描时,我只得到3000次搜索。我试图使用请求的最后一个索引对扫描进行循环,但经过几次测试后,我没有得到数据,我阻止了最大吞吐量。很明显,我没有正确的方法将所有这些搜索带到我的网络应用程序中。那么现在什么是正确的方法呢?我的想法如下,但我对更有经验的想法持开放态度:

  • 切换到SQL数据库(使用aws迁移?(。那真的会更容易吗?

  • 创建Lambda以每晚执行计划的作业,从而每天进行统计,这样我就不必一直查询完整的数据库,而只需查询一些最近的搜索和统计数据行?这可行吗?你可能知道关于这方面的node.js/lambdas教程吗?

  • 更好地管理索引?我仍然对这些感到非常困惑。

期待您的意见。

添加另一层来负责全文搜索。

例如,使用Elasticsearch、Algolia或其他类似工具。

注意:

如果比较dynamodb 的成本,弹性搜索可能会花费你很多

参考:https://aws.amazon.com/about-aws/whats-new/2015/08/amazon-dynamodb-elasticsearch-integration/

相关内容

最新更新