最近,我的一位客户让我决定为一个工业项目选择数据库(那里可能有很多传感器,包括相机、照片或视频)--那里的数据流很大。
我想要么用MongoDB,要么用卡桑德拉。此外,我的客户还要求选择编程语言与T( Server) 我不确定这些语言中是否有一种类似于这个,如果不是,那么可能需要让客户机理解这一点。类似的DB --如果他们有能够理解T的人的话。
有谁能告诉我哪一个是最好的,为什么?还有其他DB可以用于此吗?
发布于 2015-12-28 16:25:34
我要说,卡桑德拉可能是你更好的选择。
可能是很多传感器,包括照片或视频摄像头]--那里的数据流很大。
由于其基于日志的特性,跟踪传感器数据是Cassandra的一个很好的用例。处理大量写入吞吐量的能力是Cassandra的优势之一,您可以通过添加处理工作负载所需的尽可能多的节点来进行线性扩展。您还会发现,在多个节点上对副本进行切分将更容易使用Cassandra (因为它实现了虚拟节点)。
客户端请求选择其编程语言与to类似的DB。
Cassandra查询语言(CQL)与SQL非常相似。其中几条命令完全相同。这样做是为了试图降低卡桑德拉的学习曲线。
然而,这也是一把双刃剑.虽然感觉相似,但CQL和SQL并不相同。我在StackOverflow上的大部分代表来自于帮助开发人员进行CQL查询,这些查询是他们以SQL/关系模式处理的。长话短说,通过对CQL进行基于SQL的假设,您可能会陷入麻烦,因此您和/或您的客户需要对此保持谨慎。
MongoDB使用基于Javascript的查询语言。尽管与SQL一点也不相似,但经验丰富的Javascript黑客往往在这方面做得很好。
关于Cassandra的一些其他警告要点:
总之,Cassandra听起来更适合您(假设您构建了一个良好的数据模型,并且不经常删除),因为它符合以下条件:
发布于 2016-03-31 09:57:21
首先,如果你的客户问你一些根据你自己的知识和经验你无法彻底回答的问题,提出任何建议都是非常糟糕的业务做法,伊霍。
的评论
至少可以说,这些要求也有点模糊。
在那里数据流是巨大的
如果设置得当,Cassandra和MongoDB都可以处理大量的数据。再次:如果正确设置。这两种数据库管理系统都需要相当多的知识和经验来有效地处理负载。因为两者似乎都是不存在的,无论是在你的一方,而不是从客户方面,雇用一个有知识和经验的人是不可避免的短期到中期。这样一个高影响的技术决策应该建立在事实和分析的基础上,而不是仅仅基于假设或简单的文件。
此外,我的客户还要求选择其编程语言与to类似的DB。
当然是这样,因为客户认为公司现有的知识可以被重用。通常情况下,这是错误的推断,如@Aaron雄辩地描述。我强烈建议不要通过访问语言来做出决定,而是通过适合于预期的目的来做出决定。如前所述,这种适应性必须通过分析用例和其他需求来确定。
虽然没有明确说明,但我们大概是在谈论时间序列数据。也许值得看一看InfluxDB,它是处理时间序列数据的整个软件集合的一部分,从收集到元分析。
https://softwarerecs.stackexchange.com/questions/27549
复制相似问题