SlideShare una empresa de Scribd logo
1 de 49
搜狐 PVInsight 运算系统 刘凯毅  ; 尤春
PVInsight  系统简介 ,[object Object],[object Object]
PVInsight 运系统简介 什么样的用户认可提供的价值? 这些用户有商业价值吗? 有多认可? 开始认识用户吧 !
系统简介  /  用户 关键字 :  响应用户  /  新用户  /  活跃用户  /  流失用户
系统简介  /  用户 关键字  : 连续访问
系统简介  /  sohu  企邮 一个企邮用户的连续访问 >  登入  > [ 管理此域 ] >  员工列表 >  广播邮件  * >>> .....  一通点击 >  群组列表  >  新建群组 >  广播邮件  * >  发送 想发广播邮件的用户 想做了些什么?
系统简介  /  sohu  企邮 如何发现 此类连续访问问题 ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],系统简介  /  商业价值 各个职位上对商业价值的帮助  广告给我们带来效果怎么样 ?
系统简介  /  商业价值角度
名词解释 Pv : page view  浏览次数 Uv : unique visitor  独立访客 Ip :  独立 Ip 数 新老访客 /  回头用户  /  会话次数  /  访问间隔  /  停留时长  /  访问深度  /  回访率  /  跳出率  /  入口率  计费方式 : cpc :  每次点击计费 cpm :  千次效果展现 计费 cpa  :  用户行为计费 cps  :  销售成本计费
名词解释 现实是很残酷的 :  其实  UV  就很难算  ~ 我们的  UID  是一个  16 位的字符串  一般一个小小的统计就上亿条的记录 ( 16*8* (10**8) ) / ((2**10)**3) =  12 G
PVInsight 运系统简介 ,[object Object],[object Object],[object Object],[object Object],[object Object]
系统架构  /  图
系统架构  /  使用语言 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Py  细节  /  预处理
Py  细节  /  预处理  /  数据完整性  url url =>  栏目 ID ,频道 ID
Py  细节  /  预处理  /  数据完整性  url 域名 +url auto.sohu.com/ /20090914/n266706777.shtml   域名  auto.sohu.com/ 泛域名 i.auto.sohu.com/ 20090913/n237706498.shtml   特例 http://cs.focus.cn/news/2005-09-14/128510.html
Py  细节  /  预处理  /  数据完整性  url ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Py  细节  /  预处理  /  数据完整性  url Btree  key  url  moc.uhos.otua |  / 20090913/n237706498.shtml moc.uhos.otua  |  moc.uhos.otua. i  |  /20090914/n266706777.shtml   | = 174  特例 cs.focus.cn/news/2005-09-14/128510.html
Py  细节  /  预处理  /  数据清洗 流水线——预处理 0908251329265655 [26/Aug/2009:13:25:01 +0800] 123.15.49.138 "GET /pv.gif?t?=1251264295765164_1024_768?r?=http://www.sohu.com/ HTTP/1.1" "http://news.sohu.com/20090826/n266231388.shtml" pv.sohu.com CN4107 - - "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; QQDownload 570; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" iamyp78@sohu.com news.sohu.com  0908251329265655  20090826/n266231388.shtml  26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655  1252922376 900 /20090707/n265035120.shtml  11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655  20090826/n266231388.shtml  26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655   1252922376 900 /20090707/n265035120.shtml  11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655   20090826/n266231388.shtml  26/Aug/2009:13:25:01   0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655  1252922376  900 /20090707/n265035120.shtml  11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655   20090826/n266231388.shtml   26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com CN2301 908251329265655  1252922376  900 /20090707/n265035120.shtml   11 /  0|2|1|1|iamyp78@sohu.com  CN2301  news.sohu.com  0908251329265655  20090826/n266231388.shtml  26/Aug/2009:13:25:01  0|2|1|1|iamyp78@sohu.com  www.sohu.com  CN2301 908251329265655  1252922376 900 /20090707/n265035120.shtml   11 /   0|2|1|1|iamyp78@sohu.com  CN2301
Py  细节  /  预处理  /  数据清洗 Py  的一些特性正则 >>> re.findall( r’(?:ab)+’ , ’ababab abbabb aabaab’) 输出  : ['ababab'] >>> re.findall( ’/.*?/’ , ‘/* part 1 */  code  /* part 2 */  ‘) 输出  : ['/* part 1 */', '/* part 2 */']     ‘ (?<=…)’  前向界定  , ‘(?=…)’   后向界定 >>> s=r’/* comment 1 */  code  /* comment 2 */’ >>> re.findall( r’(?<=/).+?(?=/)’ , s ) [' comment 1 ', ' comment 2 '] # py  条件正则 大家请注意 。。。
Py  细节  /  预处理  /  数据清洗 合理使用正则
Py  细节  /  预处理  /  中间结果  /  分时分治
PVInsight 运算系统实现 流水线——分时处理
Py  细节  /  分时 流水线——分时处理
Py  细节 分治
计算  UV 好吧已经知道 UV  就很难算  ~ 我们先来看看 ,目前非常火的  Mapreduce  解决方案!
UV  计算, mapreduce  解决方案 目前我这里使用的, mapreduce  很粗暴!
UV  计算, mapreduce  解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  SUV1 频道 1  SUV1 频道 1  SUV2 频道 1  SUV3 频道 2  SUV1 频道 1  SUV1 频道 1  SUV1 频道 1  SUV2 频道 1  SUV3 频道 2  SUV1 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  SUV1 频道 1  SUV3 频道 1  SUV1 频道 1  SUV2 频道 2  SUV1 频道 1  SUV1 频道 1  SUV3 频道 1  SUV2 频道 2  SUV1
UV  计算, mapreduce  解决方案 频道 1,IP1,SUV1 频道 2, IP1,SUV2 频道 1, IP2,SUV3 频道 1  ‘SUV’  SUV1 频道 1  ‘IP’  IP1 频道 2  ‘SUV’  SUV2 频道 2  ‘IP’  IP1 频道 1  ‘SUV’  SUV3 频道 1  ‘IP’  IP2 … …
Py  细节  /  预处理  /  中间结果  /  分时分治 Python  : marshal
UV  计算, python  解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  001001… 频道 2  100111 … 频道 1  110011… 频道 1  00100… 频道 1  0001010… 频道 2  1001000…
UV  计算, python  解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1  001001… 频道 2  100111 … 频道 1  110011… 频道 1  00100… 频道 1  0001010… 频道 2  1001000…
UV  计算, python  解决方案 现实又一次的残酷了! 我们的  UID  是一个  16 位的字符串 ~
UV  计算, python  解决方案 bc=bitarray() for n in xrange( 1000 ) :     bc.extend(bitarray(10**6)) #120M f1=open('/tmp/bc1.ba','wa') bc.tofile(f1) #  我测试在  160k  左右 sio = StringIO() f2=open('/tmp/bc2.ba','wb') w = GzipFile('/tmp/bc3.ba','wb',9,sio) w.write(bc.tostring()) w.close()
UV  计算, python  解决方案
UV  计算, python  调度 这么多任务 , 我们需要以个 .. 调度
Py  细节  /  调度  - gearman
Py  细节  /  调度 – 想象远没现实美好
Py  细节  /  胶水  R / rpy2  import rpy2.robjects as robjects r = robjects.r robjects.globalenv[&quot;x&quot;] = robjects.FloatVector([1,2, 3, 4, 5, 6, 7, 8, 9, 10]) robjects.globalenv[&quot;y&quot;] = robjects.FloatVector([0,30,44,57,65,78,68,97,99,120]) lm_d9 = r.lm(&quot;y ~ 1+x&quot;) r.predict( lm_d9, robjects.r(&quot; data.frame(x=11) &quot;), interval=&quot;prediction&quot;,level=0.95)[0] 输出 :   128.26666666666668
数据的重要性  -  数据可视化 Twitter  上我们的关系
数据的重要性  -  数据可视化 facebook 人物关系链图
数据的重要性  -  数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
数据的重要性  -  数据可视化 高转帖子的传播环: 二环为粉丝转发  5%  , 三环为粉丝们的粉丝转发  55%  , 四环是粉丝们的粉丝加泛粉丝  25% , 五环是随机粉丝  15%  。
数据的重要性  -  数据可视化
数据的重要性  -  数据可视化 twitter 上的 love 有关的关键词
数据的重要性  -  数据可视化 twitter 上的 hate 有关的关键词
数据的重要性  -  数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
 

Más contenido relacionado

La actualidad más candente

打造四軸飛行器
打造四軸飛行器打造四軸飛行器
打造四軸飛行器大峯 黃
 
Apache spot 初步瞭解
Apache spot 初步瞭解Apache spot 初步瞭解
Apache spot 初步瞭解Hua Chu
 
Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得roboard
 
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)Simen Li
 
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack FirmwareSimen Li
 
密碼學漏洞與他們的產地 Crypto fail and where to find them
密碼學漏洞與他們的產地   Crypto fail and where to find them密碼學漏洞與他們的產地   Crypto fail and where to find them
密碼學漏洞與他們的產地 Crypto fail and where to find themJohn L Chen
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计Hengyi
 
Python 中 += 與 join比較
Python 中 += 與 join比較Python 中 += 與 join比較
Python 中 += 與 join比較kao kuo-tung
 

La actualidad más candente (20)

Ch12 教學
Ch12 教學Ch12 教學
Ch12 教學
 
打造四軸飛行器
打造四軸飛行器打造四軸飛行器
打造四軸飛行器
 
Ppt 127-135
Ppt 127-135Ppt 127-135
Ppt 127-135
 
Optimzing mysql
Optimzing mysqlOptimzing mysql
Optimzing mysql
 
Apache spot 初步瞭解
Apache spot 初步瞭解Apache spot 初步瞭解
Apache spot 初步瞭解
 
Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得
 
Ch8 範例
Ch8 範例Ch8 範例
Ch8 範例
 
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
 
Ppt 138-142
Ppt 138-142Ppt 138-142
Ppt 138-142
 
Ch11 範例
Ch11 範例Ch11 範例
Ch11 範例
 
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
 
Ppt 136-140
Ppt 136-140Ppt 136-140
Ppt 136-140
 
Ch6 教學
Ch6 教學Ch6 教學
Ch6 教學
 
Ch5 範例
Ch5 範例Ch5 範例
Ch5 範例
 
密碼學漏洞與他們的產地 Crypto fail and where to find them
密碼學漏洞與他們的產地   Crypto fail and where to find them密碼學漏洞與他們的產地   Crypto fail and where to find them
密碼學漏洞與他們的產地 Crypto fail and where to find them
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
 
Ppt 1-50
Ppt 1-50Ppt 1-50
Ppt 1-50
 
Python 中 += 與 join比較
Python 中 += 與 join比較Python 中 += 與 join比較
Python 中 += 與 join比較
 
Ch10 習題
Ch10 習題Ch10 習題
Ch10 習題
 
S4A
S4AS4A
S4A
 

Destacado

Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...
Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...
Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...GIS Day
 
青蛙爬高塔
青蛙爬高塔青蛙爬高塔
青蛙爬高塔realme0420
 
青蛙爬高塔
青蛙爬高塔青蛙爬高塔
青蛙爬高塔realme0420
 
青蛙爬高塔
青蛙爬高塔青蛙爬高塔
青蛙爬高塔realme0420
 
R语言简介
R语言简介R语言简介
R语言简介bj
 
Mongodb
MongodbMongodb
Mongodbbj
 
Domenico Costantino. Paesaggio E Gis
Domenico Costantino. Paesaggio E GisDomenico Costantino. Paesaggio E Gis
Domenico Costantino. Paesaggio E GisGIS Day
 
Claudia Spinnato. I Gis, Provincia Di Nessuna Disciplina
Claudia Spinnato. I Gis, Provincia Di Nessuna DisciplinaClaudia Spinnato. I Gis, Provincia Di Nessuna Disciplina
Claudia Spinnato. I Gis, Provincia Di Nessuna DisciplinaGIS Day
 
Manuale Router Sitecom Wl577
Manuale Router Sitecom Wl577Manuale Router Sitecom Wl577
Manuale Router Sitecom Wl577guest854c41d
 

Destacado (9)

Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...
Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...
Barrotta. Interoperabilità E Implementazione Di Servizi Webgis Allinterno Di ...
 
青蛙爬高塔
青蛙爬高塔青蛙爬高塔
青蛙爬高塔
 
青蛙爬高塔
青蛙爬高塔青蛙爬高塔
青蛙爬高塔
 
青蛙爬高塔
青蛙爬高塔青蛙爬高塔
青蛙爬高塔
 
R语言简介
R语言简介R语言简介
R语言简介
 
Mongodb
MongodbMongodb
Mongodb
 
Domenico Costantino. Paesaggio E Gis
Domenico Costantino. Paesaggio E GisDomenico Costantino. Paesaggio E Gis
Domenico Costantino. Paesaggio E Gis
 
Claudia Spinnato. I Gis, Provincia Di Nessuna Disciplina
Claudia Spinnato. I Gis, Provincia Di Nessuna DisciplinaClaudia Spinnato. I Gis, Provincia Di Nessuna Disciplina
Claudia Spinnato. I Gis, Provincia Di Nessuna Disciplina
 
Manuale Router Sitecom Wl577
Manuale Router Sitecom Wl577Manuale Router Sitecom Wl577
Manuale Router Sitecom Wl577
 

Similar a 搜狐Pv insight(py)技术交流

Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOpenSourceCamp
 
181201_CoAP_coding365
181201_CoAP_coding365181201_CoAP_coding365
181201_CoAP_coding365Peter Yi
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUGYingSiang Geng
 
TWNIC 13th OPM session
TWNIC 13th OPM sessionTWNIC 13th OPM session
TWNIC 13th OPM sessionKae Hsu
 
Catia v5 CAM enhancement
Catia v5 CAM enhancementCatia v5 CAM enhancement
Catia v5 CAM enhancementJimmy Chang
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述Xiaozhe Wang
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)FLASH开发者交流会
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)Shanda innovation institute
 
Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Harvey Zhang
 
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)Yi-Feng Tzeng
 
Practices of equipment communication v1.0
Practices of equipment communication v1.0Practices of equipment communication v1.0
Practices of equipment communication v1.0yaohung
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)FLASH开发者交流会
 
程式人雜誌 -- 2014 年7月號
程式人雜誌 -- 2014 年7月號程式人雜誌 -- 2014 年7月號
程式人雜誌 -- 2014 年7月號鍾誠 陳鍾誠
 
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)家雋 莊
 
自下而上的数据仓库构建方法
自下而上的数据仓库构建方法自下而上的数据仓库构建方法
自下而上的数据仓库构建方法tongxiaojun
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renrend0nn9n
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快li qiang
 

Similar a 搜狐Pv insight(py)技术交流 (20)

Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
 
181201_CoAP_coding365
181201_CoAP_coding365181201_CoAP_coding365
181201_CoAP_coding365
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
TWNIC 13th OPM session
TWNIC 13th OPM sessionTWNIC 13th OPM session
TWNIC 13th OPM session
 
Catia v5 CAM enhancement
Catia v5 CAM enhancementCatia v5 CAM enhancement
Catia v5 CAM enhancement
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
 
Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化
 
Yahoo! Map API
Yahoo! Map APIYahoo! Map API
Yahoo! Map API
 
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)資料庫索引數據結構及主鍵設計(b+tree)(part 1)
資料庫索引數據結構及主鍵設計(b+tree)(part 1)
 
Practices of equipment communication v1.0
Practices of equipment communication v1.0Practices of equipment communication v1.0
Practices of equipment communication v1.0
 
Enterprise Data Lake in Action
Enterprise Data Lake in ActionEnterprise Data Lake in Action
Enterprise Data Lake in Action
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
 
程式人雜誌 -- 2014 年7月號
程式人雜誌 -- 2014 年7月號程式人雜誌 -- 2014 年7月號
程式人雜誌 -- 2014 年7月號
 
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
 
自下而上的数据仓库构建方法
自下而上的数据仓库构建方法自下而上的数据仓库构建方法
自下而上的数据仓库构建方法
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renren
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快
 
2016 nas 年會簡報
2016 nas 年會簡報2016 nas 年會簡報
2016 nas 年會簡報
 

搜狐Pv insight(py)技术交流

  • 1. 搜狐 PVInsight 运算系统 刘凯毅 ; 尤春
  • 2.
  • 3. PVInsight 运系统简介 什么样的用户认可提供的价值? 这些用户有商业价值吗? 有多认可? 开始认识用户吧 !
  • 4. 系统简介 / 用户 关键字 : 响应用户 / 新用户 / 活跃用户 / 流失用户
  • 5. 系统简介 / 用户 关键字 : 连续访问
  • 6. 系统简介 / sohu 企邮 一个企邮用户的连续访问 > 登入 > [ 管理此域 ] > 员工列表 > 广播邮件 * >>> ..... 一通点击 > 群组列表 > 新建群组 > 广播邮件 * > 发送 想发广播邮件的用户 想做了些什么?
  • 7.
  • 8.
  • 9. 系统简介 / 商业价值角度
  • 10. 名词解释 Pv : page view 浏览次数 Uv : unique visitor 独立访客 Ip : 独立 Ip 数 新老访客 / 回头用户 / 会话次数 / 访问间隔 / 停留时长 / 访问深度 / 回访率 / 跳出率 / 入口率 计费方式 : cpc : 每次点击计费 cpm : 千次效果展现 计费 cpa : 用户行为计费 cps : 销售成本计费
  • 11. 名词解释 现实是很残酷的 : 其实 UV 就很难算 ~ 我们的 UID 是一个 16 位的字符串 一般一个小小的统计就上亿条的记录 ( 16*8* (10**8) ) / ((2**10)**3) = 12 G
  • 12.
  • 14.
  • 15. Py 细节 / 预处理
  • 16. Py 细节 / 预处理 / 数据完整性 url url => 栏目 ID ,频道 ID
  • 17. Py 细节 / 预处理 / 数据完整性 url 域名 +url auto.sohu.com/ /20090914/n266706777.shtml 域名 auto.sohu.com/ 泛域名 i.auto.sohu.com/ 20090913/n237706498.shtml 特例 http://cs.focus.cn/news/2005-09-14/128510.html
  • 18.
  • 19. Py 细节 / 预处理 / 数据完整性 url Btree key url moc.uhos.otua | / 20090913/n237706498.shtml moc.uhos.otua | moc.uhos.otua. i | /20090914/n266706777.shtml | = 174 特例 cs.focus.cn/news/2005-09-14/128510.html
  • 20. Py 细节 / 预处理 / 数据清洗 流水线——预处理 0908251329265655 [26/Aug/2009:13:25:01 +0800] 123.15.49.138 &quot;GET /pv.gif?t?=1251264295765164_1024_768?r?=http://www.sohu.com/ HTTP/1.1&quot; &quot;http://news.sohu.com/20090826/n266231388.shtml&quot; pv.sohu.com CN4107 - - &quot;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; QQDownload 570; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)&quot; iamyp78@sohu.com news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301 news.sohu.com 0908251329265655 20090826/n266231388.shtml 26/Aug/2009:13:25:01 0|2|1|1|iamyp78@sohu.com www.sohu.com CN2301 908251329265655 1252922376 900 /20090707/n265035120.shtml 11 / 0|2|1|1|iamyp78@sohu.com CN2301
  • 21. Py 细节 / 预处理 / 数据清洗 Py 的一些特性正则 >>> re.findall( r’(?:ab)+’ , ’ababab abbabb aabaab’) 输出 : ['ababab'] >>> re.findall( ’/.*?/’ , ‘/* part 1 */ code /* part 2 */ ‘) 输出 : ['/* part 1 */', '/* part 2 */']     ‘ (?<=…)’ 前向界定 , ‘(?=…)’  后向界定 >>> s=r’/* comment 1 */  code  /* comment 2 */’ >>> re.findall( r’(?<=/).+?(?=/)’ , s ) [' comment 1 ', ' comment 2 '] # py 条件正则 大家请注意 。。。
  • 22. Py 细节 / 预处理 / 数据清洗 合理使用正则
  • 23. Py 细节 / 预处理 / 中间结果 / 分时分治
  • 25. Py 细节 / 分时 流水线——分时处理
  • 26. Py 细节 分治
  • 27. 计算 UV 好吧已经知道 UV 就很难算 ~ 我们先来看看 ,目前非常火的 Mapreduce 解决方案!
  • 28. UV 计算, mapreduce 解决方案 目前我这里使用的, mapreduce 很粗暴!
  • 29. UV 计算, mapreduce 解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 SUV1 频道 1 SUV1 频道 1 SUV2 频道 1 SUV3 频道 2 SUV1 频道 1 SUV1 频道 1 SUV1 频道 1 SUV2 频道 1 SUV3 频道 2 SUV1 频道 1,SUV1 频道 2,SUV2 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 SUV1 频道 1 SUV3 频道 1 SUV1 频道 1 SUV2 频道 2 SUV1 频道 1 SUV1 频道 1 SUV3 频道 1 SUV2 频道 2 SUV1
  • 30. UV 计算, mapreduce 解决方案 频道 1,IP1,SUV1 频道 2, IP1,SUV2 频道 1, IP2,SUV3 频道 1 ‘SUV’ SUV1 频道 1 ‘IP’ IP1 频道 2 ‘SUV’ SUV2 频道 2 ‘IP’ IP1 频道 1 ‘SUV’ SUV3 频道 1 ‘IP’ IP2 … …
  • 31. Py 细节 / 预处理 / 中间结果 / 分时分治 Python : marshal
  • 32. UV 计算, python 解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 001001… 频道 2 100111 … 频道 1 110011… 频道 1 00100… 频道 1 0001010… 频道 2 1001000…
  • 33. UV 计算, python 解决方案 频道 1,SUV1 频道 2,SUV2 频道 1,SUV1 频道 1,SUV3 频道 1,SUV1 频道 1,SUV2 频道 1 001001… 频道 2 100111 … 频道 1 110011… 频道 1 00100… 频道 1 0001010… 频道 2 1001000…
  • 34. UV 计算, python 解决方案 现实又一次的残酷了! 我们的 UID 是一个 16 位的字符串 ~
  • 35. UV 计算, python 解决方案 bc=bitarray() for n in xrange( 1000 ) :     bc.extend(bitarray(10**6)) #120M f1=open('/tmp/bc1.ba','wa') bc.tofile(f1) # 我测试在 160k 左右 sio = StringIO() f2=open('/tmp/bc2.ba','wb') w = GzipFile('/tmp/bc3.ba','wb',9,sio) w.write(bc.tostring()) w.close()
  • 36. UV 计算, python 解决方案
  • 37. UV 计算, python 调度 这么多任务 , 我们需要以个 .. 调度
  • 38. Py 细节 / 调度 - gearman
  • 39. Py 细节 / 调度 – 想象远没现实美好
  • 40. Py 细节 / 胶水 R / rpy2 import rpy2.robjects as robjects r = robjects.r robjects.globalenv[&quot;x&quot;] = robjects.FloatVector([1,2, 3, 4, 5, 6, 7, 8, 9, 10]) robjects.globalenv[&quot;y&quot;] = robjects.FloatVector([0,30,44,57,65,78,68,97,99,120]) lm_d9 = r.lm(&quot;y ~ 1+x&quot;) r.predict( lm_d9, robjects.r(&quot; data.frame(x=11) &quot;), interval=&quot;prediction&quot;,level=0.95)[0] 输出 : 128.26666666666668
  • 41. 数据的重要性 - 数据可视化 Twitter 上我们的关系
  • 42. 数据的重要性 - 数据可视化 facebook 人物关系链图
  • 43. 数据的重要性 - 数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
  • 44. 数据的重要性 - 数据可视化 高转帖子的传播环: 二环为粉丝转发 5% , 三环为粉丝们的粉丝转发 55% , 四环是粉丝们的粉丝加泛粉丝 25% , 五环是随机粉丝 15% 。
  • 45. 数据的重要性 - 数据可视化
  • 46. 数据的重要性 - 数据可视化 twitter 上的 love 有关的关键词
  • 47. 数据的重要性 - 数据可视化 twitter 上的 hate 有关的关键词
  • 48. 数据的重要性 - 数据可视化 Yahoo Research 针对地震发生后一小时 twitter 相关微博数据研究
  • 49.  

Notas del editor

  1. 1 正如哲学由最基本的三个问题引申出了很多 2 不同岗位、层级 对广度、深度和持久度要求不一样
  2. 1 物以类聚、人以群分,具有相同特征的往往是一起的。 2 栏目由具有相同特征的若干 url 组成。 3 频道由具有相同特征的若干栏目组成,一个栏目可能属于多个频道
  3. 第三点 1 python 全局锁的存在,导致使用多线程不如使用单进程来处理 2 节省空间,避免冗余,浪费资源; 减少服务器运算压力, 加快运算速度;相当于多了 9 台服务器 3 (可点击)将访问的 url 处理为 id , 加网址。 不存在的归为第 0 类。 对于 refer 是处理:搜狐内的为 id ,加网址,搜索引擎转化为关键字,其他转化为域名, www2 的转化为 www 的 4 uv 表面只少了一个 0 , 实际上市由字符串变为了整形,节省的空间意义重大。 当然为了记录一些的实际信息, 有些还是需要保存的。 例如来源
  4. 1 5 分钟时,根据前面预处理的结果,计算 suv , pv , 并使用集合保留 suv 2 由于 python 的特性, 1 小时和 1 天只需简单加载数据进行归并即可 3 每周、每月
  5. 1 人无远虑, 必有近忧 2 所谓分时处理就是将数据分摊到各时间片上进行处理 (翻页)
  6. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  7. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  8. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  9. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  10. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  11. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  12. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  13. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  14. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  15. 第四点 1 全部数据拿来求交并、量太大 2 以奇偶进行讲解 3 对于频道数据 分 10 份存储,对于全站和各域数据分 50 份存储 4 使用多进程方式, 无锁交互
  16. 1 知无不言、言无不尽 2 有请韩道亮同学上来和我一起回答大家的问题