线下活动 statlysis 统计分析引擎 线下培训策划,欢迎集思广益

mvj3 · 2014年01月05日 · 最后由 blackanger 回复于 2014年01月10日 · 5080 次阅读

自上周 基于 Mongoid/ActiveRecord 的 statlysis 统计分析引擎 在 Ruby China 正式发布以来,收到不少同学们的反馈,相关数据整理如下:

  1. 帖子被浏览 500 多次,被 8 人喜欢。
  2. 在 github 收到 18 个 Star 和 3 个 Fork,这个算是起点吧。
  3. 向 Strikingly 的 CTO @dfguo ,课程格子的 CEO @tstyle11 ,和去哪儿网的某招聘负责人 @numberaugust 推荐了一下,均收到了表示要试用的意愿。
  4. 和 Rabel 社区软件作者 @daqing 在车库咖啡请教过推广方面事情,他对这类服务还是持保留意见。

个人觉得目前推广和使用还是不太给力,分析原因可能有,

  1. 受众采用的数据分析工具为两极分化严重的 SQL 和 Hadoop,分别对应一般的小公司和更专业的大公司,在习惯上没有做好接受的准备
  2. 项目在文档支持上还不够完善
  3. 目前没有 UI
  4. 数据本身属于公司内部敏感信息
  5. 再可能就是目前宣传还不够给力:)

线下培训

因此我想在近段时间作一场 statlysis 的 线下培训 ,场地可以是贝塔咖啡,或者近期活动的 Beijing Rails Girl 举办点 ThoughtWorks。

Beijing Ruby Saturday 主要组织者 @sundevilyang 不知是否对此感兴趣,也可以作为 Ruby Saturday 的一部分。

欢迎数据挖掘方面的专家 @ouyang 阳志平老师提建议,statlysis 第一次介绍还是在他家客厅,那时 Beijing Ruby 正在商讨如何负责国外讲师的来国内的接机和导游等安排。

也欢迎其他感兴趣的人来一起集思广益:)

培训内容就是做出一个满足若干个统计分析需求的后台,类似用户注册量等。

寻商业公司合作

由于项目的特殊性,需要提供数据来做统计分析(否则就只能写爬虫或 ETL 其他数据了),这方面不知道有无商业公司愿意开放部分无隐私或机密性数据来作为培训 Demo 的数据来源。这也算是赞助吧,欢迎联系我:)


项目地址:http://github.com/mvj3/statlysis

statlysis 统计分析引擎支持的功能列表如下:

  1. 支持 Mongoid 和 ActiveRecord 两种 ORM,其中 Mongoid 以 MapReduce 方式统计,ActiveRecord 基于纯 SQL 操作。
  2. 对统计结果进行 SQL 索引,以支持高效访问。
  3. 支持单行 DSL 配置,链式风格。
  4. 支持跨表统计,需结构相同,表名按日期分割。
  5. 依据统计需求自动配置统计结果的存储表,并支持条件查询,返回 ORM 统计表。
  6. 支持任意维度统计,其中时间维度可选。
  7. 单次统计里支持多个 GroupConcat 字段。
  8. 支持最近统计的时间。
  9. 支持以整数类型存储的时间字段,以兼容 PHP 社区的特别约定。

Demo 和成功案例

  • 手把手操作示例 ,是用很酷的模拟终端的 showterm 工具录制的。
  • eoe.cn 各子网站的页面访问统计,和包含多个条件的数据库表每日数据统计,详情见 示例配置文件 ,按日期维度分。
  • 阳光书屋的学习提高班的关于做题情况的统计分析,详情见 示例配置文件 ,按班级维度分。

将来要做的事

  • UI 模块。这个感谢 @blackanger 推荐了简单精美的 Chart.js ,未来想把它作成类似 RailsAdminActiveAdmin 的后台系统,因为统计出来的数据也是通过 ORM 访问的。
  • 功能加强。比如对 ActiveRecord 的分表支持还不是很完善等。
  • 等你来提 Issue 或直接 Fork 吧!

P.S: 我会在 ThoughtWorks 2014.01.11(也就是下周六)举办的 Rails Girls Beijing 活动上当教练,欢迎一起讨论:)

本人联系方式 https://github.com/mvj3 ,微博 @mvj3

最后做一个求职广告

本人目前待业,欲寻优秀团队来一起工作,期待一半人是 Geek,另一半人是其他角色,其中一半人的综合水平在我之上,团队之间沟通信息公开,尊重专业人士建议,最后产品靠谱是硬需求。

支持楼主,多跟客户交流~

首先支持一下楼主用 ruby 做数据分析一类的工具。目前 ruby 在这方面确实应用不多。

有两个问题想讨论下:

  1. 为什么用 mongodb 做数据分析?个人感觉 mongodb 不是适合做数据分析工具的,虽然存储数据比较随意,不用固定格式,但是查询功能偏弱,不像 sql 可以很灵活
  2. 关于 join 和多维度数据合并 目前来看好像这个工具不支持 join 和多维度数据合并。其实在真正的数据分析工作中,会碰到各种各样要从不同纬度合并数据的情况。比如类似网站的流量数据在 Hive 里,网站的商品信息在 sql 数据库里,或者不同部门用不同的数据库 (Mysql/Postgresql/Sql Server ...). 我们就碰到了以上各种情况。

我们目前用 ruby 写好了到各种数据库/Hive/以及读取 csv 的统一接口,然后可以很简单得从各来源取数据,定期更新数据合并到一块后,可以再导到表里或者导出成 excel 去分析。ruby 起到数据粘合剂的作用。而合并数据后的分析,目前也没有发现有什么 ruby 工具,所以都是导 excel 或者用 R 语言再去分析。

希望 ruby 在真正的数据分析这块儿能再强大些吧。R 语言是很好的分析语言,但毕竟还是所有事情都放在一个语言里做比较好。

没看明白这个能用来干啥,囧

#2 楼 @mqzhang 首先谢谢支持,感谢有分量的提问:),我一一回复如下:

回复第一个问题

个人认为 MongoDB 的两大特色就是 MapReduce 和分片。针对 statlysis 的理念是"因为用户最后能看到和理解的也就是两三维的分析图表而已,所以从用户理解出发",所以对于简单的数据统计而言,MongoDB 无疑是首选。其实用 MySQL 或 PostgreSQL 等关系型数据库也是无妨的。这里举两个技术细节,

  1. 数据存储。数据分析的数据操作相对其他数据库操作,它最大的特色就是要求必要的数据是全部读出来的,而直接存在 MongoDB 紧凑的 JSON 形式 比 按行索引存储去读取明显快多了。

  2. MapReduce。个人经验用 MongoDB 和 MySQL 分别对 500 万数据跑 GroupBy 操作,MongoDB 只需要 15 分钟,而 MySQL 可能要撑死了(这个我是看别人系统做的不好的表现哈,没有实际测过)。例子参考 Android 优亿市场数据采集分析系统概要

回复第二个问题

我个人建议还是把 ETL 和查询分开,任何东西在概念上搞到两层以上都太复杂了(如果是并列的,就属于一层),看看社区里关于 ActiveRecord 多对多关系等语句配置的提问。

对于你举的存在 Hive 和 MySQL 等数据库,跨数据库真的能 Join 吗,或者 Join 了能高效利用索引吗。。。

多维度是可以的,就是 GroupBy 的条件嘛,例子见 https://github.com/mvj3/statlysis/blob/master/examples/sunshinelibrary.rb

always ETL::LessonLog.where(:level => level),
       :group_by_columns => [
         {:column_name => :room, :type => :string},
         {:column_name => :lesson, :type => :string}
       ],
       :group_concat_columns => [:user]

还有合并的问题,请参考 statlysis 的 ETL 理念。

其他

你说的对,我认为 R 语言其实是另一个领域的,给搞统计专业的那帮人用的,这方面我也在学习和借鉴:)

#3 楼 @bhuztez

可以看下 README 里的成功案例。。。不知道你做过数据分析没,其实就是简单的 GroupBy,看手把手操作示例就可以了,跑 statlysis 的 test,或者拿自己的项目数据照着示例配置跑下看看。

或者欢迎成为 statlysis 第一个学员:)

#5 楼 @mvj3 建议你先学一下 APL ...

#6 楼 @bhuztez APL。。。我觉得你想的太复杂了,这些数据分析是直接面向外行的。

如果从技术上借鉴的话,我想我 R 语言可能对我帮助会更大些。

或者你帮忙一一分析 statlysis 和 APL 之间的关联?

@mvj3 周六加班。。。

#8 楼 @blackanger 是自己给自己公司加班吧。。。好几年没见到你了

@mvj3 不是的,我自己创业失败了,现在是新公司,年前调假的加班。

#10 楼 @blackanger 抱歉。。。

我觉得自己现在待业找工作也是类似于创业的状态,自己的工作经历和能力已经摆在那边了,剩下的就看怎么推销出去。不断的物色公司(创业和大公司都有,用不用 Rails 也不太关键),了解公司和团队背景,多轮电话面试,笔试,二面,找人聊天,等等。我算是可以体会到 CEO 有多辛苦了。

#11 楼 @mvj3 没什么抱歉的啊,失败乃成功之母。你怎么又待业了呢?不在阳光书屋了?

#12 楼 @blackanger 微博私聊。。。

mvj3 基于 Mongoid/ActiveRecord 的 statlysis 统计分析引擎 提及了此话题。 04月03日 10:57
需要 登录 后方可回复, 如果你还没有账号请 注册新账号