数据存储产业服务平台

HBTC2012:如何在第一时间洞察数据价值

由中国计算机学会主办、CCF大数据专家委员会承办HBTC2012Hadoop与大数据技术大会于11月30日在北京举行。本届大会以大数据共享与开放技术为主题,设置了Hadoop生态系统、大数据行业应用、大数据共享平台与应用以及大数据的技术挑战和发展趋势等五个分论坛。大会就大数据技术生态系统的现状和发展趋势进行探讨,并围绕Hadoop与大数据热点技术和应用实践进行深入解析。

大会第一天下午MemSQL的创始人Nikita Shamgunov先生发表了精彩的演讲。他自己表示非常荣幸能来北京在这里给大家谈一谈很酷的技术。

 

 

Nikita Shamgunov先生一生都在不断地建立各种各样的数据库,8年时间在Facebook公司等建立了很多的数据库,现在他在旧金山建立了一个下一代的分析的数据库叫MemSQL。

他表示对于数据分析师来说现在的时代是一个很有意思的时代,首先Moore时代已经结束了,我们看到很多的速度是放缓了,但是摩尔定律依然可使用于大数据,数据每18个月翻一番,而且需要更多的技术允许我们来操作这么多的数据。Hadoop就是一个很好的技术帮助我们操作海量的数据。另外一个所发生的情况是十年前谈到大数据的时候让人非常地乏味。现在有各种各样的数据,有存储数据、形象数据、JS数据和结构的数据。

关系型数据库经常会出现问题。同时数据是成功的关键,如果我们看一下世界上最成功的公司比如说谷歌、Facebook、亚马逊所有的这些公司都非常痴迷于数据,无论现在做什么,每个人五年之后可能都不再那么具有竞争性和竞争力了?他谈及了数据的时效性,即是最近所搜集的数据会比一年前所搜集的数据更具有价值。Nikita在Facebook公司的时候也创造了很大的集群,当设置的时间是19天,19天之后人们所搜集的Hadoop的数据就没有了,因为再没有可用性了。所以Facebook很快改变了代码,因为老的数据没有用了,失去了相关性。所以这取决于你所处理的是哪种类型的数据。

实际上你所获得的价值速度是很快的。我今天谈的是半衰期很短的数据。处理这些数据的情境、实时的数据是什么样的情境?也就是变化很快的数据。这可能会有一些业绩上的评估。这是Facebook做的,每周二是重要的一天,我们会做这个工作,然后想捕获所有关键的标准,在Facebook的网站上、潜在的趋势,我们把整个Facebook的网站分成不同的功能,之后我们会测量每个功能所带来的消耗量,可以很好地想象到Facebook是很知名的网站。所以把这些数据放入数据库的时候是需要非常大的数据库的。因此我们有一个数据库可以把所有的数据都容纳起来。

可是如果不管哪个地方发生变化你都是希望了解到的,比如说你有一个bug的话,整个的数据库都会出现问题,这样的情况下Facebook就会损失和 亏损。所以如果出现问题一定要快速的解决,同时找到哪个地方发生了问题。像ZYNGA这样的公司有很多的网游他们会对数据进行实时追踪,还有AB测试。比 如说你想运行各种各样的测试看一下自己的网络以及网络上的广告到底做得怎么样,是不是有一些广告比其他的广告效果要好。这样可以根据点击率来进行计算。越 早发现哪个广告表现越好,这样你的钱就可以从广告中得到更多的钱,因为不会浪费时间。但有一点很有趣,如果有实时的高效率系统,在CPU的应用上会很快地 用起来,因为机器是有学习能,所以你会很快地培训机器的模型。所以说如果你的数据量比较小的话,可以把它放到一个比较小的领域,如果说是大数据的话可能这 个时候需要用Hadoop来进行处理了。所以得需要集群的方式来做数据处理。 有的时候用了Hadoop之后的速度会提到几千倍或者是更快,因此你的速度会更快了。

再看一下,有越来越多的数据密集型实时的情况越来越多。比如说航空的飞机票和酒店的费用,如果你想到一个网站上购买机票,每次做搜索的时候只花5秒 钟的时间就可以找到搜索的结果。如果要是给出一个更低的时间更减少的话效益就更高了,但这需要不断的培训或者说加强改善优化。比如说在股票交易上可以了解 之后进行追踪看核心的数据和核心的衡量机制以及数据的迁移。有的时候数据量是非常大的,尤其是在股票交易上,有时候达到每秒6亿运行,在纽交所有这样的 量。所以我们都希望我们的速度更快,这一点是大家都希望的,尤其是当你有大数据技术来处理技术的时候,你希望它的处理会更快。

我们谈到Latency的时候有两种,一种是搜索或者是查询Latency,你查询了以后再回来这叫查询的,但对数据Latency指的是时间差, 产出时间之后把它放入大数据系统中我们称之为数据上的Latency。数据Latency只能在24小时之内处理。所以,上传数据的时候等你喝咖啡回来之 后数据还没有上来,再喝咖啡,之后等到了以后就可以分析数据了。对查询的Latency来说要花很长的时间才能运行。所以说解决方案是什么呢?我们有大量 的研究来解决这个问题,尤其是在Hadoop的平台上。所以有一个Storm,这个技术非常好,可以把这个数据通过节点来计算,这个数据在进入系统中的时 候就开始计算了。Storm有时候不会存储数据只是计算数据,所以可以把它放到Hadoop。

另外还有Cloudera Impala,这是以前的系统允许你可以实时地处理Hadoop数据和HPC数据。另外他还提到了MemSQL,一个分布式的in-memory的数据库,可以在成千上万的节点上运行。

实际上它是能够处理并分析全球最具有挑战性的工作量的,主要是处理两件事,第一是数据的Latency,它可以直接地用SQL来处理,同时我们也可 以进行任何时候的查询,利用所有的核和处理器以及集群中的所有的节点来处理。所以怎么来处理数据上出现的Latency我们可以提供超快速的数据负荷,可 以把数据上载到系统中通过多个电脑、多个终端、多个节点,这样在集群里面可以把数据完全地引入系统中。同时它也可以使你能实时地插入数据,不需要有一个特 殊的批上载,可以任何时候可以把数据直接地放入系统中。

另外对查询的Latency来说我们有优化器,也就是说大家如果处理NPP系统,一旦查询出现在系统中就可以看一下把它分解成次查询,之后在这个阶 段集群的节点中处理最后给你一个最终的答案。我我对工程师或者是在座的特别喜欢技术的我会告诉你它是怎么做的,我们有一个Lock-free data,一个电脑上有很多核,可以允许我读写但不对数据锁定。所以如果一方面需要上载数据,另外一方面也需要上载查询的话,这样的结构可以很好地处理数 据。另外这个系统是分布的架构,这个架构是由集群器等的,这是存储数据的地方,这个集存器有一个电脑的节点,用户可以访问集群器中间的部 分,Aggregator可以共享信息,比如说数据是怎样分析的。可以只能地沿着节点来分布。另外可以通过节点来复制,之后处理之后再把信息反馈给用户。 看起来就像一个数据库一样,有耐用性同时也可以复制。你可以关掉并且开放之后数据还是在数据库里面。

再看一下复制性,高获取性是非常重要,因此我们有两个中心来进行复制。第二,在一个数据中心里也有安全性的数据的复制,所以你可以有各种各样的数 据,有的时候有一些节点出现了问题这时候会有复制和副本出现,这样不会出现数据的损失。还有是Facebook对我们产生很大的影响,就是SQL到C++ 编码的生成,使得执行起来的速度非常快。我们把SQL的声明转变成C++的编码。如果在做的时候要考虑到例子,我们把它拿出来之后加上就可以形成SQL到 C++的编码转换。当然在进入不同的系统的时候可以在很短的时间进行实施和执行,这样会使我们同时来进行很多的数据处理或者是查询处理。

接下来我给大家做一个展示,因为DEMO总会让大家看到真实的东西。每次做DEMO的时候有一些意外的情况还是比较有趣的。在这个DEMO中我给大 家看一下这32个节点还有8个Aggregator,之后我们把整个的程序从8个节点中泵入。这个集群是半个小时之前启动的,也就是我进入这个会议厅之前 的半个小时,所以在系统中应该有一些数据了,之后会发出一些非常复杂的查询之后看一下它是怎么表现的。接下来再看一下,这应该是48个集群,我是在亚马逊 EC2上部署的,由于有公共云所以计算起来很简单,你只需要编程之后点击输入,现在84个集群就可以开始运行了。这个集群的总内存是2.7TB,所以可以 把2.7TB的数据泵入,在系统中任何的记录都会在很短的时间里处理完。好,接下来我们看一下。这是一个终端的窗口,这有一些数据我们看系统中是怎样的, 在这儿有数据库的协议,在做发言之前我们已经做了,已经有几个表格了,看起来还不错运行正常。所以,这里面都有很多的记录。这有一个表格,这个表中间显示 一下数字,把数据插入,在两个查询之间有这么一个数据输入了。这实际上是占用CPU的,在集群的每个节点上都是占用CPU的。集群上的每个节点、每个核都 在工作。所以目前还没有什么意外,我们最终看到有26亿的记录。因此可以看到速度是非常快而且量是非常大的。所以可以把东西进行修改和修订。

我们有一个客户,每天要输入10亿个记录,而且同时还可以对数据进行汇总监测一下网站怎么样。但是虽说它是非常简单的查询都可以,比如说用一些简单 的索引或者说把数据存储在某些地方我在这里还有其他的几个查询,这是其他的一些查询。这里有一个汇总,有一点是必须有趣的,也就是你有一种直觉,可以看到 数据在整个的集群中布置的话是可以复制的,你选择了之后就可以对它进行复制。在这儿我就把数据推到客户这边,所以数据运行得非常快。最后看到这儿可以运行 一些非常复杂的东西,这些就是查询的例子,基本上是数据库的查询,这是一个很大的查询,我可以运行查询程度一个客户,有各种各样的节点。但基本的一点是, 它是一个生态系统,可以表达复杂的东西,可以表达复杂的集合,大量的数据中可以有很重要的变化,这是一个重要的视角。

给大家一个信息是每个工作都需要的工具,如果你需要进行分析目前市场上可用的最好的技术就是这个。但是在大数据中有很多的情境,有非常不多的数据运 行的特点可能我觉得工程师需要像拿一个瑞士军刀这样的组合,对每个工具选择适合的工具,SQL就是这样的一个工具,对高速度的工具进行很好的处理,因为可 以大大地提高运行的效率,对数据的快速变化来说有很好的处理。

未经允许不得转载:存储在线-存储专业媒体 » HBTC2012:如何在第一时间洞察数据价值