【问题标题】:How to quickly build large scale analytics server?如何快速搭建大规模分析服务器?
【发布时间】:2012-09-13 07:30:43
【问题描述】:

我需要快速且廉价地构建一个大规模(七位数及以上)的分析服务器。

Piwik 将是一个简单的选择,但就我目前收集到的情况而言,Piwik 很难扩展,并且可能需要相当庞大的服务器来处理负载。

我的第二个想法是创建快速而肮脏的 Node.js 服务器,它将所有内容推送到 Amazon DynamoDB,这样人们就可以从第一天开始收集数据,然后在以后构建 UI。这将很快创建和扩展(垂直和水平)。但是,我想知道 DynamoDB 是否是此类用途的正确选择? (收集数据,生成报告)

【问题讨论】:

    标签: node.js nosql analytics amazon-dynamodb


    【解决方案1】:

    我正在专业地使用 DynamoDB,不会将它用于您的应用程序。

    DynamoDB 确实有很多限制。其中,hash_key 只能有一个,range_key 也可以有一个。

    您可以使用query 对分组在给定hash_key 下的项目进行一些“分析”,但实际上并没有什么花哨的。对于复杂的查询,您必须使用 scan 或 EMR,它们速度慢且成本高,并且由于限制而存在一些缺点。

    尽管如此,NoSQL 似乎是一个不错的选择,至少在应用程序的原型设计阶段是这样。但是,我会推荐 MongoDB。你可以索引任何列,做复杂的查询,不用担心数据限制。分片和复制并不难设置。

    MongoDB 拥有强大的生态系统和社区,而 DynamoDB 还没有,因为它更年轻。 MongoDB 还提供托管服务,让您可以像使用 DynamoDB 一样快速地引导您的应用程序。

    【讨论】:

    • 听起来不错。 MongoDB 是 DB 端的另一个选择,所以我想我会那样做。结果可能是我最终每天要写 7-8 个数字,但我想 Mongo 应该能够处理这个问题。 :)
    【解决方案2】:

    Piwik 每月可扩展到数百万个页面和数十万个跟踪网站。查看他们的文档:http://piwik.org/docs/optimize/ 和:http://piwik.org/blog/2012/07/piwik-high-scale-performance-report-as-of-july-2012/

    【讨论】:

    • 嗯,规模将是这些数字,但每天。 :)