【问题标题】:Database suggestion for large unstructured datasets to integrate with elasticsearch大型非结构化数据集与弹性搜索集成的数据库建议
【发布时间】:2020-07-26 10:16:07
【问题描述】:

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

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

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

【问题讨论】:

  • 您是如何使用这些数据的,是经常查询还是只是偶尔查询?
  • 我需要对数据库中的数据执行更新和删除操作,并定期将数据摄取到其中。未来单个对象的大小可以达到 1-2 GB。
  • 另外,为了在几毫秒内快速检索(搜索)这些数据,我目前使用的是 elasticsearch,我还在那里进行聚合和地理空间数据查询。

标签: amazon-web-services amazon-s3 amazon-dynamodb aws-elasticsearch aws-documentdb


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您回答我的问题。我需要澄清对此的进一步怀疑。我目前只将数据存储在 DynamoDb 中,我在其中对该数据进行写入、更新和删除操作。并进一步将其同步到 Elasticsearch 以执行快速搜索查询。所以,基本上我需要数据库通过 REST api 执行写入、更新、删除操作。 S3 真的很慢(需要几分钟的时间)吗?此外,如果您能帮助我了解在 AWS DocumentDb 中执行这些操作的价格(每月每 GB)(因为上面列出的定价适用于 S3,而无法找到 DocumentDb 的每 GB/月)。
  • S3 对于单个对象本身并不慢,它在查询数据时可能需要一些时间。 $0.10 per GB-month 是 DocumentDB。 S3 更便宜,但如果您使用 IA 并经常通过 Athena 查询数据,这可能会增加成本
  • 如果只是写的话,那就更好了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 2023-01-19
相关资源
最近更新 更多