【发布时间】:2012-08-06 23:11:47
【问题描述】:
我在一家大型电信公司工作,我希望存储许多 CDR(呼叫详细记录)。它应该是一个巨大的数据库。我想尝试推动一些开源解决方案。我对 MySQL 非常熟悉,但我想也许可以尝试一些不同的东西,这些东西应该是健壮且易于扩展的。关于稳定的开源 NoSQL 解决方案有什么建议吗? - MongoDB? Hadoop?卡桑德拉?还有什么想法吗?也许我应该坚持使用 MySQL?
请注意,我需要查询某个特定电话号码通话的分钟数等选项。
最常被叫的号码是什么。
等等。
一个mysql表应该是这样的:
timestamp TIMESTAMP
from_number CHAR(12)
to_number CHAR(12)
duration MEDIUMINT
【问题讨论】:
-
这是一个非常主观的问题,实际上归结为人们的意见,所以我要说的是 MongoDB,您可以在您提供的架构上很好地分片,并且很容易选择计算机进行日志查看等
-
就像之前的评论所说的那样,这是非常主观的。但这是我最喜欢的 NOSQL 概述页面:kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
-
我也在一家电信公司工作,我认为 NoSQL 不能很好地处理 CDR 存储。如果我考虑进一步的计费逻辑,那么我觉得它太复杂了。使用 NoSQL,您必须在 CDR 存储到数据库时准确地准备每张发票,我想说这不是最快的操作,尤其是对于预付费系统。
-
我倾向于坚持你所知道的。随着项目的发展,您对 NoSQL 的使用可能会变得复杂,并且在您离开时可能会给公司留下一个昂贵的堆栈可供使用。您是否分析过在您所在的位置雇用这种专业知识是多么容易? (如果我是你,我会把这个问题推到链条上,这样它以后就不会在你身上爆发了!)
-
恕我直言,您应该继续使用 mysql,关系型数据库的 CDR 存储格式比文档/nosql 数据库好得多(考虑在每条记录中存储字段名称的开销)。如果 mysql 太慢,那么您应该求助于为您的查询量身定制的低级数据库实现。
标签: mysql open-source nosql bigdata