2

我在一家大型电信公司工作,我希望存储许多 CDR(呼叫详细记录)。它应该是一个巨大的数据库。我想尝试推动一些开源解决方案。我对 MySQL 非常熟悉,但我想也许可以尝试一些不同的东西,这些东西应该是健壮且易于扩展的。关于稳定的开源 NoSQL 解决方案有什么建议吗?- MongoDB?Hadoop?卡桑德拉?还有什么想法吗?也许我应该坚持使用 MySQL?

请注意,我需要查询某个特定电话号码通话的分钟数等选项。

什么号码叫得最多。

ETC'。

一个 mysql 表如下所示:

   timestamp   TIMESTAMP
   from_number CHAR(12)
   to_number   CHAR(12)
   duration    MEDIUMINT
4

3 回答 3

4

尽管您可能可以使用任何数据库后端构建 CDR 解决方案,但一个挑战将是您如何处理数据建模和查询。与关系数据相比,NoSQL 数据建模需要一种截然不同的方法,并且更类似于非规范化数据仓库(这应该非常适合您的用例!)。

根据您的要求,有许多开源 CDR 项目也可能值得研究。

对于可能有助于您的调查的具体示例,我将查看CDR-Stats

进一步查看:

于 2012-08-09T21:37:01.347 回答
2

CDR 处理涉及大量记录,这些记录也会随着时间的推移而增加。每年 100% 的增长并不少见。我发现将收集与报告分开并将收集的数据作为记录或聚合转发到适当的报告引擎是个好主意。见BDsafe概览和案例研究。我交付的系统已经运行了几年,每天连续处理数十亿个 CDR。总之,我怀疑你会找到一个系统来满足你的所有需求,但是,我相信你可以通过一点横向思维来实现你的目标。首先,有效地(廉价地)存储您的数据,然后您可以为不同的目的使用不同的报告引擎。如果你能向我提供一些你必须处理的一般情况,我很乐意解释我在这些情况下所做的事情。十多年来,我一直专注于电信公司和 LEA 的这一领域。

于 2012-08-12T07:26:58.670 回答
0

CDR 将与到达的呼叫数量成正比。我不认为 MySQL 是最好的解决方案,因为数据会不断增长。随着数据的增长,我真的对性能表示怀疑。这是假设您可能必须将数据存储至少 1 年作为监管规范等。CDR-Stats 的 Stennie 建议看起来不错。他们正在使用 MongoDB

于 2012-08-10T09:26:01.587 回答