DynamoDB和ElasticSearch-表设计方法

时间:2019-05-27 17:32:24

标签: elasticsearch nosql amazon-dynamodb dynamodb-queries

我目前正在考虑我的DynamoDB数据库。目标是通过尽可能多的数据获得最佳速度。对我来说,DynamoDB似乎是一个不错的选择。此外,由于我需要地理位置查询(例如,向我显示特定区域内的所有帖子),因此有必要将表连接到ElasticSearch。 对于DynamoDB的最佳实践,以下方法对您有意义吗?例如“ posts”的排序键可能是一个热点,但是如果我仅使用ElasticSearch查询,应该没有问题-对吗?最好的解决方案是什么?

我的表格如下所示:

所以我的想法是:

  • 要查询所有用户,只需选择带有sort_key'user'的每一行
  • 要与创建者联系,请查询post_id和sort_key'post'

在关系数据库中,两个表如下所示: enter image description here

2 个答案:

答案 0 :(得分:1)

您可以做一些事情,例如使用重载属性(对不同的事情使用相同的列) enter image description here

然后,使用user_id和post_id = 0查询用户信息,并使用post_id = others查询帖子

答案 1 :(得分:1)

我认为dynamo DB并不是一个好的选择。 以下列出的DynamoDB的局限性。

  • 每个API调用获取的数据不能超过1 MB
  • 通配符搜索会给您带来较差的效果
  • 自从您计划海量数据以来,聚合将是一场噩梦