谢 谢大家那么冷从四面八方的赶过来。另外,也是诚惶诚恐,刚才知道有很多清华非常著名的教授来参加,让我觉得压力山大。今天我只是一个非常个人的对大数据的 一个认识。这十个前沿不代表是一个非常准确的定义。大家回去不用把这个分类作为自己研究的一个参考。而且今天我这个演讲聚焦在技术上,别讲太多大数据的理 念、思维,甚至是应用技术都不讲了。所以今天我主要是讲核心的技术。也许大家听起来会有一点枯燥,现在说干货是好事,但是有点太干了。涉及到的名词和特定 的技术领域,这不代表我个人都很懂。在很多地方我都是一知半解。我希望把这个作为交互式的,大家有问题可以随时打断我。
首先我们公司要求要有一些免责方面的要求,个人也是免责,今天讲的是我个人的认识。
现 在说大数据,我希望大家做研究的有一种思维方式,在美国有一个未来研究院的发起人,他叫阿马拉,他提到一个艾莫拉法则,人们往往会高估技术的短期影响力, 而低估技术的长期影响力。技术的长期影响力代表着技术的积累效应。我们现在常常用指数效应来说明,在现在这个指数时代,指数效应或者指数的颠覆性效应是一 种新的常态。我们经常在大数据的领域听说,有人说我们现在的数据量非常大,最近两年产生的数据量相当于人类历史上产生的数据量总和的90%。有人说,最近 一天产生的数据量相当于人类文明开始到2003年这数万年人类产生数据量的总和。IDC说,现在人类产生的数据总量每两年翻一番。所有这些都说了一个事 情:指数的效应。
看一下这个曲线,在经历很长时间的缓慢增长之后,突然在一个点它拐头向上,产生了爆炸式的增长。在这个时间点,T如果是X的话,T+1就是X的平方。当X很大的时候,它在任何一个周期都会把前一个周期远远的抛离在深厚。
大家一定听过棋盘和麦粒的故事,8乘8的棋格,第一格放1粒,第二格放2粒,到后面积累就会爆发式的增长,到一个国家承受不了的程度。
摩 尔定律,这张泛黄的纸片是当时英特尔的联合创始人之一戈登·摩尔(Gordon Moore)写下的纸片,他推动了现在社会的飞轮效应。每过18个月,晶体管数翻一番,它进一步带来了一系列指数式的链式反应。处理器的性能也翻一番,成 本折半,功耗折半。同时,在一些临近的领域也触发了指数效应。比如说以氧化铁为主要承载物的存储,也有类似的指数效应。比如说主干网的带宽甚至每八个月都 会翻一番。甚至是每美元能够买到的数码相机的像素的数目也呈现了指数级的效应。所有这些带来了数据的摩尔定律。
所 以我一直一个论点是,在这个社会,大数据是我们的蛋白质。蛋白质是我们生命活动的基础,也是我们生命活动主要承载者,它对于我们这样一个社会实在是太重要 了。我们形容数据是资产、是原油、是原材料、是货币,无论哪种形容的方法都不过分。因为它关系到70亿人数据化的生存,以及2020年500亿个互联设备 的感知、互联和智能。所有这些乘起来产生了2020年35个ZB的数据。在2020年一年会产生35个ZB的数据。一个ZB相当于一千个EB,谷歌已经把 互联网吸纳在他的数据存储中了。他的数据的存储量差不多在个位数的EB或者几十个EB之间。2020年一年就会产生一千个谷歌的数据。这是一个多大的量? 当然我们不能只是强调数据量多大。而是说在这个数据里面我们能够提取出什么样的意义来。提取的过程就是这样一个函数,F(数据,T)。
这么大量的数据给我们带来了什么样的挑战。全集大于采样。传统的数据分析是能够采样的,他能够抓到一定的统计的数据特征。但是大数据要求的是倾听每一个个体的声音。他不希望把一些个体的东西变成噪声过滤掉。所以这是带来的第一个挑战。
第 二个挑战是实时性。数据的价值是跟它的寿命成反比。当数据刚刚产生的时候,它的价值是最大的,尤其是个性化的价值是最大的。随着时间的推移,它会蜕变到只 有几何的价值。我们需要实时处理,并且把这个实时的洞察跟我们长期积累下来的知识进行融合,变成之前或万物皆明的全时的智慧,这是第二个挑战。
第三个挑战是F,我们的分析方法是不是能够做到见微,又能够做到知著。同时,也能够理解每一个社会运行的规律。这对F要求非常高。第四,他反映了人与机器的关系,或者人与工具的关系。我们说希望数据能够说人话,数据的价值是人能够理解,并且能够执行的。
很多大数据的技术基本上是为了解决这四个问题。我今天要讲的十个技术前沿,基本上都落到刚才这四个需求里。但是我又把它分成三大类:
第一大类,解决数据的问题。
第二大类,解决大量的数据前提下,如何能够实时的计算问题。
第三大类,我的分析怎么能够提供更好的、更精确的价值的问题。
所以我下面会根据这十个技术前沿,跟大家介绍一下现在我们领先的大数据的科研单位以及企业都在做什么样的事情。
第一,膨胀的宇宙。
IDC 创造一个名词叫做DATA UNIVERS——数据宇宙。它的膨胀速度是非常快的。现在我们的硬盘是TB,到PB到EB到ZB,甚至再到下一步DBMS。在这一条时间线上面,技术的 演进,最早当然是TB,就是传统的关系型数据库以及在其基础上延伸出来的数据仓库。它基本上是能够控制住TB级的数据。随着数据量的增大,MPP这样一种 技术使得它的数据库技术进一步的演进到接近于PB的规模。但是它还是碰到了瓶颈,于是,NoSQL的数据库就出现了,NoSQL的数据库有两个特点:第 一,无模式的。第二,它放弃了对于精确事物特性的追求,放弃了原子性、隔离等等方面的需求。这样使得它的扩展性能够得到提升。所以大家可以看到沿着这条路 线,很快使得我们对于数据的存储能力达到了PB的级别。
在 这条路线延续的同时,文件系统也在延续,文件系统对于非结构化的数据具有更好的存储能力。所以DFS能够处理比NoSQL更大的数据量。有一些NoSQL 的数据就是建立在DFS的基础上。这时候有一部分人就想NoSQL损失了很多的特性,但是在商业场景里面,我从帐号里面取了钱,我要保证这笔交易是符合事 物特性的,不会存在我取了一百块钱,但是在数据库里面显示那一百块钱还在里面。怎么在更大量数据的基础上来实现这种事物特性呢?于是就出现了 NewSQL,NewSQL一方面处理的数据量比传统的数据库更大;另一方面,它又能够满足事务的特性。当然NoSQL还在进一步的演进,从几十个PB的 规模,进一步演进到EB的规模,进一步出现Globally Distributed DB的规模,百万台服务器的规模。谷歌的Spanner就是一个典型的distributed DB。它为了达到事务特性,它需要部署很多新的技术,比如说利用GPS进行全球的时钟同步。
另 外一个演进是Array DBMS,很多计算是现行函数,它跟关系函数很不一样。Array DBMS就应运而正了,最主流的是SciDB,它就是针对科学计算、针对现行计数的数据。这就是一个主流演进的图谱,但是它还没有结束。在文件系统方面, 因为纯磁盘的访问使得它有吞吐量的瓶颈。于是出现了利用RAM做 缓存的现象。比如说最著名的HDFS就有了内存、缓存的扩展。同时,也出新了in Memory的FS,它把文件系统放到大的内存里面。而且,现在主流的大数据的处理都是基于JAVA。JAVA内存回收是通过一个处理器。对于几百个EB 的信息,垃圾回收器不是特别的有效。于是又出现了堆外面的内存,它在堆外面又放了大量的数据。
另外一个是Erasure Coding,它最早在通讯领域,是因为无线的信道有很大的出错的可能性。它通过编码机制能够使得我这个传输是能够容错,甚至是纠错的。现在它也被用到了大数据上面。大家如果熟悉hadoop的话,就知道在DFS上面曾经出现了几种时限,每一种都是因为种种原因并没有得到推广。最近英特尔跟Cloudera一起,推了一种新的Erasure Coding。
新的存储的介质又出现了,现在是发展最快的一直,因为Flash的吞吐量、延迟都要比机械的氧化铁的硬盘更快。
DRAM Storage也出现了,就是我所有的数据都存在DRAM里面,它进一步提升了吞吐量,减少了延迟。但是DRAM有一个问题,DRAM是易失的,一掉电这个数据就不存在了。你为了让他能够起到存储的作用,就必须要想办法,比如说通过冗余的方法在不同节点里面都存同一个数据,这样一台机器宕掉了,它的数据还能够存在。当你的数据都留在内存里面以后,不同节点之间数据的传输就变得非常重要。传统的数据传输是通过网卡、TCPIP的协议栈,这个效率是非常低的。在高性能计算里面,出现了RDMA,高性能计算里面都是非常高大上的,这些技术非常昂贵,本身的扩展性也不够。所以现在基于大数据的高扩展性的RDMA也是现在研究的热点。
所以这几种新的介质放在一起就出现了Heterogeneous Storage,你能够根据数据访问的频率,能够智能的把数据放在不同的介质上面。比如说访问最频繁的就放在DRAM或者是Flash,不太频繁的就放在传统的磁盘里。这做的好与不好关系非常大。谷歌有一个工作,他能够保证他只把1%的数据放在闪存里面,但是这1%的数据的闪存接受了28%的数据的访问。如果你的数据分布算法做的好的话,你可以以非常低的成本提供更大的吞吐量。
未来,会出现Memory,它的性能跟DRAM相差不多,但是它的容量更大,它不会丢失,如果数据里面的内存不会丢失,整个系统的软件就有可能会发生一些革命性的变化。比如说你不用再做序列化和反序列化了。你甚至不用文件了。因为原来用文件是因为我在磁盘里的数据的状态跟内存里面数据状态是不一样了。但是你现在在这个状态里面,你休息的状态跟被使用的状态是一样的。你不需要从文件里面把数据读出来,转化成为计算的格式。所以non-volatile的出现会对大数据的软件化出现革命性的变化。
non-volatile还有一种选择是磁带机。它还在被大量的使用。谷歌是全世界磁带系统最大的买家。因为他要备份他的几十个EB的数据。他大量的数据都是在磁带机里面,磁带本身的介质也在变化,最先出现的钡铁的形式,它的稳定性更好。
第一部分讲的是怎么应对疾速增长的数据量。为了提升吞吐量、降低延迟采取的各种各样的方法。
第二,巴别之难。
圣经里有一个巴别塔,最早人类都是同一种,讲的语言也都是一样的。上帝觉得你们太舒服了。他说人类要造一个巴别塔,他让你们说不同的语言,让你们沟通产生困难,让你们分布到不同的地方去。数据也面临同样的问题,数据并不是在同一个地方说同一种语言。