数据存储产业服务平台

刘译璟:大数据应用中的存储实践

  2015年12月10日,由DOIT传媒、存储在线和易会联合主办的2015中国存储峰会在北京盛大开幕。作为中国存储界有影响力的年度行业盛会,峰会以“把握数据经济,重塑商业变革”为主题,吸引了上百位存储界的顶级学者专家、数百位产业精英和企业用户出席。

  由DOIT主办的中国存储峰会是中国存储产业界最为隆重的年度大会。十一年来紧贴存储产业发展,丰富地记录了存储产业在各个历史时期的变化发展,已成为存储学术界、产业界和企业用户不可错过的历史见证。

  北京百分点信息科技有限公司首席架构师刘译璟发表了“大数据应用中的存储实践”主题演讲。以下为演讲实录:

  我是来自百分点的刘译璟。我今天讲的一下百分点一直做大数据的工作,介绍一下我们怎么看待大数据,然后在做一些什么样的业务跟应用。

  因为是一个存储方面的会议,我会重点介绍一下我们在存储方面怎么用的,大家可能会看到我有很多的问题,说不定在场可以给我们一些解决方案。最后是我在大数据存储方面也有一些思考跟大家分享一下。

  我用一个案例介绍一下未来企业整个业务架构、IT架构到底是什么样子。我以一个银行的案例来说,我们做过很多的思考,未来到底一个银行具备什么样的特征,这画几个圈圈。第一是全渠道。我们讲很多O2O的概念,O2O想说线上线下连通起来,现在也有互联网+的概念,很快我们不会有区分所谓互联网企业,线上企业或者是线下企业,传统的企业。因为互联网已经变成一层背景,大家都在这个背景上做事。还是垂直到不同的行业里面,这上面任何一个企业都需要具备非常多的渠道。我列举比如以一个银行为例,既需要柜面,也需要电子银行、掌上银行,还需要其他的营销通道,渠道跟用户接触的阵地是非常多的。第二就是全业务,每一个渠道上我的业务一定是全,可以连贯给用户做一个服务。不能跑到线下有一些事情做不了,必须到线上搞,线上我有一些支付功能做不了或者我的转帐功能做不了,跑到线下开通一下,做不了整个业务的连动。第三强调智能,大数据、中国制造2025都在提一件事情就是智能,里面用很多技术核心就是互联网以及大数据。

  怎么来理解这些技术之间的相关性?几个技术的趋势,我讲五个词,云计算、大数据、物联网、移动化、社会化。他们是什么关系?这个图是我整个的设想,云是我们整个IT架构的骨骼,支撑起来未来整个企业的IT架构。物联网更像人的感觉器官,我的一些四肢等等的器官,他会负责说让企业去了解这个世界,了解这个业务。经过大数据,大脑统一分析之后,把这些数据再返回到这些四肢感官器官去,做一些动作。这是云计算、大数据、物联网整个的关系。移动化解决的是我们碎片化的资源,人的时间,我那有一个停车位,我的车没停,可以暂时租出去,让它产生价值,解决别人的困难,我也可以有一些收益。人作为社会性的动物,我做相同时的时候,会有强烈的类聚性,不同的是我通过一些软性、弱性的交流不断的强化我对这个业务的创新或者是理解。比如将来一定会成为很多垂直行业,我有金融云、制造云,强类聚。云之间进行很多的数据上的交互,这是未来整个技术演进,技术趋势的看法。云计算是骨骼,物联网是感官,大数据是大脑,移动化是策略,社会化是灵魂。

  这里我讲到大数据不是数据的体量大,我用三个词讲一下我们怎么看这个大数据的大,有一些贬义的意思,常常描述说我可能不是那么的自由。第一个词是Big Brother,《1984》这本书是英国一个左翼作家在1948年写的,他在讲1984年世界上有三个国家,一个是大西洋国,唯一的政党有唯一的领袖就叫Big Brother,书里没有任何BigBrother任何的描述,但是沟通的时候我说一些敏感的话就会说老大哥看我们,就会抓过去,做一番教育洗脑。这是老大哥词的来源。

  第二个词是BigGovenment,中国是大政府,美国是小政府。大小不体现在体量上,是政府跟市场,是怎样一种商务关系。政府具有足够强,任何事情从上推到下。

  第三个词是六七十年代有一波Big  Bioi BigSteel。垄断企业,中石油、中石化等等。

  大数据就是无处不在的数据,其实并不是一个很明显跟传统的信息化的技术有什么差别,它是信息化自然的延伸。1978年的时候当时有一个未来学家写了一本书叫《第三次浪潮》,这本书把人类社会分成三个阶段,农业文明、工业文明、信息文明,他在那会已经遇到说随着计算机、信息化的发展,整个人类社会人本身、家庭、政府会产生极大的变化。会涉及到我们的生产方式如何去组织,家庭如何去组织,政府所谓的民主怎么去变化,这本书里提了很多东西,我们现在看到很多大数据的书,在我看来理论范畴都没超过那本书,反而有很多的故事。

  我讲说在这里面我们看到大数据的发展下去是怎样的有两部电影给大家举一下,第一部叫《终结者》,第二部叫《黑客帝国》,完全讲整个信息化的发展可能会对社会造成什么样的问题。都反映我们处处都处在信息化的、数字化的时代里,人们产生一种担忧,会不会有一种人工智能,AI把人类控制。我们不去探讨这么发展下去,是否出现这么一个悲观的状况,总的趋势往这方面走。

  IT时代跟DT时代差别在哪?IT时代的时候我们受限与当时很多条件,技术条件,资金条件。我能做到,我现实中有很多很复杂的业务,做的太被动,建一些IT系统,帮助我把这业务变得更加自动化、流程化。系统运行过程中会沉淀下来数据,这是最早数据的来源。你建立一个IT系统,里面什么数据都没有,照样可以跑。现在如果说我建一个所谓的大数据的系统,什么都不带,不可想象。什么叫做DT时代我们要做的事,我把现实世界数据化,数据是这个世界上驱动我的应用更加智能化。确实世界我已经用数据去描述了,我的机器设备和应用程序可以理解这个世界,就可以进行很多分析、反馈、学习和应用。是否我们现在已经足够智能化,这个话题不打算在这里讨论。

  数据化世界里面有几件事很重要,数据化人是人自身,数据化物,人与物之间的关系或者行为或者流程,我们百分点在这里面最核心做的一件事是把消费者数据化。我说的消费者,并没有强调其他方面,我们找一些反恐方面的事情,他要找到犯罪分子。还有医疗方面的数据,我们更多是强调在做消费者数据。

  现在这个时间点到了这个时候,我他三个先决条件:

  第一是现在已经相当完善的信息化建设,我们有了很多的应用,他把人联结在一起,人能够产生很多数据,运用很多数据。

  第二是随着可穿戴设备的发展,更多关于人的数据在产生。包括手机是个性化的设备,反映这个人的特点。很快会出现可移植或者是可植入的设备。我下面举一部电影,《攻壳机动队》,英文名是Ghost  In  The  Shell。进未来得时候,整个人连到网络里面去,这部边是《黑色帝国》借鉴了它。这个时代人不止是普通器官被替换掉,脑也有电子脑。我们面临一个事情,我跟对面的人,就是互联网上的人跟他沟通,他是人还是设备,这是第一个问题。第二假设我存在,我是被创造出来,我是被别人写程序写出来,还是像普通人那样来的呢。这部片里很多人思考这方面的问题,人是不是一个灵魂装在一个壳里面,这是人的数据化思考很多的问题。

  第三我们现在的网络发展到这个情况,我不去探讨边远地区或者是欠发达的国家,我们在场各位来说你们看到互联网的网络真的已经相当发达。我们所有设备都能关联到这个网络里面,这个事情我们真的需要做这么一件事情。就是下面这句话,人要学会从比特流中解读他人,更重要我要让机器去了解人,我们让设备了解人,最终做到一个智能应用。我下面列举很多智能应用,这里不一一讲解。…

  我们到底用什么样的模型做的呢?把消费者数据化,很常见一个词就叫做用户画像。什么叫做用户画像?很多人用不同的定义,我们定义在这,用户画像是现实世界用户的数学模型,第一是一份数据,第二这个数据是通过某个数学手段产生。是大数据+洞察,洞察表示对它的模型。我们怎么做这个事情?标签以及模型的方法定义这个数学模型。我们理解是这样,现实世界中有很多人的一些特征,比如他的消费特征、理财特征,这些特征在我们业务应用中会总结出很多经验,这些经验就是业务模型。我们可以去把它实现起来,这些模型要去应用,任何时候要应用的时候不可能带着一堆程序讲,什么叫做忠诚用户。我采用一种符号和标签描述这件事。这个图完全类比到一般认识到里面的符号三角,现实世界有很多的物,在人脑中呈现一些概念,去沟通会有一些语言和符号,完全照着这个来。基于这个情况下,我们把用户画像就定义成很多标签的集合,这有几个方面可以理解。

  第一可以定义出标签是用户的一种特征符号表示。人作为一个整体把它拆成很多纬度的时候,零碎标签的时候这是这两个化整为零,但是不能只拆完,还要拼装回来,叫做化零为整。我还要有一定的关系,把整个标签组合在一起,这是我们对整个用户画像的定义。当我把它拆成标签的时候,一个用户画像就是标签的集合,这个理解还有跟他一种等价的说法。我们在应用中这两种方法不断的切换,我们用的是集合的方法。我们从内部用户聚类或者用户象素计算的时候是用向量的方法做的。我们核心做的数据把消费者属性数据,然后拆成很多的纬度,稀疏向量或者集合表示这个用户。

  从一级分类,人口属性、基本信息,年龄18-25,这是完整一个标签。性别不标签,人口属性不是标签,18-25不是标签,是必须人口属性、基本信息、年龄18-25才是一个完整的标签。他描述了人的一个完整的纬度,中间任何一个都不是,整个拆成很多这样的纬度。我们把内部到底有这样的纬度呢?我们其实有三大类的用户标签,第一大类是消费类型,消费我们有185万多的纬度。媒体阅读这方面,我们应该有1000多万的纬度,还有一个我们对用户使用APP的纬度。这个我记得应该是有200多万的纬度,我们处理纬度非常之高,这些数据来源更多是互联网的行为或者是用户点击这些手机APP的时候的一些数据。

  我们做整个建模的时候拿到刚才收集到这样类型的数据,包括下面的用户基本信息,用户持有的产品,历史交易记录等等。通过什么方式对他进行分析?我们把数据建模分成三个层次,可以看成最底下统计分析产生一些事实类标签。再往上通过一些建模工作,数据挖掘方法产生模型类的一些标签。再网上会产生模型预测。我自己淘宝是我的身份证,我的照片,简单模型筛会觉得这是一位男性。但是淘宝帐号不是我用,是我老婆在用。她所有购买的东西都是偏向母婴、化妆品类。我根据第二层模型类的应用看的话,你会发现这个帐号应该是一个女性。还有很多帐号通过上述两种方法你都无法猜测他是男是女,还有看用户行为跟哪些人更像,我认为他是男是女。这是预测,我们把整个建模分为这三类,每一种方法对他行为的理解,整个范围的理解会更加大。不同的应用场合里面可以适用不同的方法。这是数据挖掘、消费者建模做的一些事情。

  整个百分点的业务,百分点的产品和应用就是这个图里描述的。我们把大数据分成三层,下面这是技术层次,解决的就是如何去存储海量的数据,如何在这个数据上进行实时或者离线数据分析和应用。最后数据如何去能够对接到其他的应用系统当中去,这是最底下。数据管理这层就是如何把消费者数据化,这是一条数据流,最后产出是用户画像,用户标签管理系统,通过这样的系统把所有用户画像管理起来。前面会涉及到如何做采集数据,讲到不同渠道里面的消费者,如何识别不同渠道里面的产品,这都是一些非常困难的题目。为什么要去识别全渠道的消费者,既跟线上有交流,也看你的门店,还用你的APP,你怎么知道他是一个人。不知道的话,企业无法形成一个整体给客户服务。产品为什么我要去识别?在A网站上叫IPhone6,跑道B网站叫苹果手机,你怎么把他们关联在一起。

  这三类应用是个性化推荐、精准营销以及运营分析,个性化推荐是什么?你来我这里,我给你提供精准服务。整个服务过程中我要随时看,是否满足你的需求,是否提高我转化率,在市场上别人怎么看我,需要做洞察方面的应用。我们是做这样一些解决方案。通过这样的描述我们怎么看待大数据,我们在大数据领域做一些什么样的事情。我们核心做的就是无处不在的数据世界里面构建关于消费者很多的数据描述,数据描述我做一些智能应用。这是典型给制造业企业提供大数据解决方案,他有自己企业的门店,有自己官网,有第三方数据,把所有数据拿到一起去构建他的产品的一个用户的数据描述,在上面构建两层,一层叫做产品画像,一层是用户画像,这些构建好之后可以驱动它的CRM和舆情管理和自动回复系统,驱动这些应用。

  这个事里面我们遇到很多关于数据和存储和数据处理的问题,这样的应用里面有这些问题需要面对:

  第一非结构,所有能处理的数据都是结构化,你看到这个摄像机不是想它一点点的像素,而是脑海里的几个标签是结构化。结构化、非结构化是相对于某个程序来说。视频可能是非结构化数据,视频对于一个播放器来说,你认为他是非结构化的吗,他是真正来处理这个数据。结构化和非结构化相对一个程序来说,只不过我们往往把这个程序设定成关系型数据库,我们处理大多数数据是非结构化数据。我用什么样的数据结构存储,做处理和查询呢。

  第二我们处理的纬度相当高,存储数据,我可以很快的把这些数据捞出来。这么多的数据存储和结构,怎么用一种简单统一高效的技术手段,比如说一种编程语言或者数据服务或者SDK,可以很好的处理这些数据,这是我面临最大的问题。我们发现没有任何单一的存储介质和存储服务可以满足我们的需求。我需要非常多列式存储,我有很多应用场景要做这些事情。我在不同应用场景采用不同存储介质和服务,这是我们整个的解决方案。

  我们实现技术架构是这样,典型的互联网的架构的实践。最顶上是数据源,直接把企业的关系数据库的数据拽过来。第二如何去收集Web日志或者说是一些点击流。第三可能有一些单独的产品需要收集实时的用户行为,不能定期去拽这个文本过来。还有一些互联网爬虫等等,这是所有数据,来了之后为了适配多种业务,自由做筛选和组合。这个数据会被分发到两边去,一边做实时计算。需要高速批处理是在Spark上面做。我们自己有200多台集群做Storm,所有数据实时或者离线处理完之后会放到多种存储里去。我们通过混合数据存储,外边加一层统一的RESTAPI。

  首先Kafka是所有数据流转中枢,2011年已经用到Kafka,现在维持12台规模的集群,每天承受20多亿的消息数。总共支撑业务数应该是在150多个应用,支撑1700+个Topic。Kafka只支持Java的应用系统,里面包括C++功能不是很全,包一层中间件,利用Ice高可用的东西,支持多语言。线上用到PHP、C++,通过这样的封装把这个系统运用起来。他是我们整个数据平台里面最核心的一块,这是Kafka作为数据的流转。

  HDPF是全量数据落地以及备份的系统,任何数据经过Kafka最终都会落到HDRF上。线上我们会保持一年的数据,活跃的数据。一年以后的数据通过其他方式转储到NAS或者其他的设备上去,那个数据很少用。

  HDFS做历史数据归档是这样,Loader和Formater。Redis是我们实时业务的主存,比如个性化推荐或者跟DSP做的精准营销都是从Redis里拽数据。是维持30多台的规模,我们Redis用的版本是2.8,不止是分布式。我们用的很早,09年公司一成立我们就用到了Redis,当时版本是0.8、0.9,有很多Bug,亲自修过一些。同时用的有两类分布式,主存自己做好数据备份,最外层通过Redis当哨兵,发现有主节点宕掉,可以重顶上。线上一致运行多年。了解豌豆夹用Codis架构,正在做一些实验和迁移,通过一个Proxy做周转。可以做一些数据热迁移,对整个性能有一些下降。

  Redis做一些事,第一是实时PV/UV统计。Redis里面支持Hyperloglog算法。他带来非常高的性能、占用非常少的存储。我们推荐引擎,这里我们用Redis,把所有用户实时行为、用户之间相似度、产品之间相似度都刷到Redis里去。这是Redis在存储里面的应用。

  MongoDB有一个好处对复杂数据支持更好一些,Redis也支持比较多的数据结构,我做嵌套式他相对不是很友好。MongoDB在线上也有很多的例子,做PHM预测模型,对大型复杂设备的传感器的设备进行一些描述和数据建模,预测接下来会不会健康工作。我们在广电总局做,他有很多发射机保证央视所有电视或者广播信号节目能够正常播放。如果这个设备出现停机或者播放出现故障,超过30秒,这个电话被打到国务院去。他对整个设备健康度非常重视,每台设备每一秒钟我们可以收到他传感器的表值,大概二三十个。电压风突然降了,他要看有没有问题,一一分析。很多经验的人才知道这个表值情况他是否有状况。我们用唯一的指标来描述你这台设备现在是否是OK的,当你健康调到20%以下做什么事情,自动切换。整个能够简化他的业务流程。我们所有这些数据都是存在MongoDB,一开始建模的时候没有把它想的那么清楚,MongoDB能够灵活修改的时候,对我们整个业务支持非常大。

  Hbase,我们把每个纬度作为Hbase一列,每一列都是他一个值,这是我们整个在HBase的一个应用。用户画像存储是其他用户筛选应用的主存。需要调到用户画像在这里输出。HBase不能做一个高速筛选,我们通过搜索引擎ElasticSearch解决这个问题,它就是多级数据索引。可以进行大规模的筛选,我们筛选18-25岁,不能在HBase里面做,太多查不过来。所以我们可以在ElasticSearch里面查。符合用数学手段描述人带来技术的实现,我们通过混合存储以及服务达到这样的任务。整个应用里面是磁盘+SSD方式,提升用户性能。

  最后讲我们怎么去想存储的发展,在上世纪70年代的时候,最早提出数据中心的概念是50年代。70年代的时候,关系代数发展起来,所有数据模型定程二维表状。统一的数学模型导致你入门门槛非常低,很多地方可以应用。未来会不会有这样统一的新的数据模型?把我刚才讲到大多数非结构化的数据以统一的方式组织。New SQl(音)也是向这个方向迈进。以后是支持嵌套结构,嵌套结构是关系数据库第一范式就不允许。大家应用也是这样,有这样统一的数据模型以后,我们能不能有统一数据定义、数据操作的语言。有了我的模型,怎么建立存储的模型,一定是分布式。我的数据模型怎么去适配,这是存储这块需要想的问题。在复杂的新的数据结构,已经不是我们关系的数据结构下,怎么定义索引结构呢?混合介质的支持,海量介质的支持是未来发展趋势,Hadoop也开始大量借用内存。大家如果有好的解决方案跟我讲讲,我们看看如何去合作,谢谢大家。

未经允许不得转载:存储在线-存储专业媒体 » 刘译璟:大数据应用中的存储实践