【问题标题】:Database selection for a web-scale analytics application网络规模分析应用程序的数据库选择
【发布时间】:2011-05-26 10:15:05
【问题描述】:

我想构建一个类似于 Google-Analytics 的网络应用程序,在其中我收集有关我客户的最终用户的统计数据,并根据该数据向我的客户展示分析。

特点:

  • 高扩展性,处理超大容量
  • 分隔 - 查询始终针对单个客户的数据运行
  • 支持分析查询(向下钻取、切片等)

由于分析需要,我正在考虑使用 OLAP/BI 套件,但我不确定它是否适用于这种规模。 NoSQL 数据库?简单的 RDBMS 可以吗?

【问题讨论】:

    标签: database database-design nosql olap business-intelligence


    【解决方案1】:

    您可以选择两种主要架构来实现真正的网络规模:

    1. “BI”架构

    2。 “NoSQL”架构

    • (可选)事件日志或不可变事件存储feeds
    • NoSQL 数据库(例如Cassandra、Riak、HBase)feeds
    • 自定义分析 UI(例如,使用 D3.js

    存在不可变的事件存储或日志记录器,因为在大多数情况下,您希望批量分析事件并对数据库进行批量更新(即使使用 HDFS 之类的东西) - 而不是对每个页面视图进行原子写入等.

    对于SnowPlow,我们基于 Hadoop 和 Hive 构建的开源分析平台,事件日志都首先在 S3 上收集,然后再批量加载到 Hive。

    请注意,“NoSQL 架构”将涉及更多的开发工作。请记住,无论使用哪种架构,如果卷真正增长(每个客户数十亿行),您总是可以按客户分片 - 因为不需要(我猜)跨客户分析。

    【讨论】:

      【解决方案2】:

      我想说的是,实施 OLAP 分析总是很好,然后在使用 MDX 进行复杂数据分析方面具有巨大潜力。

      • 大容量是什么意思?
      • 您的客户用户信息在哪里?
      • 您将使用哪种前端和报告?

      干杯。

      免责声明:我会为我自己的解决方案做一些宣传 - 看看 www.icCube.com 并联系我了解更多详情

      【讨论】:

        【解决方案3】:

        这些我在生产环境中使用的东西,它就像一个魅力。

        我完成了三件事

        PostgreSQL + LucidDB + Mondrian(更一般地说是整个 Pentaho BI 套件组件)

        • PostgreSQL:我不打算描述 postgresql,真正强大的开源 RDBMS 会让你做 - 当然 - 你需要的一切。我用它来存储我的运营数据。

        • LucidDB:LucidDB 是一个开源列存储数据库。高度可扩展,与 PostgreSQL 相比,在检索大量数据方面将提供真正的处理时间增益。它没有针对事务处理进行优化,而是针对密集读取进行了优化。这是我的 Datawarehouse 数据库

        • Mondrian:蒙德里安是一个开源 R-OLAP 立方体。 LucidDB 可以轻松地将这两个程序连接在一起。

        我建议您查看整个 Pentaho BI 套件,值得一试,您可能想要使用其中的一些组件。

        希望我能帮上忙,

        【讨论】:

        • 谢谢! Pentaho BI 中是否有任何东西可以满足我让许多客户使用同一系统的特定需求?每个客户都将登录系统并且只需要访问他自己的数据。此外,这种方法的扩展性如何?
        • “只访问他自己的数据”是什么意思,这是在应用层。数据库与它无关。对于很多客户来说是的,如果你真的需要,你可以在云上部署 Pentaho。
        猜你喜欢
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        • 1970-01-01
        • 1970-01-01
        • 2015-12-05
        相关资源
        最近更新 更多