唯品会大数据实践的核心价值是什么?

唯品会大数据整体规划

最核心的大数据是什么,像在唯品会这样的电商里,由于电商的本质工作是买进商品和卖出商品,那么大数据如何帮助公司更好地买进商品和卖出商品就是核心所在。

大数据是数据的收集、计算和存储。整个数据的实时接入,包括各种各样的log,我们的系统把这些东西离线、实时地收集进来。

唯品会大数据实践的核心价值是什么?

如何规划系统的资源,才能做到高效的调度和利用?这是一大改变期,有了这样一个平台以后,如何做各个数据的分析和计算?不能只是做报表,报表之后,数据应用是一步一步地做过去,第一次是报表,然后给到高管的、给到商务的、给到供应商的,再做成各种各样的数据应用。

数据平台的建设

唯品会成立至今已有5年时间,而真正运用大数据开展业务也有快3年了。由最早的DW、Greenplum、简单的报表,在遇到很多的瓶颈之后开始逐渐迁移至Hadoop这个平台。因为我们的规模要做到很大,我们现在差不多有10个PB的数据,如果我们还在使用Greenplum的话是难以支撑的。所以我们从2年多前就逐渐迁移到Hadoop平台,现在是双平台运行,因为它们有各自的优势。

在离线平台这一块其实我们跟其他大公司一样,一开始是 Oracle或者Puredata,后来是走向一些MPP的架构,例如Greenplum。其实我们最早是在MySQL上面跑,后来迁移到Greenplum。其实那个时候我们是可以解决问题的,但是我们不知道会不会遇到瓶颈,所以我们逐渐在向Hadoop迁移。迁移是先把简单的、量大的迁移出来,然后再做复杂的交易数据的迁移。

在这个过程中由于数据量越来越大,我们在Hadoop上一直加节点。除了数据量越来越大,业务计算量越来越大,对数据实时性要求也越来越高。我们是通过从daily joib 到hourly job,差不多40%的资源都被hourly job所cover掉。我们现在有很大一块已经是实时化了,但是从复杂的 hardly job迁移到实时的Storm其实是很复杂的。因为在Hadoop里很复杂的逻辑其实要表现在Storm或者Spark上其实还是很辛苦的,我们现在还在很痛苦的迁移过程中。

在过去3年我们发现,用户的需求是无穷无尽的,你永远无法满足业务端的需求。所以我们现在在做开放数据平台。开放数据平台就是抽取、调度、计算、存储、报表的平台。一个团队不可能做整个公司里面的东西,其实很多东西就是集中和分散的过程。很多公司都在做,就是把数据平台开放出来,让你能够在上面定义你的job,可以用来抽取数据,做你的ETL开发,然后自己发布各种各样的报表。

还有一块就是成本change back。因为当你开放了数据平台后,其他人会在上面提交各种各样的job,很多job属于性能很差,占用资源非常高,你的机器很快会跑满。在这种情况下,一方面要引导,一方面要给予这种change back的机制,让更多的使用团队有动力去优化他们的东西。

唯品会大数据实践的核心价值是什么?
唯品会大数据实践的核心价值是什么?
唯品会大数据实践的核心价值是什么?

接下来分享一下大数据在实时计算的层面下碰到的瓶颈,以及我们是怎样解决的。这里我们列举的是大数据的Hbase 跟 Redis。我们现在走的路一个是客户端Shard,一个是应用程序的优化,一块是 Twemproxy,最后一块是我们现在主力在推的 Redis Cluster。我们的目标是,业务的增加只需要堆服务器就能解决,不需要去改变code。这就是一个平台它存在的必要性,能够让大家follow在业务上面,不去关系底层的基础架构怎么实现。

唯品会大数据实践的核心价值是什么?

以上是我们目前面临的一些挑战:1、实时计算真正作为一个平台能够推出去,让大家都能够在上面开发,而不是你一个人玩的东西,让大家在上面开发、运营会更加简单。2、实时和离线的融合。离线的job会永远存在,实时job也会永远存在,业务的需求会越来越高,那怎么办?这是我们一直在思考的问题。3、离线向实时迁移的成本。我们新的东西进来以后用实时,但是有些业务逻辑过于复杂,在实时方面会做得很辛苦,该怎么办?

唯品会大数据实践的核心价值是什么?

大数据对于技术运营

唯品会大数据实践的核心价值是什么?

下面讲一下实时计算怎样来帮助公司的技术运营。这个指的是我们的实时业务监控,比如说作为一个电商,我要监控有多少用户实时在看、多少用户同时在线、多少用户看了多少PV,多少用户在浏览、多少用户在加购物车、多少用户在付钱等等,每个实时的东西我都应该知道,这就是一个很典型的场景。

唯品会大数据实践的核心价值是什么?
唯品会大数据实践的核心价值是什么?
唯品会大数据实践的核心价值是什么?

这里谈一谈网站运营,比如说我的网站有5000个服务器,提供100多个不同的功能,每个功能是不是都在正常工作、是不是足够的响应快、响应时间是不是很长、错误率怎样……都应该知道。怎样用大数据的技术能够帮助到这一块,这是典型的Spark的运营场景。

刚才讲的是应用服务器,那么数据存储层这块,比如说网站上可能会有Oracle、Mysql、Hbase等各种各样的存储,那我这个存储作为service provider,提供出去的服务是不是正常。正常是什么意思?响应时间是对的,平常每个启动过来是1ms,现在还是1ms,平常是10ms,我还是10ms。如果出问题了,怀疑是数据库出问题,你要用数据来说话。又比如说请求量增加了10倍,每个库对我缓存的访问量是什么样子,各有什么样的百分比,各个是什么响应时间。其实大数据的核心就是用业务数据来说话。

唯品会大数据实践的核心价值是什么?

相关观点