首页 > 解决方案 > 使用 MongoDB 插入大量数据的问题

问题描述

我们在使用 MongoDB 时遇到问题,需要插入大量数据。

在这种情况下,存在连接到 WebSocket (Socket.IO) 的 Web 套接字客户端。这些客户端每 10 秒生成一个事件日志并将其作为 WebSocket 事件发送。WebSocket 接收事件并将其写入 MongoDB。

我们有类似 6000 个 Web 套接字客户端连接发送此事件日志。6000 个客户端每秒生成 600 个或更多事件日志,因为一些客户端存储离线数据以在连接后传输。

我们每个客户帐户都有一个数据库和一个集合来存储这些文档。

该文件有以下内容:

{
  “_id”: “1k2jh3k2h31kh1…",
  “clientId": 1,
  “mediaId": 2,
  “createdAt": “2018-12-05 11:00:00”,
  "type": “I"
}

该文档有一个使用 3 个属性的唯一键:clientId、mediaId 和 createdAt。

此外,我们还有一个 Web 界面来生成包含关键属性聚合的报告。而且聚合很重而且很慢。

目前我们使用运行 MongoDB 的 EC2 大型实例。但是我们在 MongoDB 上有很多过载问题。

我们计划将业务增加到 20.000 个客户。

我的问题是:MongoDB 是这个用例的最佳解决方案?使用大量数据插入和汇总报告的最佳实践是什么?

标签: mongodbbigdata

解决方案


推荐阅读