首页 > 解决方案 > 大型非结构化数据集与弹性搜索集成的数据库建议

问题描述

我们在数据库中保存了数百万条记录的场景,目前我使用 dynamodb 来保存元数据(并对对象进行写入、更新和删除操作),S3 用于存储文件(例如:文件可以是图像,其中关联的元数据存储在 dynamoDb) 和 elasticsearch 中用于索引和搜索。但是由于一行(单个对象)的 dynamodb 限制为 400kb,保存数据是不够的。我想过在 dynamodb 本身中保存不同版本的对象,但这太复杂了。所以我正在考虑用更好的存储替换 dynamodb:

  1. AWS 文档数据库
  2. S3 也用于保存元数据以及目标文件

因此,在您的意见和原因中,哪一个是更好的选择,这也是具有成本效益的。(也很容易与 elasticsearch 同步,但是这种 ES 同步并不是什么大问题,因为两者都可能)如果你有比这两个更好的建议,你也可以告诉我。

标签: amazon-web-servicesamazon-s3amazon-dynamodbaws-elasticsearchaws-documentdb

解决方案


我建议根据您的用例在 Amazon S3 上查看 DocumentDB,原因如下:

  • 存储数据的定价将是$0.023标准和$0.0125每月每 GB 的不频繁访问(而 Document DB 是$0.10每月每 GB),这取决于您的大小,这可能会大大增加。如果您使用IA,请注意您的检索成本可能会大大增加。
  • 虽然您不会直接获取数据,但您可以使用 Athena 或 S3 Select 进行过滤。根据查询的数据大小,可能需要几秒钟到几分钟(不是您请求的毫秒)。

对于 S3 中的非结构化数据存储以及围绕它的查询技术,更针对用于分析的数据湖。而 DocumentDB 更注重实时应用程序的性能(毕竟它是 MongoDB 兼容的数据存储)。


推荐阅读