大数据经过这些年的发展,目前在社会层的接受情况如何?现阶段企业对大数据的主要需求体现在哪些方面?大数据领域未来会有怎样的发展方向?本期【开源访谈】邀请到 Kyligence 技术合伙人&高级软件架构师马洪宾,和大家聊聊大数据的现在和未来。
【本期嘉宾】
马洪宾,Kyligence 技术合伙人&高级软件架构师,Apache Kylin 核心开发者和项目管理委员会成员(PMC),专注于大数据相关的基础架构和平台。毕业于上海交通大学计算机系。在工作于 Apache Kylin 之前曾经是微软亚洲研究院的图数据库 Trinity 的核心贡献者。加入 eBay 后成为 Apache Kylin 首席committer(根据 github 统计)。在 Apache Kylin 主要负责存储引擎、查询优化、测试覆盖等领域。
" >
1、 先简单介绍一下自己
大家好,我是马洪宾,2014年硕士毕业于上海交大。毕业之前曾在 MSRA 微软亚洲研究院实习,主要做的是 Graph Engine 图数据库。当时有做一个分布式的内存图数据库,它能够用来支撑很多业务,比如说语义网的挖掘,也被我们用来加速 SQL 的查询。那时候我就对这种数据库技术、关系代数比较感兴趣。毕业之后,加入了 eBay ,专门做 Apache Kylin 这个项目。Kylin 可以通俗理解成一个 SQL 查询的加速器,要做的内容和我的经验、兴趣也比较匹配。后来,跟着我们团队一起出来创业做了 Kyligence。
2、 为什么会专注于做大数据领域,是哪些方面吸引了您?
首先我觉得作为开源技术,很多大数据项目背后都有比较好的开源社区,能提供一个很好的自学机会,快速的提升自己。如果想要研究任何原理,或者想解决任何问题,都可以在它们相应的社区里面找到答案。社区会有非常良好的文档,所有的讨论也会有记录,去找这些知识的时候会非常方便。如果是其它闭源的技术,可能就没有这种方便的获取知识的途径。
另外就是觉得大数据的前途不错,很多大公司对这方面的投入很大。不过,对于许多人所谓的大数据“风口”,我倒不是特别看重。我认为任何一个新技术,都有一个风口。比如说移动互联网的风口,可能在几年前就已经过去了,现在的美团、饿了么等等都是经过大浪淘沙剩下来的。现在的大数据,以及非常火的人工智能,我觉得都是一样,风口的时候会有大量的资金投进来,有大量的新鲜的公司涌现,但无论如何,最后总是会有一些企业沉淀下来。
3、 大数据在三四年前爆发,您认为目前社会层面对大数据是否已广泛接受?现在已处于什么阶段?
我觉得在认知上,大家对以 Hadoop 为代表的大数据平台,已经有相当大的心理接受程度。但由于各种原因,比如说企业迁移的成本,人才的缺口等等,还有大量的应用仍然停留在传统的数据平台上。不过从我自己接触的客户来看,他们已越来越愿意的把传统平台上的数据或者应用,迁移到大数据平台上来,只是这个迁移的过程可能还需要很长一段时间。这就好比你现在想立刻住大别墅,但可能由于现实的各种原因,暂时还不能达到目的,我认为目前是处于这样一个阶段。
未来的话,一个显然的趋势就是大家会越来越多地把数据迁移上去。一方面是以 Hadoop 为代表的大数据平台在不断完善,比如说原来有的企业客户比较担心的安全问题,随着厂商提供的解决方案更加完整和成熟,企业会更放心地把东西放上去。另一方面就是数据的挖掘,目前企业对数据价值的提取还不是特别深入,大家看到的可能更多的是一些浅显的东西,比如用户量的统计,成交额的统计等。但随着数据的深入挖掘,企业会越来越多的采用大数据平台,不仅仅是因为数据量大,还因为当想从数据当中挖掘更多东西的时候,往往需要借助一些更通用、更便宜的方式,这两者都是大数据平台相对传统数据平台的优势。
4、 您认为现阶段企业对大数据的主要需求体现在哪些方面?
我觉得现阶段的需求大致有三个方面:
一是成本。无论是数据的存储,还是数据的使用,都有成本的考虑。如果说企业的数据存储在一个昂贵的传统商业数据库里面,它所有的数据挖掘,各种查询、插入、ETL操作,都跑在这个传统 DB 上的话,它会让这个传统的 DB 负荷非常大,需要投入很多钱来扩容。当业务量一大,难以负担起这样的代价时,企业只能保住核心业务,砍掉一些眼下还不能立刻变现的,探索创新性的业务。所以说成本是非常重要的,大数据平台一般来说成本会比传统的数据库小一些。
二是业务的可扩展性。随着越来越多的数据应用,企业甚至都很难做 capacity planning。比如现在可以用两个 oracle实例来支撑的业务平台,可能都不知道明年需要10个还是20个。所以说随着企业的发展,是随时需要准备对数据平台进行扩容的。大数据平台,比如 Hadoop ,是基于普通的硬件,往里面堆机器是很容易的事情,但传统的商业 DB 就没那么容易。以前 eBay 做过 teradata 的扩容,不仅花了数千万美元的代价,还遇到了事故,可想而知这方面会对企业带来多大的问题。
三是更及时更专业的厂家支持。大数据平台,企业想要玩转,需要厂家的支持,可能很多企业有能力培养自己的人才,然后使用一些开源的平台。但有更多的企业,可能无法维护这样一个团队,那就需要寻求支持。比如说用 Kylin 的,它可能向我们公司寻求支持,我们也有专门的这种企业支持通道。所以说,如果厂家的支持比自己维护团队性价比优势更明显,那我觉得将来随着市场细分,更多的企业会选择原生的厂家支持。
5、对于这些需求 kylin 是如何来满足的?
我觉得这三个方面 Kylin 应该都能够比较好地满足这类企业的诉求:
首先是数据的成本,Hadoop 平台上的应用,成本主要就是集群的扩容。Kylin 是基于 Hadoop 之上的,如果 Hadoop 的存储和计算比较廉价的话,那 Kylin 相应的也不会有特别高的代价。
同理,关于业务的可扩展性,Kylin 完全是非侵入式的安装在客户的 Hadoop 集群里面,那么只要 Hadoop 继续维护它的可扩展性,那 Kylin 从原理上来说就是一个可扩展性的架构。
至于厂家支持这一点来说,Kylin 本身作为一个开源项目,它的开源社区比较活跃,有比较好的社区支持。如果用户在使用 Kylin 的过程中发现需要专业的公司来支持,我们公司的 kybot 产品线不仅提供对基于Kylin的商业产品 Kyligence Analytical Platform,也就是 KAP 的支持,同时也提供对开源 Kylin 的支持。
6、 构建一个大数据架构时应该从哪些方面考虑?
由于客户的需求,大数据架构首先应该考虑的就是可扩展性。前面我们已经讲到过企业的诉求,比较核心的一个就是对潜在的业务扩张保持灵活度,所以说架构上一定要体现出它的可扩展性。
第二点就是组件的模块化。无论是像 Hadoop 这种基础平台,还是像 Kylin 这种更面向用户的应用,它的组件随时都有可能被替换。举个例子来说,Kylin 当中有输入的模块,我们不仅有对接 Hive 模块,也有对接 Kafka 模块,根据用户的不同需求,需要灵活的调整这些组件结合在一起的方式。所以这个时候,做到组件模块化就非常重要。降低组件之间的合成度,能随时灵活的调整以满足客户的需求。
第三点就是要能够满足比较好的性能。用户现在都比较挑剔,面对的选择也非常多,如果由于架构的原因导致这套系统天生性能比较差,那用户不会接受。所以要从架构上就能够体现出对性能的追求。
最后第四点就是高可用性和环境的适配性。尤其是在大数据领域,大家采用的这个平台虽然都是 Hadoop ,但厂商不一样,如果要扩大你的业务范围,那你的架构上就要体现出更强的可适应性,能适应不同的环境。
7、 能否结合 kylin 的系统框架,谈下实际架构中遇到的一些难点是如何攻克的?
还是以组件模块化为例,Kylin 一开始只支持以 Hive 为数据源,后来有用户反映,希望能够对接一些实时的数据源。出于各种原因,Kylin 最早在组建模块化做得没有那么深入,所以当面临这个用户提出来的新需求时会比较被动。当时花了比较大的力气去把整个 Kylin 的架构重构,把输入模块、输出模块,甚至是构建模块,完全地模块化。然后通过配置的方式,让开发者或者用户能够选择不同的组件,最终做到了对各种异构数据源的支持 。今天我们有另外一些用户提出需求想对接 Impala 作为数据源,我们就感觉非常有把握,因为这里面的模块化已经做好了,只需要实现的是一个新的 Impala 输入模块。如此一来,满足客户需求的工作量就是非常可控的。
8、 能否介绍一下 kylin 具体的架构模块实现以及它们的作用?
Kyin 大致来说会分离线部分和在线部分,离线部分就是用来构建 Kylin 的 Cube ,在线部分就是用来做查询。离线的部分稍微展开一下讲讲构建引擎,这个也是模块化的,可以是 Spark 也可以是 Mapreduce。构建引擎的上游有输入模块,下游有输出模块,输入模块就可能是Hive ,或者是 Kafka,甚至还可以是 Impala 等等。输出模块目前在 Kylin 当中是 HBase。在我们的商业版中,其实有用一个我们自己研发的列式存储替换了 HBase。可以看到,从头到尾,其实各个模块都是可以替换的。Kylin 作为一个开源产品,所有的开发者都可以利用那些模块化的接口去开发自己的模块,非常方便。
9、 怎么看待大数据这个领域以及未来的发展方向?
坦白说现在最火的不是大数据,而是人工智能。大数据的风口可能现在正逐渐被人工智能取代,但我觉得这对于大数据行业来说也是一件好事。风口过去了,不再有大量的人力和资金涌入,大家才不会浮躁,会沉淀下来去钻研它的细分领域,才会开始专注的做自己的东西。我觉得大方向是这样。
细一点来说,首先我觉得大数据平台上的数据安全、隐私保护,会越来越受重视,因为企业级的用户对这些的诉求都比较高。
然后现在有很火的一个概念,叫“共享经济”,我觉得大数据上的共享经济的一个体现就是云上的大数据服务。现在业界另外一个大的热点是云计算,云计算本身也是共享思维的一种结果。就是说如果我有一些机器闲置出来,我可以租给不同的人,降低均摊的成本。大数据也是一样,如果一个企业要自己单独维护一个集群来做大数据的分析,可能存在资源浪费的情况。如果有这种共享的大数据平台,同时又能满足企业的数据安全、隐私保护的顾虑的话,那会成为一种更便宜,更好用的数据服务。我觉得这个可能也是未来一个很好的方向。
最后我觉得随着应用的升级,随着企业把一些更高阶的应用迁移到大数据平台,企业对大数据的人才的缺口,会越来越大。之前处于大数据风口的时候,个别企业甚至都没有比较深入的摸索过大数据。而且现在的人工智能需要有一个基础,那就是无论再高明的机器学习算法,都需要从数据当中学习,才能给训练一个比较好的结果。所以其实这里面数据是不可或缺的一个环节,如果企业的数据没有很好的方式去存储、去分析的话,更谈不上人工智能。人工智能是一个非常前沿的领域,它需要后面的配套支撑,大数据就是最明显的一环。所以人工智能要真正落地,我们得先要让大数据产业落地下来。
文章转载自 开源中国社区 [http://www.oschina.net]