Web规模分析应用程序的数据库选择

时间:2010-12-16 08:52:37

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

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

特性:

  • 高扩展性,处理量非常大
  • 划分区域 - 查询始终在单个客户的数据上运行
  • 支持分析查询(向下钻取,切片等)

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

3 个答案:

答案 0 :(得分:4)

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

我复制了三件事

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

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

  • LucidDB:LucidDB是一个开源的列存储数据库。与PostgreSQL相比,它具有高度可扩展性,可以提供更长的处理时间,用于检索大量数据。它没有针对事务处理进行优化,而是针对密集读取进这是我的Datawarehouse数据库

  • Mondrian:Mondrian是一个开源的R-OLAP多维数据集。 LucidDB可以很容易地将这两个程序连接在一起。

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

希望我能提供帮助,

答案 1 :(得分:1)

我认为实施OLAP分析总是很好,然后使用MDX进行复杂的数据分析具有很大的潜力。

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

干杯。

免责声明:我会对自己的解决方案进行一些宣传 - 请查看www.icCube.com并与我联系以获取更多详情

答案 2 :(得分:1)

您可以选择两种主要的体系结构来实现真正的Web规模:

<强> 1。 “BI”架构

<强> 2。 “NoSQL”架构

  • (可选)事件日记记录或不可变事件存储订阅源
  • NoSQL数据库(例如Cassandra,Riak,HBase) feeds
  • 自定义分析用户界面(例如,使用D3.js

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

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

请注意,“NoSQL架构”将涉及更多的开发工作。请记住,无论是哪种体系结构,如果卷都变得非常史诗(每个客户数十亿行),您总是可以按客户进行分片 - 因为没有必要(我猜)是跨客户分析。