【发布时间】:2012-10-14 11:32:54
【问题描述】:
我希望设计一个具有以下数据功能的系统:
- 多源高写入率,每秒 50K - 100K 记录(来自 )。
- 单源快读,单IO取操作。
这是基本的数据库表/集设计:
Type name
--------------
Date
Amount
- 对于每个新的Type,都会创建一个新表/集。
- 唯一的提取操作是
SELECT按日期(应该是集群主键或类似的东西)。 - 超过 1 个月的表格将被归档。
目前我收到的解决方案有:
- 纯 DB 引擎,例如 Berkeley 或 MS Jet。
- NoSQL,例如 Mongo DB。
P.S - 系统将用 C# 编写。
【问题讨论】:
-
100K 记录/秒意味着约 90 亿条记录/天。是你所追求的吗?
-
是的,但这是我需要的最大容量,大多数情况下它将每秒运行 80-40K 条记录。
-
是否有记录在写入后可立即查询?我的想法是在内存中连续写入记录,而另一个并行处理使用块将它们持久化。您的用例看起来像一个信号采集过程。
-
不,它不一定是即时的,即使可以容忍的数据丢失也是可以接受的。
-
该图的分辨率是多少?也许您不需要实际上存储所有数据点 - 也许您可以平均出几个比图形分辨率更接近的数据点,从而降低大量的 INSERT 涌入?
标签: c# database database-design nosql database-engine