mongodb - 使用 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 是这个用例的最佳解决方案?使用大量数据插入和汇总报告的最佳实践是什么?
解决方案
推荐阅读
- python - 我试图创建一个循环,如果输入不是带有 exept valueerror 的 int 则触发
- node.js - 使用带有 sqlite3 的 knex 测试 node.js 方法永远不会停止
- java - Intellij:项目有两个名字?
- c# - 使用正则表达式查找最接近字符串的括号
- twilio - 如何使用 Twilio Autopilot 发送多条消息?
- html - 获取用于抓取视频 url 的 xpath
- c# - 我怎样才能退出 if 并返回?
- r - 在 R 中使用约束调整矩阵大小
- php - 使用 fopen + fgetcsv 读取 URL:它使用缓存吗?
- integration - CCH iFirm 和 DocuSign 集成