我想构建一个类似于Google-Analytics的网络应用程序,我会在其中收集客户最终用户的统计信息,并根据这些数据向客户展示分析。
特性:
由于分析需要,我正在考虑使用OLAP / BI套件,但我不确定它是否适用于这种规模。 NoSQL数据库?简单的RDBMS会做什么?
答案 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”架构
不可变事件存储或日志记录是存在的,因为在大多数情况下,您希望批量分析事件并对数据库进行批量更新(即使使用类似HDFS) - 而不是为每个页面视图执行原子写入等
对于基于Hadoop和Hive构建的开源分析平台SnowPlow,事件日志在批量加载到Hive之前首先在S3上收集。
请注意,“NoSQL架构”将涉及更多的开发工作。请记住,无论是哪种体系结构,如果卷都变得非常史诗(每个客户数十亿行),您总是可以按客户进行分片 - 因为没有必要(我猜)是跨客户分析。