RDBMS、EDW、Hadoop、NoSQL,谁会是数据中台的主流数据平台? 原创

数据中台热潮之下,传统关系型数据库(RDBMS)、数据仓库(EDW)、Hadoop、各种NoSQL中哪一个最适合作为数据中台的数据平台,完成数据服务共享的大任?

“数据就是资产”,随着IT应用走向深入,数据积累得越来越多,数据的价值得到不断彰显,有人甚至把数据比喻成黄金。对数据的重视也在改变IT系统的设计哲学,从“以业务为中心”转变为“以数据为中心”,数据中台就是在这个背景下提出来的。作为中台概念的一部分,它和中台的另一个重要组成——业务中台一起共同完成IT系统所赋能的核心功能,支撑企业业务的开展。

在中台中,数据中台承担着数据汇集、数据服务的交付等重要功能,是中台的核心支撑,其重要性不言而喻。在大数据时代的今天,MongoDB因为其对多模数据的支持、在高并发应用场景的高性能读写能力以及高扩展能力赢得了市场的认可,逐渐成为数据中台的首选数据平台。

数据孤岛之痛

我们正处于一个数据大爆炸的时代,来自市场研究机构的数据,每年新增数据量以40%的速度增长,其中90%是非结构化的。这些数据来自于各种各样的业务系统,分别是不同时代各个不同部门为不同业务开发的,相互之间没有联通更没有整合,而是像烟囱式的IT系统一样形成了一个个数据孤岛。

数据孤岛的形成客观上还与海量的数据有关,过去的业务系统都是基于传统数据库开发的,在海量数据面前有点力不从心。随着IT的建设持续走向深入,不少企业注意到烟囱式的IT系统问题,也开始着手打通数据、打通系统,但是汹涌而来的海量数据让数据的整合显得非常困难。尤其是当数据量到达数百TB乃至PB级别以后,超出了传统数据库的管理能力,性能也无法保障,整合就更加困难,传统数据库系统的应对办法只能走分库分表之路,但这可能涉及到修改应用程序,使得整合变得非常复杂。

数据孤岛给数据的利用带来了不利。首先,严重制约了开发效率的提升,增加了开发成本。今天开发的很多系统涉及多个数据源,这些系统要上线,每个数据源要做对接、要同步,这是一个非常费事、费力的事情,这种重复性建设带来的成本增加不言而喻。比如,一个保险公司要上线一个名为“保单贷”的小程序——如果客户在公司里有保险业务,一分钟内提供一定的现金贷款业务,结果发现数据分别在寿险、财险、标签和推荐等各种业务系统里,需要分别到这些系统中抽取、对接,为此需要付出更多成本支出。

其次,数据孤岛导致数据不完整、不实时,可能影响到用户体验。比如,用户本来打来一个客服电话就应该查到某个信息,却要打几个电话才能得到。体验自然是非常糟糕的。

另外,这种数据孤岛非常不利于数据挖掘和分析。近几年通过数据分析帮助决策者快速决策或者做出更正确的决策,提升企业效率、降低成本,给企业带来竞争优势,已经成为大势所趋。而数据孤岛的存在制约了数据的分析和挖掘。

为了解决数据孤岛,一些企业开始建数据仓库。然而,在海量数据和多样化的数据面前,数据仓库面临着如何以经济高效的方式存储数据,如何处理多样化的数据,如何获取实时数据提供实时分析等挑战。

很显然,单靠数据仓库已经无法满足当下的数据分析需求,这就有了后来的各种大数据平台和“数据湖”。它们的出现部分解决了传统数据仓库的实时性和海量问题。不过,相对于后来出现的数据中台,无论是数据仓库还是后来出现的数据湖、各种大数据平台在功能上都有所欠缺。这主要体现在以下几个方面:它们主要面向的场景是分析型应用,数据往往是每天通过ETL抽取一次,非实时;交付的主要方式是各种报表和驾驶舱(Dashboard)等,比较粗放。实际上,在企业业务系统中最为核心并不是后台的分析和报表,而是要与前台客户交互、与流程交换,这就有了“中台”和“数据中台”这些概念的诞生。

数据中台的构成

“中台”是近几年非常流行的一个概念,也是为数不多原发于中国市场的IT概念之一。“中台”介于前台(与用户交互)和后台(各种数据库)之间,它在传统的前端程序和传统的后端程序中加上了一个抽象层,将前后端有机联系并整合起来,其价值主要体现在聚合和共享,从而能高效地响应业务的需求。

“中台”由业务中台和数据中台构成,其中,业务中台实现核心业务逻辑和功能的抽取和复用;数据中台联通数据孤岛,交付数据服务。虽然“中台”并不只是搭建一个数据平台,但是数据服务的共享是“中台”的核心,因为“中台”的大部分服务都是围绕数据而生,数据中台也是围绕向上层应用提供数据服务构建的。

应该说,没有数据中台只有业务中台根本无法满足灵活地支撑业务发展的目标。核心系统大都是基于传统数据仓库搭建,在数据量和并发访问量上来后性能常常跟不上;另外,出现新的需求后,传统数据仓库的业务模型很难进行改变,核心系统根本跟不上需求的变化。

数据中台由数据统一平台、数据资产体系、数据API构成,能支持全渠道业务。数据中台除了完成数据的汇集之外,它还要打标签、要按场景进行资产的规划,最终要建成一个有目录的、方便使用的数据资产体系。最为关键的是,要能以API的方式交付数据服务,让前端的应用非常方便使用。此外,其使用的场景不仅仅是分析,还要支持前端系统,包括CRM、SCM、HR等等,是全渠道的。

具体来说,数据中台以打通部门或者数据孤岛的统一数据平台为基础,构建统一数据资产体系,并以API服务的方式为全渠道(包括分析和应用)提供即时交付能力。数据中台能带来很多好处,比如,能提高数据协同效率,因为数据放到一起后,协作会快很多;其次,数据中台能把一份数据给多个业务场景使用,不需要多次维护一致性,提高数据复用效率;另外,数据中台把数据往前搬,让数据接近前台,有助于提高交付速度。

在数据中台中,数据统一平台是基础和底座,数据中台正是通过它来汇聚不同数据源的数据,实现数据的管理,支持数据服务的交付。正因为此,数据中台对于数据统一平台有较高要求,比如,一定要可扩展,具备横向扩展能力,因为数据中台不只是为当下的应用准备,它是为全企业的应用、为未来做准备;它还要具有灵活的数据模型,能非常容易地把不同格式数据整合,不只是结构化数据还包括更多的非结构和半结构化数据。另外,一定要支持高并发高可用,因为数据中台要面对企业各种不同的业务,对于一些社交应用,支持高并发是必须;最后还要是安全的。

数据统一平台的选型

虽然数据中台是近几年才有的概念,但其实业界一直在数据汇集的道路上探索,从早期的数据库到后来的数据仓库,到后来的Hadoop以及今天的NoSQL。

用传统数据库来实现多个数据源的汇集是很自然的一个思路,占据了市场的主流地位Oracle数据库就被广泛应用。为了支持对海量数据量的存储和管理,Oracle还推出了Oracle RAC。不过,传统数据库主要场景是传统交互式业务。另外,在大数据时代传统数据库数据模式不够灵活,很难支持新兴的数据结构,还有其难以横向扩展、成本高等弱点影响了其普及和使用。

后来,为了应对数据库的扩展难和性能瓶颈,市场出现了数据仓库,Teradata、Greenplum等正是在这个时代兴起。但是数据仓库依然有传统关系数据库的一些弱点,比如不支持非结构化数据,解决不了移动时代的大数据问题,成本高。这给Hadoop留下的市场空间。

近十年来以Hadoop为代表的大数据平台迅速崛起。Hadoop虽然支持海量的扩展,但不具有实时性。Hadoop难以落地的另一个问题是其体系架构复杂,对人才技能要求高。NoSQL出现弥补了Hadoop的不足。NoSQL普遍采用分布式架构,可以支持大数据,支持横向扩展,具有灵活的模型(支持JSON),能支持实时场景(如Redis、Elastic Search等)。但NoSQL大多数针对特定应用场景,功能并不全面,不支持事务。

不过,作为NoSQL的代表,MongoDB是一个例外。MongoDB有最像关系型数据库的NoSQL数据库之称,它同时兼具关系数据库和NoSQL数据库的特点,其还具有对事务的支持能力,使其成为数据中台中的数据平台的首选。

众所周知,MongoDB 是多模数据库,能支持各种数据格式,无论是结构化数据还是各种非结构化数据,包括各种IOT数据、图片、日志等都可以通过MongoDB统一实现存储和管理。MongoDB还是一个全功能的数据存储平台,这是与其他NoSQL数据库的一大区别。大多数NoSQL是为特定应用场景设计的,比如,Redis用作缓存非常高效,Elastic Search做全文搜索非常好用,但换到其他应用场景就不太适用,因此,它们一般要搭配其他数据平台使用,而MongoDB的功能非常全面,可以广泛适用各种应用场景。

MongoDB还具有同时支持分析性应用(OLAP)和事务性应用(OLTP)的全渠道支持能力。MongoDB采用的是分布式架构,支持读写分离,其主节点完成数据的写入,从节点负责读,在需要时很容易实现扩展,从而保证数据库的读写性能。另外,MongoDB可以在从节点中配置一些节点专门负责数据的分析,从而同时支持交互性应用和支持分析型应用。而且,与数据仓库需要定时抽取数据不同,MongoDB所分析的数据都是实时的、新鲜的,无需做专门的ETL。

MongoDB对程序员的友好也是其一大亮点。传统数据库建模一般经过概念建模、逻辑建模,最后通过物理建模转化成数据库中的各种关系表,而MongoDB所使用的数据模型非常接近逻辑模型,少了复杂的物理建模过程,很多业务人员就可以完成。而且,MongoDB对象模型非常接近于对象,建模后可以直接以Restful API交付,非常好地支持数据中台中以API形式交付数据服务。

另外,MongoDB还有一些贴心的功能可以进一步简化开发人员的工作。比如,MongoDB提供有触发器API,特别是适合发生某个事件后触发后续的动作,如出现故障后发出报警、在大屏上点亮警报灯等。开发人员可以通过订阅该API进行实时的、响应式的处理,简化了编程工作。还有,过去NoSQL数据库普遍不支持事务,但MongoDB从4.2版本开始具有了完备的事务支持能力,从而进一步加大了NoSQL的应用范围。

实际上,近几年越来越多的企业开始选择MongoDB。根据MongoDB官方的数据,目前在全球100多个国家拥有正式付费客户17,000多家客户,在MongoDB的社区服务器总下载量超过9000万(中国是全球下载最多的国家)。更多人使用反过来促使MongoDB不断完善和改进其功能,也带动了MongoDB生态的完善,这些为用户在数据中台中选择MongoDB进一步增添了信心,从而帮助MongoDB成为数据中台的首选数据平台。

来源:至顶网软件与服务频道

0赞

好文章,需要你的鼓励

2020

05/26

16:13

分享

点赞

邮件订阅
白皮书