我们正在考虑将NoSQL数据库系统用于大型项目.目前,我们已经阅读了一些有关MongoDB和Cassandra的内容,尽管我们对这两者都没有任何经验.我们非常精通传统的关系数据库,如MySQL和Microsoft SQL,但NoSQL(键/值存储)对我们来说是一个新的范例.
基本上,你们推荐哪些NoSQL数据库供我们使用?
我们做重写和读.基本上我们有成千上万的设备报告:
device_id(int),纬度(十进制),经度(十进制),日期/时间(datetime),标题char(2),speed(int)
每一分钟.因此,在高峰时段,我们需要能够每秒处理数百次写入.
然后,我们还有用户,它们以形式查询此信息,在最后一天或上周向我提供来自device_id 1234的所有消息.此外,用户进行其他查询,例如,给我来自device_1234的所有消息,其中速度大于50且日期为今天.
因此,我们最初的想法是MongoDB或Cassandra将允许我们使用传统数据库更容易扩展.
MongoDB或Cassandra中的文档或值可能如下所示:
{ device_id: 1234, location: [-118.12719739973545, 33.859012351859946], datetime: 1282274060, heading: "N", speed: 34 }
你们推荐哪个系统?非常感谢.
MongoDB内置了对地理空间索引的支持:http://www.mongodb.org/display/DOCS/Geospatial+Indexing
例如,您可以找到距离该位置最近的10台设备
db.devices.find({location: {$near: [-118.12719739973545, 33.859012351859946]}}).limit(10)