电信行业大数据实时营销与实时分析夏明武xiamingwu@tsinghua.org.cn个人简介2004年清华大学软件学院毕业智慧图联合创始人,大数据首席架构师中国信息协会大数据分会理事工作10年+,做商业智能BI9年+在思特奇、亚信BI研发部、去哪儿网等工作多年大数据实时营销、实时分析电信行业中国第一名在去哪儿网酒店事业部组建商业智能BI团队什么是商业智能BI、大数据?商业智能BI,就是智能化、自动化做商业,提升公司品牌形象,帮助公司赚钱大数据,核心是小量结果数据,通过分析、研究数据,以结果为导向,挖掘结果数据价值,帮公司赚大钱才是真。互联网企业,竞争激烈,今天还活着,明天随时会死去,以结果为导向,非常现实,当然也非常残酷。对企业而言无价值的海量数据是什么?商业智能BI三阶段第一阶段:报表、olap阶段。做报表根本不能体现出智能,体力活,实习生工作。第二阶段:数据分析、传统数据挖掘阶段。阿里巴巴做的数据魔方、量子恒道是典型代表。非常成功,非常简洁有效,快速帮公司和客户赚钱,实现多方共赢。第三阶段:做实时营销、实时分析、实时告警等等实时或准实时系统,更接近于OLTP系统,处理难度高,颠覆着传统的BI系统。商业智能BI系统存在的问题某电信运营商十几年商业智能BI系统建设,是否有用?数据分析、数据挖掘真的重要吗?某公司数据挖掘团队被解散,某公司数据分析团队被解散客户细分问题?分析报告一定是正确的吗?大数据、数据挖掘、数据分析真的重要吗在互联网企业,以结果为导向,价值为主。互联网企业竞争激烈,今天活着,明天随时会死去,以结果为导向非常有必要。有的公司数据挖掘团队被解散,有的公司数据分析团队被解散。这些团队中其实有很强的TeamLeader和很靠谱的团队成员。为什么还是要解散呢?这是因为数据挖掘、数据分析能做到百分之三十或百分之五十已经非常好,当企业自然增长达到百分之百或百分之几百时,从投入产出比角度出发,数据挖掘、数据分析团队是无价值的,是应被解散掉的。信令数据介绍CS域语音主叫语音被叫短信发送短信接收位置更新开机关机位置切换信令数据介绍PS域彩信发送彩信接收WAP连接WAP使用WAP断开3G上网4G上网信令名词解释LAC:locationareacode位置区码(移动通信系统中),是为寻呼而设置的一个区域,覆盖一片地理区域。CELL:采用基站识别码或全球小区识别进行标识的无线覆盖区域叫做小区。IMSI:InternationalMobileSubscriberIdentificationNumber国际移动用户识别码,是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。信令名词解释IMEI:InternationalMobileEquipmentIdentity,是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的“电子串号”,它与每台手机一一对应,而且该码是全世界唯一的。MSISDN:MobileSubscriberInternationalISDN/PSTNnumber(ISDN即是综合业务数字网,是IntegratedServiceDigitalNetwork的简称),即手机号码。信令数据能做什么?实时营销(精准营销、精确营销)事件营销(信令监控、信令分析、数据挖掘)基于信令数据和客户统一视图的模型高中生高中生家长大学生飞机来港客户飞机离港客户景区游客火车站到达客户火车站离开客户数据模型的创新规则以界面化的方式展示给业务人员参数可调整,业务人员可以根据业务经验调整业务人员可以直接界面执行数据挖掘,重跑数据通过外呼查全和查准前端界面规则配置到数据库中环境发生大变化时,业务人员熟悉模型规则,就能很方便给研发提新需求,研发远程开发后远程发包部署实时营销(精准营销、精确营销)速度实时合适的时间合适的地点给客户推荐合适的内容实时营销(精准营销、精确营销)案例两城一家机场旅客推荐各种套餐高考考生推荐各种业务体育场观众推荐歌星歌曲关于10张标签表,每张表8000万记录,每张表几百几千个标签字段,关联取数据,秒级出结果的高效方法?大数据关联查询创新案例方案1:数据库内方案把所有客户统一视图大标签宽表先按地市分表,再按号码分别拆分为10000张表。每张小表中包括所有需要的几百、几千个字段。小表总表数为1万到几万之间,详细为地市数量*1000。有的省份,小表数据量为2000条到8000条。前端访问时,不再需要做多表sql关联,数据量级别为千行级的单表sql查询语句速度也很快。起10000个线程并发执行,可以做到实时。方案2:数据库外方案把所有客户统一视图大标签宽表按地市分文件,再按号码继续拆分为1000个文件。每个小文件中包括所有需要的几百、几千个字段。小文件总数量为1万到几万之间,详细为地市数量*1000。如果是直辖市,直接拆分为10000个小文件。使用标准C,开发出处理程序,并发启动1万到几万个线程,每个线程把小文件数据加载到各自内存中。当需要处理数据时,实用LUA来访问数据,每个线程需要处理的数据量为千行级。总体速度应该在毫表级,可以实时把数据回传给前端。像有的省,如果地市用户提取客户群,则同样只需访问此地市的1000个小内存文件,速度能更快。方案1细节:表文件、和线程的数量可以根据实际需要调整,可以调整到100张表、1000张表、或者是100个文件、1000文件、再或者是100个线程、1000个线程。具体还需要查询资料,依据现场机器配置,做性能调优而定。如果并发线程压力太大的话,可以考虑改为减少并发线程数,或者改为串行。当数据无法做大表关联时,每次只需从单行记录就可去到。方案1细节:分表或分文件时,按手机号码尾号2位或3位来分,手机号码尾号本身是均匀的。在同一地市的小表中,每张小表的数据量是基本接近相同的。地市之间,考虑到不同地市的用户数不同,则可以对不同地市的分表或分文件数量做优化,用户数多的地市分表和文件多,用户数少的地市分表或文件少,尽量和所有的100、1000或10000以上的表或文件中数据量保持一致,这样并发处理线程同时处理,完成时间也能基本相同。方案2细节:数据为每月或每日凌晨初始化读入,载入到内存后。在上班时间访问,直接查询内存静态数据,速度快,但也涉及到内存分配太大的问题。此时,需要考虑做并发或者分布式处理。涉及到硬件投资增加问题,不建议采购小型机,改为采购刀片服务器或其它服务器。数据也可采用前端调用时再动态加载,根据机器配置,让线程分批次加载数据并处理。这样对硬件要求低,但速度相对会慢。方案2细节:前端向后台通信采取socket方式,后台处理完数据后,可以把最终数据合并,再加载到数据库中的表,也可以由各线程把各自数据分批插入到数据库中的表。数据加载完成后,再通过socket通知前端处理完毕。LUA具体如何处理和优化,细节尚待研究,需要花时间。细致工作还有很多,需要继续研究和深入下去。方案2细节:如果要考虑到硬件成本、分布式部署、开发时间和难度问题,可以接下来优化为采用hadoop方案。采用hadoop方案后,整体数据量在千万级,有些省例外,到了亿级。硬件投资改为采购几台PCServer,硬件投入为几万元。数据都在库外处理,NOSQL方式,数据库可以改为使用开源数据库MySQL,存放配置信息。这样DB2、Oracle或其它数据库都可以替换掉。方案2细节:整体来说,实用hadoop方式或库外标准C开发方式后,可以更有效减少中国移动在硬件上的投入,在数据库的投入。可以把节省的成本投一部分到应用软件厂商上。这样,中国移动就可以和应用软件厂商实现共赢。这也是IT业界的发展趋势。至于hadoop方案,客户统一视图标签月表每月生成一次,日表每日按生产一次。生成后为静态数据,每日上班时间数据不会更新,为静态数据。方案2细节:基于此特点,可以在每日凌晨把客户统一视图数据加载到hadoop中,白天访问时直接查询数据,速度快,效率高。数据加载到内存数据库中做查询,我目前用到的是solo+lucene,有的同事用的是MongoDB。云计算方案,应该是可以考虑借鉴谷歌做搜索查询这块的成功经验。云计算方案,貌似用流计算也不错。Yahoo的S4听说挺不错。《论中国》西方战略家思考如何在关键点上集结优势兵力,而孙子研究如何在政治和心理上取得优势地位,从而确保胜利。西方战略家通过打胜仗检验自己的理论,孙子则通过不战而胜检验自己的理论。亨利·基辛格个人建议:平时多积累,“功夫在诗外”多做SWOT分析多关注大环境,多从大局出发做创业、做BI要多眼于未来,产品规划、设计要面向未来,多考虑未来三五年的环境和竞争《扁鹊见蔡桓公》BI人学习的榜样推荐阅读职业规划《定位》、《人生定位》系列书籍《浪潮之巅》、《数学之美》等《暗时间》《异类》《一部手机打天下:人类最后的掘金机会》《决战大数据》《高效能人士的七个习惯》《穷查理宝典》《失控》彼得·德鲁克的书籍谢谢!