常见搭建数据中台的技术产品
数据中台包括:统一数据平台,数据同步,数据治理,数据服务四大部分。
下表列出了这四大部分中相应的技术产品,有同步汇聚工具、有数据治理、还有数据服务。
数据平台最常见的是以 Hadoop 大数据为基础的。在最近十年,有很多家公司投入很多来做这个事情,把数据已经收集到中央化的一个 datalake 里面,那这个就是个很好的起点。其他的还有用数仓来做的,用 Teradata 或者是 Oracle, Gleenplum,MySQL Cluster,MongoDB,国内的话,有星环或者一些大数据公司。有一些特殊的场景,有人会用一些其它产品,比如说 ElasticSearch 会用来做一些全文搜索,但往往那个只是配合,他不会整体的放在这上面。
同步工具就很多,有开源的,有商用的。开源的话,比如有 Kafka、Kettle, Spark ETL 、Talend,商用的的话要有 Informatica、Golden Gate,包括我们 Tapdata 也提供这种类似的数据同步工具。
治理方面比较做的比较好的可能是开源的话,有 Apache Atlas,那如果是开源商用的话 Informatica 应该是最老牌的,Erwin 这些都是比较经典的这种数据治理的公司,可以配合这些产品来把中台里面数据进行编目和治理管理,Oracle 也有相应的产品。
数据服务就是涉及到API。我们见的最多的可能还是大家用 spring 来搭建一个 API 框架,或者有一些比较现成的 API 机,像 Kong 比较流行。Kafka 是提供一种流式数据的服务,可以做 streaming,Loopback也是可以用 nodejs 的方式来提供 API。Mulesoft 和 CA 都是一个非常成熟的 API 产品,当然他们的价格也不便宜。
他们的优势是他会给你一套整体的 API。不仅仅是服务方案,还有管理方案,他的监控、安全、认证、鉴权,然后把你所有的不管是 data API也好,你的业务API也好,都有个统一的管理界面和一个 gateway的方式来帮他做好。
这里面大家可以看到有非常非常多的选择。如果咱们已经有的话,基本上是用已有的工具,如果没有的话就可能要好好的来看一下看看哪些厂商,或者是一些共享的方案。下边我们也会分享一个方案,可以参考一下来一个快速的选型。
数据平台产品分类
对数据平台比较关注的来看一下数据平台产品分类。
数据平台的这种产品从90年代开始,从关系型数据库到21世纪的数仓MPP,到后来的大数据,到现在的很多的NoSQL,NewSQL,有非常多的种类。他们都有什么样的特色呢?是否合适来做数据中台的一个存储呢?
数据统一平台的特点对比
数据统一平台选项参考
这里简单来看一下,如果是做数据统一平台选型参考的话,从它的海量数据能力,响应时间和并发能力和他支持多结构数据的能力上,我的个人见解。比如说我们说的现在的NewSQL的吧,他就是对多结构数据支持不是特别的理想。包括RDBMS、MPP也都是这样,那这个时候大家可以考虑一下用哪种方式。这取决于你的场景,MongoDB确实他有他自己的一些弱点,比如做多表关联的时候其实并不是他的优势,我们会建议尽可能避免这种多表关联的场景。但是如果你真的是避免不了的话,那他可能就不是一个很好的选择。
钛铂数据的选项建议
这里是我的一些小小的选型建议,从我个人的出发点,按照我的自己的跟客户的一些交流的经验看了他们的一些情况,然后也是经过一些项目的实施,就是提供的一些情况,然后也是经过一些项目的构实施提供的一些建议。
1.如果你已经有Hadoop或者数仓的统一平台,我们很多的头部企业,大型企业都是已经有的,这个时候你是不希望从头开始构建一套新的什么所谓的中台架构。你基本上可以基于这个基础之上,配合他的数据治理,把它打造成一个数据资产体系,然后加上他的Data API。对于这种情况,我们刚才看到的很多的已有的数据中台的解决商,他都是基于这种大数据的方案来做的,所以他们的一些能力。往往是已经跟你Hadoop Hive之类的或者数仓呀做比较好的结合,那些同步工具,ETL工具都是有比较不错的结合了,你就可以在这个基础上只是用它的理念来构建。
2.如果你还没有数据统一平台,没有数仓,没有这个Hadoop之类的话,这个时候我们觉得可以考虑一下,就是我们推荐的这种MongoDB的方案,会非常理想,因为我们相对来说是比较简单一些。起步会快,假设真的不行,你也可以很快就见效,我们叫做非常 fail fast,错就错的快一点,不要花很长的时间才发现不行,那如果你还没开始构建的话,一步到位就可以拿到。因为我们刚才讲的MongoDB在数据平台上是有很大的优势的。如果是Hadoop的话,最近几家合作的海外的那几家都三家只剩下了一家Cloudera,其他两家都已经被收掉了或者被合并了,这也是因为它的本身有很大的局限性,很复杂很难用,投入很大,收效比较小。
3.如果你的中台主要目的想支撑前端交互式应用。那MongoDB是最理想的,因为我们的特点就是高并发、低延迟、横向扩展。然后非常面向开发,非常面向JSON API,这是非常理想的。那Hadoop的话,他一开始大数据都是以分析为主的,不是为前端为主的。
4.反过来,如果你的中台数据目前你看不到有什么前端的业务场景会来使用。最主要的还是解决这个数据统一。而且你觉得有很多复杂的表。要做很复杂关联,这个时候一下子把它合并到一个JSON里面是几个JSON里面是比较麻烦的,那可能是MongoDB的适用度就一般了。那反而是那些基于传统的数仓的,那个会比较做的会比较好一点,相对来说是功能上比较完善一点。
5.如果你是比较喜欢有些比较快速,能够比较轻一点的,比较简单一点的。下载下来就可以安装可就可以跑起来,那我们Tapdata这种方案会比较轻便一点。
6.如果你没有数据工程师的话,我们MongoDB的一个的优势就是比较自然,比较直接,比较容易理解数据模型,会是一个不错的选择。
7.如果你没有明确你这个中台搭建的想做什么,我们可能不合适,因为我们可能这个事情做出来以后没有什么太大的效果的话,你就发挥不了我们的所谓的这种价值。其他的方案,我也不知道是不是合适了。