使用Delphi XE2:多年来,我一直在使用AbsoluteDB,成功地满足了较小的需求,但它不能很好地扩展到大型数据集。我需要针对以下条件的DB引擎的建议:
提前感谢!
发布于 2015-08-15 09:02:19
我会用
主要的标准是您将如何处理这些数据。而你对此却没怎么说。您会按数据点进行个别查询吗?你需要做汇总(和/平均数.)吗?每种类型的数据点?如果“数据通常是通过设备ID和日期窗口访问的”,那么我可能不会将数据存储在单个行中,每个数据点一行,而是在"集合体“中收集数据,即存储在"document”列中的对象或数组。
您可以将这些聚合存储为BLOB,但它可能没有效率。PostgreSQL和MongoDB都有强大的对象和数组函数,包括文档中的索引。
不要从DB开始,而是从逻辑开始:您正在收集哪些数据?它是如何获得的?以后如何访问?然后设计高级对象,让DB高效地存储对象。
还要考虑CQRS模式:将数据存储在几个地方、几个布局中,并明确区分写(命令)和读(查询)是一个好主意。例如,您可以发送数据库中的所有单个数据点,但在其他数据库中以现成的形式收集信息。不要犹豫复制数据!不要依赖单一的以数据库为中心的方法!这是IMHO快速查询的关键,也是所有BigData公司所做的事情。
我们的开源mORMot框架非常适合这样的过程。我目前正在进行一个项目,从通过Internet连接的数千个远程设备(实际上是警报面板)实时收集信息,然后将这些数据合并到服务器群中。我们使用SQLite3在每个节点上进行本地存储(最高可达几个GB),并将数据合并到MongoDB服务器中。所有的逻辑都是用高级Delphi对象编写的,框架完成了所有需要的管道(包括实时复制和回调)。
https://stackoverflow.com/questions/32021232
复制相似问题