【问题标题】:Strategy to collect Analytics from a large app从大型应用程序收集分析的策略
【发布时间】:2009-11-21 18:57:08
【问题描述】:

Superfeedr 是一种按需解析提要服务。我们希望为我们的用户提供分析,我们正在研究这样做的最佳策略。

简而言之,我们希望跟踪系统中的操作数量(事件,例如:给定提要中的新条目)以及汇总数据(提要的订阅者数量)。

当然,可以根据事件“计算”聚合数据。 (订阅者的数量是订阅的总和,减去取消订阅的总和)。然而,由于我们想随着时间的推移研究这一点(每天的订阅者数量),事件处理方法可能不是最佳的,因为我们会一遍又一遍地重新计算相同的东西。

如何在您的应用中构建这样的组件?什么信息流?什么数据存储?什么图形解决方案?等等……

我知道这是一个相当开放的问题,但我相信我们不是第一个有这种需求的人!

[更新]: 基础设施:我们有一组工作人员,它们是 XMPP 客户端并一起交互。它们基于 EventMachine,这意味着它们不会阻塞 IO。 预期目标:我们必须能够收集大量数据。目前,我们已经达到了大约 200-300 毫秒/秒,我们的目标是 10 到 100 倍。

【问题讨论】:

    标签: graph analytics datastore


    【解决方案1】:

    如果没有有关您的基础架构和所需扩展目标的更多信息,很难说。您可能会发现这个关于How Twitter Uses Hadoop 的幻灯片具有指导意义。它是由Kevin Weil 在最近的NoSQL East conference 上提出的。

    借鉴 Twitter 的做法,您可以考虑将架构拆分为收集、分析和渲染阶段。

    收集阶段:超低延迟。非常可扩展。很多绑定选择。开发于facebook

    处理节点日志事件 -> Scribe -> HDFS

    分析阶段:类似 SQL 的查询语言,也允许您进行探索性的临时查询。

    HDFS -> Pig -> MySQL

    渲染阶段:在您当前的网络框架中实现

    MySQL -> JSON -> Memcached -> Flash 图表

    这里有一些关于为 web 选择 Flash 图表组件的帖子。我个人在AmCharts 上取得了很好的成功。

    【讨论】:

    • 有趣的想法。谢谢。我用你的问题完成了这个问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    相关资源
    最近更新 更多