1 / 27

自下而上的数据仓库构建方法 童小军( XiaoJun Tong )

自下而上的数据仓库构建方法 童小军( XiaoJun Tong ). —— 思考数据统计系统的需求/本源 —— 寻找一种简易统计分析思路 —— 尝试一种 简单简简易 统计的简单实现和应用. 1. 童小军 (XiaoJun Tong ). 2006 来北京从事搜索引擎研发工作 [思考搜索的智能?] 2007 ~ 2008 在 FeedSky 从事博客搜索研发 (Web2.0) 2008 ~ 至今 北京暴风网际 搜索研发主管 2010 ~ 2012 对外经济贸易大学 UIBE 国际商学院 企业管理研究生[ 在读 ]

efia
Download Presentation

自下而上的数据仓库构建方法 童小军( XiaoJun Tong )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 自下而上的数据仓库构建方法 • 童小军(XiaoJun Tong) —— 思考数据统计系统的需求/本源 —— 寻找一种简易统计分析思路 —— 尝试一种简单简简易统计的简单实现和应用 1

  2. 童小军 (XiaoJunTong) • 2006 来北京从事搜索引擎研发工作 [思考搜索的智能?] • 2007 ~2008 在 FeedSky 从事博客搜索研发 (Web2.0) • 2008 ~至今北京暴风网际 搜索研发主管 • 2010~2012 对外经济贸易大学 UIBE • 国际商学院 企业管理研究生[在读] • 微博:t.sina.cn/tongxiaojun • MSN :tongxiaojun@msn.com 2

  3. [暴风搜索] 数据平台发展几个阶段 • 2008 rsync ,log文件, java分析, jsp 程序 • 2009 BI,数据仓库,syslog-ng,perl/python • 2010 [4w + r = 3h],闭环反馈,数据决策,报表驱动 • 2011 管理会计,内部成本/收益核算[PV/$],ISO9001,PMI [OPM3] 3

  4. [思考] 数据统计,分析的需求/本源? [思考]数据统计需求和本源? 需求/本源 ? 使用 列举类推法 思考

  5. [思考] 需求/本源 [举例:组织结构] 5

  6. [思考] 需求/本源 [举例: 质量优化] 6

  7. [思考] 需求/本源 [举例: 工业控制] 7

  8. [思考] 组织项目管理成熟度模型 • OPM3模型第1维 成熟度的4个梯级分别是: • 标准化的 (Standardizing) • 可测量的 (Measuring) • 可控制的 (Controlling) • 持续改进的 (Continuously Improving) 8

  9. [思考] 需求/本源 [简易的智能结构] 需求/本源 => 智能/结构 商业智能[BI] 性能指标: 反馈周期? 决策有效性? 反馈成本? 数据统计/分析 是自动控制系统和自学习,自调整系统的核心组成部分。 9

  10. [数据 构建方法 ] 什么是自下而上? • [需求] --> [展现] --> [分析逻辑] --> [数据结构] • 变化可能 -----> 越到底层越少 • 修改成本 -----> 越到底层越高 10

  11. [数据 构建思路 ] • [抽象分析] --> [总结归纳] --> [数据结构] --> [各类逻辑] --> [业务需求] • 保留全部可能性 --> 总结需求的组成基本变量 --> 总结固定逻辑和结构 --> 设计满足各类需求的系统

  12. [构建策略] 自下而上,以不变应万变 ==自下而上构建== 12

  13. [Log 构建方法] 四个 构建策略 • 1. 数据公式:[4w+r = 2h] • 2. 实时汇总:[js-->nginx+perl--> syslog-ng --> python/perl --> db] • 3. 存储格式:[一日一表] • 4. 统计方法:[2sql 方法] • 5. 图表展现:[模板引擎] 13

  14. 1. Log 数据公式:[4w+r = 2h] • 4W(who,when,where,what)+R(result) = 3H(why? how? win?) log 统计: • who = (uid,uname) 用户维度 • when = [time,last_time,log_time] 时间维度 • where = (url/from_url,version,host,uip,system) 空间维度 • what = (click/search[ keyword,order filed])) 场景维度 • result = (time,count,iscached) 结果维度 = 3H(why how win)为何? 怎么办? 如何赢? 14

  15. 2. 实时汇总:[js+nginx+syslog-ng+perl] • 流程: js-->nginx+perl--> syslog-ng --> python/perl --> db • JS[flash]: 收集用户前端的感受 • nginx + 嵌入perl 模块: 并发和并能 • syslog-ng: log{ source(s_local); filter(f_cache); destination(d_cache_file);destination(d_cache_py);}; • db: mysql : MyISAM [列式数据库: infobright] (够用就行) 15

  16. 3. 存储格式:[一日一表] • 1. 一日一个表结构,每日凌晨压缩 • 2. 表结构 [Mysql MyISAM ] • 3. 少量索引 • 4. 压缩工具: myisampack 压缩 40% - 50% [自读] • 5. 举例: search_log_20101011 click_log_20101011 16

  17. 4. 统计方法:[2sql 方法] • [2sql 方法[大部分 满足分析需求] + 程序(小部分)] • 数据仓库 --> sql --> 数据集市 -->sql --> 展现结果 [满足大部分的分析需求] • sqltask 分析工具 原理。log库 --> 统计库 [配置可以在sql 客户端直接调试] DEMO: #desc: 搜索行为次数,实际无结果,实际无结果率[相对,绝对] 搜索无结果次数/搜索行为次数 #source:127.0.0.1:3306:user_action #market:127.0.0.1:3306:user_analysis #{search_result}{mode:varchar(255),count:int(11),qj_rate:float,rate:float,day:int(8),update_time:bigint(20)} select result_type as mode, count(search_log_id) as count, count(search_log_id)*100/(select count(search_log_id) from log_search_#day where 1 and result_count='0' ) as rate, count(search_log_id)*100/(select count(search_log_id) from log_search_#day where 1 and search_begin=1) as qj_rate, '#day' as day, UNIX_TIMESTAMP(now())*1000 as update_time from log_search_#day where 1 and result_count='0' and search_begin=1 group by mode order by count desc;";

  18. 4. 图表展现:[模板引擎] 1. 定义数据源 2. 定义查询语句和变化字段 3. 定义展现配置 DEMO: #desc: 搜索行为次数,实际无结果,实际无结果率[相对,绝对] 搜索无结果次数/搜索行为次数 #source:127.0.0.1:3306:user_action #input:#start_day #end_day #X:day Y:count Type:line #{搜索行为}{mode:类型,count:搜索,qj_rate:绝对无结果,rate:比例,day:天,update_time:更新时间} select mode,count,qj_rate,rate,day,update_time from search_result where 1 and day>=#start_day day<=#end_day order by day desc;";

  19. [发展经历] 暴风搜索数据两个阶段 第一阶段: js --> php --> log [n] --> rsync --> log.tar.gz -> 分析程序[分析逻辑] --> 数据库 -->数据展现 [java] 第二阶段: [业务知识和行业同步] js --> [nginx + perl] --> syslog-ng --> search_log 入库程序 --> 数据仓库 -->[sql] sql_task程序 --> 数据集市 -->[sql] 展现 [python[邮件]/.net[桌面]] 19

  20. python 报表邮件实现 • 数据集市[db] --> python --> data.file --> gnuplot + 绘图配置 --> img + data --> mail • gnuplot 帮助: http://dsec.pku.edu.cn/dsectest/dsec_cn/gnuplot/

  21. 分析桌面平台的基本构思 • 方案: sql + 配置 ==> 数据 + 曲线 集成环境: 桌面工具 + 方案存储 + 统计展现

  22. 数据系统和快速决策 [小版本放量数据平台] • 修改决策 --> 研发测试 --> 上线 --> 数据 [单一决策,周期长,影响整体稳定性] • 修改决策 --> 研发测试 --> 分流系统 --> 正式环境 --> 数据 [支持多路决策,周期端,影响小,心理成本低] • --> 小版本1 --> 数据 • --> 小版本2 --> 数据

  23. 什么是成功的数据系统? • 思考那些指标影响了一个数据系统的性能? • 以上思路在那些方面改善了这些指标。 • 反馈周期? • 决策有效性? • 反馈成本?

  24. 总结,我们可以以什么应对变化? ==以不变应万变== ==以闭环反馈应万变== ==以4w+r=3h应万变== 24

  25. 题外话 • 题外话: [个人的一个发现] • 关于海内外互联网 alexa 排名总结 . • Alexa 排名显示: • 中国本土互联网繁荣。 • Alexa 排名比例: 500强:12.6% 200强:12.5% 100强:13% 位美国后。 • 中国本土应用遍地开花。业务涵盖 搜索 门户 IM 电子商务 视频分享 微博 等领域 。而其他国家用户多访问美国服务。 • 数据来源: http://s3.amazonaws.com/alexa-static/top-1m.csv.zip • 因语言[汉 英], 政策差异较大[开放/半封闭]: • 互联网会出现两个极点! 一个在美国,一个在中国。

  26. Q&A • 童小军(XiaoJun Tong) • 微博:http://t.sina.com.cn/tongxiaojun 26

  27. 招聘广告 - 暴风: 让享受电影更简单 • 暴风影音诚聘P2P高级研发工程师 • 精通C/C++,4年或以上P2P开发经验, • 对现行P2P软件的客户端及服务端的架构设计有一定了解, • 对某款P2P产品有深入了解更佳。 • 有在线视频点播类产品开发经验者优先, • 有意者请发送简历 • hr@baofeng.com • 请在标题处注明来源。

More Related