参加BDTC 2016有感

        经过三个多月的紧张忙碌,书稿基本完成,现在又有时间笔耕这块CSDN上的自留地了。昨天有幸参加了BDTC 2016中国大数据技术大会,虽然三天的大会只参加了最后一天,但是受益良多。感谢CSDN的赠票,3500大元的门票价格不菲,要是自费参加是绝下不了这个决心的。没有全程参与是个遗憾,在此稍微吐槽一下我司的考勤与年假制度,对于我这个老革命来说真的极为不爽。

        从早上9点到傍晚6点,除去午休的一小时,整整听了8个小时12个报告,确实有点累,但收获颇大,很受启发,非常值得。坚持听到最后的人已寥寥。早上到会场时人非常多,有很多站着听的,就差卖挂票了。而临近尾声时,已经由开始的熙熙攘攘,变成了最后的稀稀拉拉,目测听完的人不到两成,很庆幸自己是其中一员。

        下图是12位讲师及其演讲主题,这里逐一记录自己听这12个演讲的感受(这些位可都是名副其实的技术大咖)。


        第一个是华为的CarbonData,头回听说,已经是Apache孵化器项目。主讲人是不是领导不清楚,但一听就是一线核心开发人员,讲的都是开发的干货。后来查了一下,CarbonData是种列式存储格式,性能对其它Hadoop文件格式有优势,但本身貌似没有提供SQL接口,能不能用SparkSQL或者别的SQL-on-Hadoop进行访问也未可知。至少在现阶段对我这种只会SQL、不写程序的人距离比较远。
        第二个是Kylin,演讲者为麒麟公司的CTO,重点讲了新版Kylin在流式实时数据(与Kafka结合)获取方面的尝试与改进。说实话,Kylin是以预计算的方式,用空间换时间,性能是相当不错的。但仅限作为OLAP方案使用,数据仓库和ETL还得靠Hive,其实时数据立方体构建也只是增加了Kafka这个数据源,仅适合处理实时的日志类数据。
        第三场北邮的学院派,真正的老师,利用学校的人力资源做了一个Spark操作与建模的交互界面,3500行核心代码,是在校生的作品。虽然不大,但还是不错,能解决具体的操作友好性的问题。
        第四个滴滴的BI负责人,他们用的技术主要是Samza和阿里的druid,有种不走寻常路的感觉。做的很不错,只从滴滴秒级的实时监控与数据刷就能看出来,真是做了不少尝试。虽不熟悉,但要赞一个。
        上午最后一场是PayPal的数据科学家,主讲内容是数据挖掘。我一直认为数据挖掘是数学家的事情,对于我这种应用层面的人来说,听起来好似天书奇谈,也只有望其项背的份了。
        下午继续,第一位是Facebook的专家,话风从上午的研发一下改成了运维,讲的是计算集群与存储集群在物理上的分离。论述比较清楚,在某些场景下,颠覆了Hadoop一贯强调的计算与数据在尽量在同一节点的理论基础。
        第二个小哥明显年轻许多,略显紧张,现场把控和表述能力与其他几位有明显的差距。主讲的内容也太细,基本到了代码层面,在这样的大会上显得过于细化了。
        第三个百度的哥们讲的是他们内部开发使用的一个通用的计算框架统一接口,用户可以方便的使用一个接口编程,该系统自动进行优化,并转化成MR或Spark等多个不同的计算平台。从优化程度来看是很深层的,借鉴了关系数据的优化器思想。
        第四个也是学院派,但已经从上海交大离职,进入了一个创业公司。这位老师从冯诺依曼体系结构,讲到控制流与数据流,直到他们公司开发的名为Yita的数据流计算引擎,一下子把我拉回到20年前的计算机原理的课堂上。在演讲最后,讲到为数不多的合作伙伴时,居然看到了中国地质大学,顿感无比亲切。
        第五个是Apache Apex,老师是从美国专程前来参会的。讲得很细,都是系统开发和实现层面的。
        第六位腾讯系出来创业的,是唯一一个讲应用的主题,说的是他们开发的一个红包的SDK,主讲开发过程中遇到的挑战及其对应的解决方案,如分布式事务等,有点像一个产品与技术结合的报告,而不象其他几位,都是纯技术性质的。
        最后一个也是对我启发最大的,是Apache HAWQ项目,常雷博士演讲的题目是轻松取代传统数据仓库,正是我所感兴趣的。HAWQ支持事务、性能也不错,关键是与SQL的兼容性非常好,甚至支持存储过程,对于传统数据库的开发人员,使用HAWQ转向大数据平台成本应该是很低的。

        通过参加这个大会,有几点很深的感触:
        1. 技术发展太快。
        半年前我司在生产系统部署了Hadoop集群,但并没有用于核心业务,只是跑几个简单的查询。最初只使用Hive,一个小时只能跑两个查询。后来使用了SparkSQL引擎,速度提高一倍,一小时能跑四个了。然后又上了Zeppelin配合SparkSQL做了简单的可视化,其实就是几个最基本的点、线、柱、饼图形,和演讲嘉宾展示的三维图、热度图等炫图没法比。Hive+SparkSQL+Zeppelin的架构,在当时很流行,美团等很多公司都是这种,但今天看已经有点过时了。对于从传统数据库转大数据的同学来说,Hive的查询速度根本没法接受,SparkSQL也快不到哪去,与秒级的查询响应速度相去甚远。后来我尝试了Impala,这个产品的查询速度提升还是很明显的,但是它只能做查询,不提供数据更新功能。我们知道数据仓库需要处理渐变维,还要处理事实表的更新情况,这些都需要有数据库行级更新的能力。在参会前,我所知道的能提供事务和行级更新功能的SQL-on-Hadoop只有Hive的orcfile格式,而要利用Impala的性能又只能使用parquet格式。这样一来,就需要在Hive中处理ETL,然后将结果集复制到Impala,以实现传统数据仓库的功能。逻辑上完全等价的数据要复制两份,只为获得可接受的性能。数据量很大的时候,这种实现方式不现实(存储、带宽的资源有很大浪费),即便采取一些技术手段做到增量数据复制,也不是什么好方案。现在有了HAWQ,从已获得的信息看基本满足需求,可以在以后进一步测试。
        2. 开源的力量巨大。
        20年前搞Oracle的时候,基本上是一年入门,三年初级,到达资深怎么也得五年以上。再看现在,开源社区每周都有版本、功能的更新,上手也容易。象我用过的Hadoop生态圈的几个工具:Sqoop、Hive、Oozie、Impala、Kylin、Hue、Zeppelin、Spark等,都是连部署到使用只需一到两周时间。当然要想用好还需要做很多深入细致的研究和实践,这点对任何技术都适用。开源社区的项目开发是以全球用户的需求为导向的,只要用户在社区内的呼吁足够强烈,开发人员很快就会提供相应的功能,修复原有的bug。对于用户来说,这种玩法相对于闭源的私有软件要有利的多。
        3. 实时数据处理越来越流行
        从大会学到一个词叫做“批流结合”,意思是大数据传统强项的批处理要与实时数据流式处理相结合。离线的数据仓库和数据分析技术虽已经很成熟,但已不能满足人们对高效率的无限追求。于是产生了一大批实时数据处理引擎和相关技术。
        4. SQL-on-Hadoop大行其道
        SQL是个好东西。首先它有坚实的关系代数作为理论基础,经过几十年的积累,优化器也已经相当成熟。再者对于开发者,SQL作为典型的非过程语言,其语法很简单(也许是所有开发语言中最简单的),但它的语义却相当丰富,用常雷博士的话说,95%的数据分析问题都能用SQL解决,这是一个相当惊人的结论,同时也是SQL从出现至今还一直在被广泛使用的原因。当互联网、物联网、无线互联等等技术和应用越来越多,4V大数据的概念出现了,以Hadoop为首的处理大数据的软件也不断涌现。在这种情况下,关系数据库不易分布的问题也随之越发凸显。不要说BAT这种每天上PB的数据量,就是第二梯队公司的数据量级,也不是用几台数据库服务器能支撑的。就算是Oracle Exadata这种大机器,要达到它处理能力的天花板也轻而易举。于是才有了去IOE的概念,同时也出现了以MongoDB、Cassandra为代表的所谓NoSQL产品。但品心而论,去IOE、NoSQL等概念大于实际,关键还是看使用场景,不能一概而论。在一个要求强事务一致性的场景下,关系数据库仍然是最佳选择。SQL要能与Hadoop等大数据技术结合起来,既能复用已有的技能,又能有效处理大规模数据,这是一个不错的想法。现在已经有很多SQL-on-Hadoop的产品,而且一定会越来越完善,这对于象我等长期的数据库使用者来说是个好消息。

        虽然已近知天命之年,但希望自己能保持对新生技术的求知欲和好奇心,沿着数据这条路继续探索,跟上技术发展的步伐,不至于过早落伍。
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53575068
个人分类: BI
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭