【问题标题】:NoSQL big data which project to use for CDR storing? [closed]NoSQL大数据使用哪个项目进行CDR存储? [关闭]
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      进一步查看:

      【讨论】:

        猜你喜欢
        • 2011-05-14
        • 2014-03-13
        • 2019-02-09
        • 2020-07-26
        • 2012-12-09
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多