数据统一平台的选型
时间:2022-04-26 22:39:01 | 来源:行业动态
时间:2022-04-26 22:39:01 来源:行业动态
虽然数据中台是近几年才有的概念,但其实业界一直在数据汇集的道路上探索,从早期的数据库到后来的数据仓库,到后来的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成为数据中台的首选数据平台。