作为一家大数据技术公司的技术掌舵人,Teradata天睿公司首席技术官宝立明(Stephen Brobst)对开源的热爱是业内共知的。但在热爱开源的背后,体现的是什么样的大数据技术路线呢?
万物皆可分析
Teradata提出了“万物皆可分析”(Analytics of Everything)的说法,宝立明表示,“万物皆可分析”的概念指的是传感器能够捕获数据,以前很多公司只是在做数据的采集,现在这些企业已经成熟了,可以开始做数据的分析了。
在五到十年之前,还没有制造业企业在谈大数据分析,现在Teradata称万物皆可分析已经包括制造业。在医疗设备上,其实也是有传感器的,是放在人们的身上来检测身体状况,从而决定是不是需要一些治疗的干预,有利于提高医疗水平的质量,提高人们的身体健康的水平。同样,电信行业也是有传感器数据的,手机就是传感器,能够发送各种各样有关用户的移动的位置信息。还有零售行业也是如此,所以Teradata认为“万物皆可分析”,真正包括的万物是涵盖各行各业。
宝立明认为,万物皆可分析更重要。物联网或者万物互联,只是谈的是数据的收集。数据收集越多,成本越高,不分析就没有价值。
IoT数据带来的不同:
量是100倍于传统的数据,因此你需要一个非常强大的数据平台去存储它,去处理它,这个数据平台必须是高度可扩展的。
对于IoT数据而言,这种地理空间的数据占非常大的比例,所以Teradata需要在这方面拥有先进的地理空间分析的能力。
在IoT的数据中,有大量的基于时间序列的事件数据要去分析。而传统的SQL处理,基本上处理的是数据集,它不善于做这种时间序列处理。所以,这也是为什么Teradata谈到Aster在这方面是远远领先于其他数据分析技术。
对于万物皆可分析,Teradata一直以来倡导的技术架构是UDA(统一数据架构)。在UDA(统一数据架构)之下,Teradata既有自己的技术,也有各种各样开源的技术,比如Hadoop。同时Teradata还有数据湖的技术、Aster技术。Aster非常关键的一点是非常适合传感器数据的分析平台。
Teradata可以做的是,把数据先放到数据湖存储,经过Aster,经过对数据进一步处理,把它导入到数据仓库,为BI分析师所使用,所以它是一层一层的数据堆栈的架构。Aster作为一个数据平台,已经被移植到了Hadoop这种分布式的Power系统之上了,既可以在文件系统上去执行Aster,也可以在开源的数据库上应用。
针对万物皆可分析,Teradata相关的产品一共有七大类:
- Teradata Listener框架,能够以实时的方式把海量的数据导入到Teradata的系统里;2. 利用RESTful API,可以实现各种技术平台的对接;
一个非常可靠、高可伸缩的数据传输技术;
存储技术;
- 可兼容的技术;
- 不断完善的压缩技术;
- 即将推出的Teradata IntelliFlex一体机,基于海量并行处理(MPP)架构,能以非常高的经济性,有效地进行海量数据的处理。
Teradata还有一个nPath技术,结合了MapReduce和SQL来做时序数据的分析。
如果把MapReduce在Hadoop这样的一个分布式的文件系统上去做执行的话,它会产生大量的中间的文件。但是Teradata现在把MapReduce直接和SQL结合,它直接就会得出最终的文件,中间的这些文件就没有了,简化了分析的难度,并提高了效率。
开源的偏好与整合
如果回顾Teradata的公司历史,Teradata其实在15年前就已经宣布Teradata的数据库产品是跑在Unix、Linux开源的版本之上,而当时其他的数据库公司仍然是基于HPUX或者AIX。直到今天Teradata产品的操作系统仍然是Linux。
从操作系统层面看,Teradata是100%开源的,而Teradata的竞争对手,尽管会做很多开源市场的宣传,但他们基本上都是创建于商用的OS上。
在地理空间方面的数据分析能力上,Teradata直接使用了开源的技术,Teradata把地理空间数据分析的开源技术的能力做了一个并行,整合到Teradata自己的系统里。
宝立明列举了一些他感兴趣的开源大数据技术,并做简要评价。
Presto。Teradata和Facebook合作研发的一个项目,是一个Open SQL Engine on Hadoop,支持任何一种Hadoop。能够帮助Teradata很好地连接其他一些开源的数据库平台。
Mesos。和Yarn竞争的开源技术,主要是做资源管理的。当然用Mesos的时候,有时它用起来特别好用,但有时就不那么好用了。
R。从分析的角度来说,R本身有一个非常大的各种分析能力的库。但是R的问题是,它不可扩展,而Teradata的技术是高度可扩展的。通过并行R技术,就能够使得原来不具有扩展性的技术也变得高度可扩展。
Spark。它有机器学习、有流、有SQL的接口,在Hadoop上都可以运行。
Flink,Flink和Spark是竞争对手,目前这两个语言竞争是非常激烈的。但是Teradata很欢迎这种竞争,就像Mesos和Yarn的竞争一样。竞争是一件非常好的事情,可以让技术更好地发展。
尽管喜欢Spark,宝立明不喜欢Scala语言,这是出于编程难度的考虑。
Scala这个语言我不喜欢,为什么呢?学起来太难,你要学这个语言的话,可能编程要花费很长一段时间。
万物皆可分析依赖的Teradata UDA(统一数据架构),里面有Hadoop,有Presto,同时还有QueryGrid,可从Hadoop平台发起并完成跨平台查询,将处理过程下推到Teradata数据库。用户还可从Teradata平台发起查询,将处理过程下推到Hadoop平台。它是Teradata所说的商用和开源技术的混合体。而QueryGrid是运行在Presto上面的。对于Teradata的客户而言,Teradata可以让他们选择,他们可以选择开源,也可以选择商用的SAS。还有就是Teradata的Listener框架,它实质是Kafka,Kafka是一种并行传输的技术,它是开源的,是LinkedIn开发的。因此,Teradata的UDA,是非常好的一个开源和商用技术的混合体。
QueryGrid也可以支持与Presto来做连接,但是它不是只跟Presto来做连接,比如Teradata跟Presto连接,或Teradata也可以通过QueryGrid跟Oracle去做连接等。所以QueryGrid是一个产品,可以做很多数据的协同和连接器、处理器。
机器学习
开源机器学习是目前开源大数据领域的一个热门话题。宝立明表示,机器学习的关键一定是多种算法的结合,如果只偏向于一个或几个算法的话,必然会有盲区。所以一个大型的机器学习的系统里,会有多个算法,不同的算法算出来的结果Teradata把它结合起来。
Teradata为机器学习的这些引擎或是算法提供一个大数据的平台,而且这个平台是具有非常高的可延展性的。Teradata的做法是把这些机器学习的算法,像R、Ruby,内嵌到Teradata平台做并行的执行。
提供的平台,更多的是开源,这不是Teradata独享的,是SAS、Apache提供给Teradata的。
Teradata把机器学习的算法,如Teradata自己的算法,或开源的算法,内嵌到Aster的数据平台之上,供Teradata的数据科学家做各种各样的实验、探索。Teradata也会用到自己开发的机器学习的算法,去更好地找到Teradata所说的可以商用的一些成熟的技术,再结合数据湖的一些技术。找到这些可用的技术能力之后,Teradata把它整合到自己的商用解决方案里。
他还表示,Teradata做的一件最为有意思的研发工作就是,把Spark的能力和Teradata Aster的数据平台结合在一起。Spark本身有一个执行的框架,Aster的平台有非常先进的分析能力。Spark部署和使用比较困难,需要是一个懂Spark编程的人员才行。但是对于Aster而言,任何一个数据科学家都可以使用,不一定要懂编程,所以如果两者能够结合在一起,是非常不错的。
云计算支持
对于云计算,宝立明表示,Teradata是一个云的使能者,客户可以做内部云、托管云,也可以在其他公有云的服务供应商上获得Teradata一些功能的云的服务。Teradata的原则是给客户同类最佳的技术选择。
首先有的客户愿意自己做,Teradata给提供内部云的方案,有的客户希望托管,Teradata为他们做性能的最大优化。还有的客户选择公有云。目前AWS是Teradata宣布的第一个公有云的合作伙伴。Teradata在全球会设有一些相应的托管云服务。例如在欧洲,Teradata在德国有一个托管云。
此外,针对一些客户的个性化需求,宝立明表示,Teradata提供的是一种分析的平台,但不做商业模型。不同的客户从Teradata拿到的是模板,有了这个模板之后,Teradata会为他们提供专业服务,帮他们进行应用的个性化的定制,根据自己的业务需求,而这一切Teradata都是通过App Center来实现的。