暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据平台发展简史 - 从“shared-nothing MPP”到云上“Multi-Cluster shared-data”

比特世界 2021-02-09
1552

故事从IBM S/360开始…

一、60-70年代:序幕

IBM 1964年发布的S/360系统,是计算机发展史上的重要里程碑,其重要性不仅是软硬件标准化带来产业变革,还在于使计算机的应用从科学计算转向商用。S/360安装了直接存储设备(DASD),一种使“数据库管理系统”得以发展的硬件。1968年,IBM发布了运行于S/360上的层次数据库IMS,数据库使数据访问的效率极大提升,更多的企业将IBM主机用于事务处理,如:大型银行的交易处理、航空公司的票务处理、电力公司的服务支持、商业企业库存管理和POS处理等。

60-70年代计算机的广泛使用激发了一系列数据基本理论的发展:

60年代,发展出层次模型和网络模型等现代意义上的数据模型;同期,General Mills和Dartmouth College在一个联合研究项目发展了“维度和事实”的概念。

70年代初,IBM研究员Edgar F. Codd提出了关系模型概念,奠定了关系数据库的理论基础,即数据库可由“行和列”构成的表组成,这样的二维表被称为“关系”,关系不需要通过算法,而通过程序访问,数据访问效率得以极大提升。

关系模型概念触发了IBM在70年代开发出SQL。

1976年, 华人计算机科学家Peter Chen(陈品山)发明了ERD( Entityrelationship diagram)实体关系图和ER数据模型,ERD用图形呈现数据库的构成,包括实体、属性、关系和数量等,使数据能够被抽象和表达。

1978年,Bill Kent 著书《Data and reality》,认为在尊重基本现实,聚焦从混乱中抽象出次序,在不扭曲基本事实基础上,可建立反映基本事实的数据模型,这样的概念使企业数据模型得以发展。

 

到20世纪70年代后期,S/360后继型号S/370发布后,美国已经安装了好几万台计算机系统(1960年美国安装计算机系统的数量约为6000台),其中IBM主机占据了约68%的份额。以 S/370 145型主机标配的8.7M硬盘测算,这几万台计算机的“在线数据”规模约在1PB量级,而在60年代以前企业仅存储有限的数据。

企业将计算机用于事务处理,使得将计算机用于DSS(决策支持),解决管理方面的信息诉求有了必要的数据基础。

 

二、80年代:MPP数据库的发明

到70-80年代,企业数据处理方面需求“显而易见”,80年代初个人电脑的发展,进一步释放了这样的需求,企业可以使用个人电脑上的4GL进行信息和报表处理。但对于彼时的大型企业,在数据处理上面临两方面问题:

  1. 性能问题,当时的系统不足以存储和处理大规模的数据;

  2. 复杂的结构问题,如何有效组织、存储和管理企业数据。

面向事务处理设计的主机可存储的数据有限,访问不便,价格昂贵,不合适用于大规模数据的处理,需要发展一种新的计算架构。

1979年,前施乐工程师Jack Shemer与人合伙创立了一家叫Teradata的公司,目标是打造能够处理TB量级数据的系统,在一台主机仅有几兆(M)空间的年代,这无疑是一个大胆梦想。

Teradata直到1984年才发布第一代产品 - 革命性的DBC/1012,使用并行处理技术的数据库系统。通过平均将处理负载分布于并行处理的计算节点上来获得高性能,同时赋予系统高可靠性。Wells Fargo Bank(富国银行)是该系统的第一个用户。

DBC/1012系统的核心是称为AMPs(access module processors)的数据库并行处理器,每个AMP各自管理独立的本地存储;一组接口处理器IFP负责处理AMPs与主机的通讯,DBC/1012通常作为IBM 主机的后端,进行数据处理。AMP与IFP通过Ynet连接成为一个系统,Ynet负责处理IFP与AMP,以及AMP间的通讯以及任务调度。

数据(表)被算法平均划分到AMP管理的本地磁盘,每个AMP各自处理本地存储的数据,AMP间通常不交换数据,由此通过AMP的并发处理,DBC能获得极好的性能。整个系统高度模块化,允许通过增加AMP的数量来提升数据容量和性能,理论上单个系统最多能容纳1024个AMP。这是最早的Shared-nothing MPP数据处理系统,同时也奠定了之后的Teradata数据仓库平台的基本架构。

图:DBC/1012架构(图片来自 CatherineM. Ricardo《Data Machine》)

1986年, IBM 开始在主机上使用DB2作为数据库实施DSS系统,一个叫ApplicationSystem (AS)的系统作为主机报表工具访问数据库。DB2是IBM 1982年发布的第一个使用SQL的关系数据库产品。

1986年Teradata的MPP并行数据处理技术获得财富杂志“年度产品”称号( "Product of the Year")。技术的成功并不意味着市场的成功,当时的Teradata面临来自IBM的激烈竞争,这段历史在Bill Inmon的早期著作,及Jack Shemer退休后的自述中均有提及。

 

到80年代末期,随着企业管理变革、银行业巴塞尔1等行业监管要求的提出,以及计算机在事务处理领域扩张带来的数据增长,大企业面临愈加复杂的数据环境,需要系统性的回答企业该如何存储、处理和组织数据。

 

三、90年代:数据仓库理论的形成

70年代初期,陆续出现了早期的决策支持和数据分析功能方面的探索,一家叫ACNielsen的公司在70年代开始给客户提供了一种叫“Data Mart”(数据集市)的系统,但真正理论和系统层面的突破发生在90年代。


IBM的数据仓库

1988年IBM工程师Barry Devlin和PaulMurphy在系统期刊(Systems Journal) 第一期发表名为“An architecture for a business and information system”的文章(文献可在ieee.org查询),创造了“业务数据仓库”(Business data warehouse)这个名词。

这篇文献的摘要准确描述了日后数据仓库在企业中的定位,“在交易处理环境中,企业维护了操作性的数据库,这些操作性数据库是事务计算化的原始目标。然后,末端用户(end-user)为报表和数据分析的目的,访问较大范围内企业数据却是相当新的事情。在IBM,信息系统计算机化的进展为业务需求和工具改进以有效访问企业数据所驱动。显而易见需要一种架构,汇集企业内各种信息系统的活动。IBM EMEA(欧洲、中东、非洲)已经采用一种称为Business Information System (EBIS)的架构,作为信息系统的策略方向。EBIS建议一种基于关系型数据库环境、集成公司数据的仓库。最终用户对仓库的访问,通过一致的工具、接口和可用数据的数据字典而得以简化。…”

“数据仓库”这个概念在合适的时间被再次提出,之后被持续丰富,促进了数据仓库行业的形成。之后,计算机系统开始有OLTP和OLAP的区分,OLAP系统的特性是“大量读操作,批量或连续插入,和批量更新“。

1994年IBM开发了金融行业企业模型FS-DM - 一个包含10大主题的企业数据模型。借助企业模型,一个企业的整体业务得以在数据进行“刻画”。

 

BillInmon的数据仓库

BillInmon最早于70年代提出了数据仓库的概念,也许因各方面都不成熟,未能引发关注。他对数据仓库的贡献始于90年代早期他建立了业内最早的提供和管理数据仓库解决方案的公司。

1992年Inmon出版了《Building the Data Warehouse》一书。该书定义了数据仓库的基本特征:数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用来支持管理人员的决策。该书还详细描述了数据仓库的基本理论和架构,从操作型数据开始,到企业数据模型(EDM)和部门应用的数据仓库体系架构,并就数据仓库模型的基本设计原理、开发模式、数据粒度设计等关键问题进行了论述。

Inmon的理论体现了“自顶向下”建设数据仓库的策略,基于一个集中式的企业数据仓库模型集成企业的业务数据,形成的企业业务“单一事实”(single truth),业务单位基于这个统一的企业数据构建各自应用或业务视图。在这样的架构设计中,企业数据仓库模型可以带来“强制”企业范围内数据一致的好处。

企业模型是一个面向主题的范式化模型,采用范式化模型的主要原因在于:可以保证数据更新的一致性、减少存储的冗余数据。

1997年,Inmon发展了企业信息工厂(Corporate Information Factory/CIF)的概念,并于1998年出版了《Corporate Information Factory》一书,企业信息工厂定义了企业视角的数据视图,数据仓库在企业信息工厂居于核心地位。

2000年机械工业出版社翻译出版了《Building the Data Warehouse》第二版,2004 电子工业出版社翻译出版了《Corporate InformationFactory》的第二版,这两本书成为中国早期数据仓库从业者的“圣经”。

BillInmon因发展了数据仓库理论而被称为“数据仓库之父”。

 

RalphKimball的数据仓库

数据仓库并非只有一种架构方式。

前施乐工程师Ralph Kimball,以90年代初期一家商业银行构建数据仓库的具体实践为基础,于1996年出版了《The Data Warehouse Toolkit》(数据仓库工具箱)一书,提出了使用维度模型进行数据仓库建设的理论和方法,Kimball认为数据仓库是“以交易数据副本为基础,为查询和分析目的而专门构建的数据结构”。

在数据仓库的实施策略上,Kimball建议先发展部门级的数据集市,数据集市通过信息总线(InformationBus)架构集成在一起成为企业数据仓库。Kimball的方法体现了“自底向上”进行企业数据仓库(EDW)的建设策略。

电子工业出版社2003年翻译出版了The Data Warehouse Toolkit的第二版 - 《数据仓库工具箱:维度建模完全指南》,该书是维度建模领域的“圣经”。

 

Inmon和Kimball的方法体现了建设企业数据仓库两种完全不同的策略,该用何种策略业界多有争论,从全球数据仓库实施案例的调查情况看,采用Inmon策略的案例更多,在中国更是如此,只有为数不多的企业采用了Kimball的策略。

 

四、Teradata的数据仓库时代

到90年代,Teradata以其领先的技术,成为数据仓库领域的领导者,这是一段凡产品与用户相互成就的传奇


伟大的用户

1990年的Wal-Mart – 经过30年快速发展,已经成为美国最大的零售商,在美国本土有1900家门店。如何有效跟踪管理每个门店、每个货架、每种商品、甚至每个SKU的当前和历史销售、库存、下单情况,是迫切需求。理想情况下,Wal-Mart希望滚动获知每个门店至少40周的历史销售状况,以此作为供应链预测的依据。

90年代以前,Wal-Mart使用主机进行数据处理,但主机提供只能提供当前业务粗粒度的汇总,历史数据非常有限。Teradata系统是Wal-Mart的最佳选择,能够容纳和处理Wal-Mart长周期海量销售明细数据。

Wal-Mart于1990年投资了初始的Teradata系统,并构建数据模型,将所有的销售明细加载到数据模型,进行汇总、分析。该数据仓库系统在接下来的时间做了持续的扩容,到1992年1月,该系统成为业界第一个用户数据规模超过1TB的数据仓库;时间走到世纪之交,这个系统已扩展至176个节点、130T用户数据空间的环境,Wal-Mart 的7000家供应商可以通过Web访问数据仓库里每个门店104周的历史销售数据。就是这个系统成就了“啤酒与尿片”的传说。

2000年Wal-Mart数据仓库项目团队的核心成员Paul Westerman 著书《Data Warehousing - Using the Walmart Model》阐述了Wal-Mart数据仓库的设计理念和实施过程,Wal-Mart的策略融合了Kimball与Inmon的方法,策略上“自底向上”,从单个主题开始,架构上“自顶向下”,以范式化企业数据仓库主题模型为核心。

数据仓库是Wal-Mart实现高效物流、更低运营成本,保证EDLP(Everyday LowPrice)的重要一环,Wal-Mart将数据仓库看作竞争优势,进行持续性的投资。2004年9月,Wal-Mart数据仓库空间已经扩展至423T,到2008年数据空间增长到2.5P。从1992年至2008年,Wal-Mart一直拥有业界最大的数据仓库。


Teradata与中国

1997年,已经成为NCR一部分的Teradata进入中国。

2000年上海证券中央登记结算公司、中航信相继成为Teradata在中国最早用户。上海证券中央登记结算公司的数据仓库2000年启动实施,2001年底完成,是中国首个规模达1T的数据仓库。

2001年至2006年间,处于信息化、业务大集中转型过程的商业银行,同时面临提升经营管理水平、提高风险管理能力等内在要求,和满足巴塞尔协议、1104监管报送、股改上市等外在信息要求。数据仓库既是重要基础设施,也是提升管理能力的手段。受这些因素的驱动,民生银行、中国移动、中国邮政、建设银行、光大银行、工商银行相继选择Teradata系统进行数据仓库的实施。

同期,受经营分析系统建设需求的驱动,部分中国移动省分公司与总部亦进行了数据仓库的实施,目的是通过数据仓库提升经营管理能力。Teradata在中国的早期用户还包括中国邮政,中国邮政除了将Teradata数据仓库系统用于经营管理(报表、KPI等),还将其直接用于邮政快递服务的动态实时查询。

这些早期项目的成功示范效应,叠加企业当时数据处理内在的旺盛需求,带动更多的大型机构相继选择Teradata系统实施数据仓库,迎来了2010年前后数据仓库建设的热潮,Teradata几乎成为数据仓库的代名词。

Teradata对中国数据领域影响颇深,除了带来技术先进的高性能MPP数据库,还带来国际领先实践、数据仓库架构、数据仓库软件工程方法、企业数据仓库模型(银行业FS-LDM、电信业CLDM…)等,这被认为是Teradata在中国市场取得成功的重要原因。在当时企业信息化、专业化水平普遍不高的情形下,这些因素着实降低了数据仓库实施的门槛和风险。此外,Teradata通过这些项目培养了早期的专业化数据仓库团队,直接或间接提升了企业界的数据理念和数据治理意识。

 

Teradata数据仓库技术的演进

数据爆炸式增长在前互联网时代就开始了,原因有二:1、企业事务处理持续计算机化,新数据不断产生;2、企业业务规模快速增长。性能与性价比的持续提升是应对数据快速增长的关键,也是Teradata数据仓库技术演进的两个核心点。

最大限度利用技术进步带来的计算成本下降、磁盘数据密度增加和存储成本下降、及内存成本下降的趋势,持续更新产品,保证存储数据(规模)最大化和最优性能的平衡,一些突破包括:

  • 2001年发布动态数据仓库,使数据仓库资源利用率达到90%-100%;

  • 2002年将数据压缩功能集成到数据库,提高IO的效率;

  • 2008年单一集群数据容量突破50PB;

  • 2012年发布SSD与机械硬盘混合存储技术的数据仓库产品;

  • 2015年发布混合行/列存储的数据库版本;

  • 2015年新的内存计算优化;

Teradata一直提供业界性能最好的MPP数据库,性价比上,平均每代产品与前一代产品相比约有10~20s%不等的提升,使用户持续用更大容量、更好性能系统紧随数据增长的步伐,“技术领先、产品优良”是Teradata赢得用户信任的关键。

 

2008年Teradata宣布全球有5个客户拥有超过1个PB数据空间的数据仓库环境,第一名是在线竞拍公司Ebay,拥有5个PB的数据仓库环境,第二名是Wal-Mart,拥有2.5PB的数据环境,第三和第四名是金融服务业务,各自拥有1.5和1.4PB的数据环境,第5名是一家生产制造企业,拥有1个PB的数据环境。另有35个客户拥有超过100TB的数据仓库环境。

 

五、其他的MPP数据库

上世纪80-90年代诞生了一系列现在所见的主流关系数据库:DB2、Oracle、SQL Server、Sybase,这些数据库也同时用于企业数据仓库,但对于大规模和超大规模数据处理,要获得好的性能,MPP仍然是更好选择。企业数据仓库市场的需求也推动一系列新Shared-nothing MPP架构数据仓库解决方案的产生:

1999年成立的Netezza,在PostgreSQL 7.2基础上发展出MPP数据库软件,早期产品基于特殊设计的Sun 服务器。Netezza产品特色在于硬件基于专有刀片服务器,以期充分利用硬件创新和“摩尔定律”带来的性价比提升的长期趋势。IBM于2010年收购了Netezza,在IBM旗下的Netezza在市场活跃度并不高,逐渐不再发展。2020 年IBM宣布将Netezza作为CloudPak数据offering一部分。

2003年成立的Greenplum,基于“快速的查询响应、快速加载、快速分析”三个目标设计其产品。Greenplum同样以PostgreSQL为基础发展而来。Greenplum的特点在于硬件基于X86工业标准服务器,不需要特殊设计的专用硬件。2010年Greenplum被EMC并购,2013年Greenplum从EMC独立出来,成为Pivotal的一部分。2015年Pivotal宣布Greenplum开源。与其他MPP数据库相比,Greenplum在中国有更高的曝光率,为更多企业所采用。

发展较晚(2005年)的Vertica是基于C-Store原型(第一个列式数据库的原型)开发的Shared nothing MPP数据库,与其他发展更早的MPP系统相比具有更多现代化的特性,包括:采用更适合分析型数据库的列式存储,能够直接与Hadoop集成,在云环境可以通过Eon Mode模式实现计算与存储分离。Vertica与Greenplum一样硬件采用工业标准服务器。2011年Vertica被HP收购,并于2017年被转售给MicroFocus,Vertica在中国有不少用户。

可以从这些新MPP数据库可看到两个新的方向:

  • X86工业标准服务器,甚至廉价服务器的使用,相比专用硬件,成本更低,使用门槛也较低;

  • “列式优先”数据库的使用,Mike Stonebraker在“C-Store: A Column-oriented DBMS”一文中指出“行式数据库”在分析型的处理任务中效率更低, “列式数据库”由于读磁盘次数更少,Join的性能更好,能提供更好的压缩比,因此总体性能也更好。“列式数据库”的加载性能不如“行式数据库”,需要进行专门的优化。

 

2010-2011年看起来是MPP数据库的最好时光,PB级的MPP数据仓库已看似平常事情,2013年左右,中国企业亦产生了PB级的数据仓库环境。但行业已经开始转向。

 

六、大数据新体系

相对于“有边界”、“可预测”的企业数据环境,互联网数据环境几乎是”无边界“”无限“的空间。据Netcraft统计,1997年4月,全球网站约为100万个,2000年2月约1000万个,2000年9月达到2000万个,2003年4月达到4000万个…,互联网的发展催生了“大数据”,这个星球增长最快的元素。需要新数据处理范式和新数据处理体系,最大限度的利用技术进步,以更低的成本打造性能最优的平台。


HADOOP的兴起

2003-2006年谷歌先后发表关于谷歌文件系统、MapReduce和 BigTable的三篇论文,描述了谷歌搜索引擎和在线广告的海量数据存储、计算框架和结构化数据访问的基本原理。

2007年亚马逊发表了一篇关于 Dynamo系统的论文,Dynamo是一套高可扩展、高可用、基于Key-Value存储模型的数据库。

2006年基于谷歌GFS和MapReduce思想的分布式计算框架Hadoop成为Apache开源项目。Hadoop最初的目的是为解决存储和处理Web上规模庞大的数据,Hadoop由两部分组成,分布式文件系统HDFS,和分布式计算框架MapReduce。Hadoop可部署在廉价的X86服务器上,通过数据分片和并行处理可获得不错的性能,通过将数据冗余分布解决廉价硬件的单点故障,由此获得高可用性。

2007年参考谷歌BigTable的Hbase发布,在Hadoop(HDFS)上实现的非关系型分布式数据库(NoSQL)。Hbase提供海量数据存储、快速随机访问、大量写操作的服务,并具备一定的容错性、高可靠性及伸缩性。HBase仅能通过主键(raw key)或主键的range检索数据,可以支持有限的(单行)事务。

由于MapReduce较低开发效率,以及HDFS由于缺少schema,带来的可用性和可管理性问题,导致了Hive的产生。Hive在Hadoop上提供了一种类SQL的数据处理语言,底层则将SQL解析成MapReduce执行任务和计划。这样Hadoop上便有了类似数据库的处理能力,但Hive 是个受限的数据库,不支持事务,早期的版本甚至不能插入、删除数据。“Hive+Hadoop”可以提供了类似MPP数据库的功能,同时成本更低、性能可接受,并具有不错的扩展性。开源的好处在于可以不断快速试错、快速解决问题,一些重大bug的修正性能提升促进了Hadoop更广泛使用,同时也吸引越来越多的商业软件与Hadoop集成。

2008年开始,Hadoop被众多商业企业用于构建数据仓库或通用计算平台。同年,一家致力于推广Hadoop商业应用,解决开源软件可维护性的公司-Cloudera成立。

2011 年,基于消息机制,高吞吐、低延时的分布式消息系统开源项目– Kafaka得到发展,解决了实时大数据的通道问题。

这样,一个完备的开源数据体系得以建立起来。

Hadoop催生了“数据湖”,一种不同于数据仓库的架构模式,由于数据存储成本较低,加载过程简单(无需知道数据的Schema),可以将大量原始数据不经处理的加载至HDFS,存储后再决定如何使用,就像是由数据组成的“湖”,“湖水”可以流向数据仓库或数据集市。而在数据仓库,要加载数据则必须知道结构,必须有必要的质量检核过程。

到2013年-2016年间,Hadoop生态体系的快速发展,很多企业看好Hadoop的前景,一些原来使用MPP数据库的重要用户宣布“开源战略”,计划将原有的MPP数据库上的数据仓库和应用逐步迁移至开源体系,成本是其中一个重要考量。


基于内存计算的SPARK

MapReduce是否就是未来的计算架构?2008年业界围绕发生MapReduce爆发激烈论战,一方以传统数据库元老Michael Stonebraker(发展了Vertica的大神)为代表,认为MapReduce是倒退,另一方以谷歌大牛Jeff Dean为代表,认为是伟大创新。

一些人看到了不同方向,2009年一个叫“SPARK“新计算架构诞生于美国加州大学伯克利分校AMP 实验室。SPARK是一个基于内存的分布式计算引擎,与MapReduce相比由于大幅减少了磁盘IO,可以提供更好的性能,也非常适合机器学习迭代运算模式,这是SPARK最早发展的领域。SPARK与具体存储解耦,采用的是与shared-nothing MPP数据库不同的“计算与存储分离”的架构,可提供更具弹性的部署方式,既能独立部署运行,也能够与HDFS集成。

2013年至2014年,Spark Streaming、Spark Mllib(机器学习)、Shark(Spark on Hadoop)、Spark Graphx(图计算)、Spark SQL陆续发布。至2014年,Spark 已经构建起了一体化、多元的数据处理体系。在任何规模的数据计算中,与Hadoop相比,Spark在性能和扩展性上都更具优势。

 

开源生态发展出大数据处理的“十八般兵器”,若使用开源技术部署一套端到端能力的数据环境,需将不同“技术栈”的“十八般兵器”有机集成为一个整体,对于大多数企业来说,这可不是件“简单”事情。

 

七、转向

2011年Kimball 撰文“The Evolving Role of theEnterprise Data Warehouse in the Era of Big Data Analytics”,谈及过去10年数据仓库环境的三方面转变:

  1.  越来越多低延时数据的引入;

  2.  客户行为数据的收集和使用,包括交易、点击流,以及其他可量化事件数据;

  3.  从社交媒体中抽取偏好和情感,尤其是大量由互联网公司新商业模式产生的非结构数据;

对行为进行量化和从数据中抽取出偏好与情感,是企业界开始重视大数据的原因,也使企业极大的拓展了数据边界。

Kimball认为未来数据环境将呈现出大规模(PB级)、快速增长、数据高度异质化和实时化的特征;同时应将新涌现出大量非传统的大数据分析场景,例如:搜索排名、广告效果跟踪、因果因子发现、文本比较、图像比较、与特定主题、研究事件相关的“数据包”等等,纳入到传统数据仓库的环境。

未来的大数据环境需要具备以下的能力:

  • 秒级响应的SQL处理;

  • 强化的UDF功能,能集成各种处理语言

  • 能在几分钟内快速扫描PB级的数据;

  • 兆级事实表与十亿量级维表关联,无需提前对维表进行前置分片处理;

  • 在声明结构前以高速度从多数据源加载数据,非常地快速使数据加载后就绪分析;

  • 支持广泛类型的数据的加载与处理;

  • 大规模“流式”数据的实时分析;

  • 支持极端的混合负载能力;

 

2010年后, MPP数据库结合Hadoop的混合架构开始流行,以此解决几方面问题:半结构化和非结构化数据处理、应对快速增长的数据(Hadoop成本更低)、大数据分析场景的引入。2013年Teradata发布了融合传统MPP数据库和Hadoop的统一数据架构平台,2015年Teradata数据库亦开始支持Jason格式数据。

到2015年,从可获得的数据分析,业界数据仓库平均规模约在100T的量级。数据的增长,带来诸如可管理、可访问、性能等一系列问题,在前大数据时代,可以通过企业数据模型,将企业范围内的数据和业务集成到一个视图。而面对快速增长的无边界大数据,以及数字化带来的企业业务边界的外延,商业银行有电商业务,电商平台做金融是平常事情,企业模型无异于“刻舟求剑”。

当数据规模达到一定的界限,超过一个MPP集群的部署上限,甚至超过了数据中心可部署空间的所允许的容量,带来的不仅仅是技术问题,也是经济问题。试想,若拥有1PB存量数据,年增长30%,则至少需要部署1-2年增长余量,这些余量是无效成本,存量数据规模越大、增长越多,需要的余量越大,无效成本越多。

 

八、云上“MPP”

数据平台上云的方向几乎是确定,基于几方面原因:一、公有云环境提供了成本最低、性价比最好的存储与计算资源;二、数据规模与增长使然,云环境可以提供更好的扩展性;三、越来越多的数据在“云”上产生;四、基于快速部署、可用性、成本方面的考量。


“云上“Teradata

早在“云计算”发展以前,Teradata就为一些特定的用户提供“按使用付费”的服务,解决用户对资源的弹性需求。2013年,Teradata推出一个新的数据仓库服务解决方案,为客户提供灵活性,允许客户根据自己的业务需求选择在企业内部、在云或者在混合的环境中部署Teradata云服务,服务按月收费。2016年,Teradata推出了AWS和Azure公有云环境的数据仓库服务,服务为按次付费。

Teradata的“云上”数据仓库服务模式更适合于负载和分析场景相对固定的用户,体现了一个传统MPP数据库厂商对“云”的直觉反应。


AWS的RedShift

2013年AWS推出RedShift,一个基于PostgreSQL8.0.2 的带压缩能力的MPP列式数据库,RedShift 对PB 级数据规模运行分析查询,可获得不错的性能,也可以通过Redshift扩展查询存储在S3中的各种结构数据,而无需做任何加载处理。立足于底层AWS带来的扩展性,Redshift可快速扩展。到2015年,RedShift成为增长最快速的AWS服务。


阿里云的MaxCompute

2014年,阿里云宣布开放数据处理服务ODPS(Open Data ProcessingService,、2016年改为MaxCompute)商用,ODPS是阿里云自研、“云上”超大规模数据处理平台,可以提供从 GB到 EB级别按需弹性伸缩的在线大数据服务。阿里云为ODPS提供“开箱即用”全套数据处理解决方案,无需集成其他第三方工具,即可进行端到端从数据接入、加载、到最后分析展现处理。

ODPS采用列式存储技术(其早期版本为行式存储),并可采用多种压缩策略,以提高IO的效率,同时降低成本。用户可以通过扩展的SQL访问数据库,ODPS SQL内嵌了对半结构化数据的处理。ODPS可通过外部表的方式建立与存储在阿里云上的OSS、OTS上开源结构、半结构化数据连接,进而能用SQL同时进行结构化和半结构化数据处理。ODPS不支持事务,亦不能直接进行update和delete。其底层为阿里云飞天分布式文件系统,SQL任务通过解析被转换为底层MR分布式作业。

阿里云2014年公布的ODPS价格:

  • 数据存储 0.0008元/GB/小时(或0.576元/GB/月)

  • SQL价格 0.3元/GB

服务采用“按使用”的”存储与计算分离”的计价策略,以平均1PB的数据存储容量、平均20%热数据进行SQL计算成本估算,1PB数据每年用于存储的成本约为700万元,用于计算成本为2190万元,总成本不到3000万元。2020年MaxCompute的存储价格已经降至0.12元/GB/月,价格仅为六年前的五分之一。

阿里云的MaxCompute是中国高性能数据库发展的重要里程碑。

 

九、Shared-nothing MPP数据库的挑战

Teradata发明Shared-nothing MPP数据库以来,Shared-nothing是并行数据库的主流架构,为GP、Vertica、Hadoop、RedShift、MaxCompute等所采用。这种架构将计算(数据库服务)和数据存储耦合在相同的物理节点上,每个节点仅处理本地数据,节点之间不共享数据,以此减少IO;通过将数据平均分布于节点和节点的并发处理以获得高性能;Shared-nothing架构的好处还在于可通过增加节点来获得性能线性增长。

SharedNothing架构面临主要的问题:

  • 非常依赖数据分布状况,当数据分布倾斜时,会导致整体性能的大幅下降;数据分布由表分区方式决定,在通常表创建的时候指定;

  • 节点增加(扩容)带来的数据重分布过程会导致整体系统性能下降或系统可用性降低,事实上,MPP数据库节点升级或扩容是个痛苦过程;

  • 复杂甚至极致的混合负载管理问题,难以处理大量不同类型负载的并发处理,使各种负载均获得较好的响应;

  • 大规模数据的并发加载问题;

  • 并发的读写操作问题,读写并发导致数据不可用,或潜在一致性问题;

  • 并发查询访问问题,单一集群难以承受一个大型企业用户的并发访问负载。这对于大型组织来说是个问题,不得不将数据分割为多个独立的环境,以容纳更多访问需求;

 

2015年数据库专家PAT HELLAND撰文“Immutability ChangesEVERYTHING”认为由于计算和存储成本降低,已经可以“负担”得起一种称为“不可变更”(Immutability)数据模式,对“不可变更”数据(表)的更新将产生一个新版本的“不可变更”数据,版本信息则提供变化的视图。“不可变更”数据带来数据访问一致性、并发、容错等一系列好处,能够在大数据环境提供事务处理,是未来大数据处理演进的方向。

 

十、新架构

Databricks的“Delta Lake”

Databricks成立于2013年,是一家提供基于Spark的大数据云服务公司。为解决大数据引擎Spark底层数据存储面临的数据质量、性能、一致性、访问低效等方面的问题,Databricks开发了“Delta Lake”。作为新一代数据湖的“Delta Lake”于2017开始向商业用户提供服务,2019年Databricks将Delta Lake开源。

DeltaLake定位为“批流一体化”的数据湖,其底层是云平台的存储服务(ASW S3, Azure Blob Storage等),上层是Spark计算引擎,DeltaLake不是独立部署的服务,它依附于Spark,可将其理解为落地存储的Parquet文件的“API接口”。从整体看Spark与“Delta Lake”+底层的存储构成“计算与存储分离”的体系。

DeltaLake的关键特性包括:

  • 在云存储服务上实现一种基于数据表ACID 的存储层,意味着大数据写操作可以有一致性的保证;

  • 时间旅行(Time travel)和数据版本控制。一种“不可变”数据的控制机制,当文件更新时,DeltaLake 将创建数据的新版本并保存旧版本,Delta Lake 允许用户按“时间戳”或“版本号”读取表或目录先前的快照;

  • 统一的“批和流”一体化处理机制,无需像传统Lamda架构,将批处理和流处理置于不同的处理路径;

  • 支持UPSERT, DELETE和MERGE操作,使得数据更新效率更高;

DeltaLake赋予传统上基于文件的“数据湖”更贴近数据库的特性。

2020年Databricks核心团队发表文献“Delta Lake:High-Performance ACID Table Storage over Cloud Object Stores”,详细阐述了Delta Lake的设计原理。


Snowflake的multi-cluster shared data

2012年一家以打造革命性云数据平台为目标的公司 - Snowflake成立,Snowflake 希望能用最新的技术打造出比Shared-nothing MPP数据库“更快速、更易于使用、更高成本效率“的系统,按需、按使用付费。2014年Snowflake发布了第一个运行于AWS S3上的版本。

2016年Snowflake核心团队发表“The Snowflake Elastic DataWarehouse”一文,详细阐述了Snowflake的设计理念。

图:Snowflake multi-cluster shared data

Snowflake创造了一种称为“多重集群,共享数据”(multi-cluster shared data)的架构,将数据存储、计算、服务分层解耦,各自分布于不同的节点,整个体系因此分为相对独立的“数据存储”、“虚拟数据仓库(VW)”、“云服务”三层,以应对数据规模的弹性、计算的弹性和用户的弹性:

  • 数据存储依赖云原生的数据存储AWS S3,采用列式存储的Snowflake表被分区存储在S3“不可更新”的blob文件。Snowflake数据表是一种”不可变“表,对表的写操作(insert, update, delete, merge)将产生数据表的一个新版本,而旧版本表将被保存一段时间;

  • 虚拟数据仓库(VW)是面向用户,临时、纯粹的与数据存储无关的计算资源,按需动态创建、删除、调整。VW由AWS EC2实例组成,EC2实例称为“worker” 节点。每个查询运行于独立的VW上,对用户来说就像“独占”了整个数据仓库,计算资源按使用需求依既定策略弹性伸缩,当VW上没有负载时,将被自动删除。所有的VM访问相同的共享数据,无需进行物理上的复制。理论上,Snowflake可以提供无限的并发能力;

  • 云服务为持久化、共享的、多租户架构,包括了访问控制,查询优化,交易管理等,元数据是其核心底座,每个服务均具有高伸缩性和高可用的特征。

通过这样的架构使Snowflake能够处理极致的混合负载的场景,提供性能更好的并发处理,以一套共享数据实现企业数据的“平民化”使用。Snowflake采用列式数据库结构,支持完整的ANSI SQL和ACID事务,SQL能同时支持结构化数据和半结构化数据(或schema-less )的访问、处理,与其他的数据平台相比能支撑更宽的业务场景的要求。

Snowflake2018年发布运行于Azure上版本,2019年发布运行Google Cloud上版本。用户可以通过Snowflake提供数据共享功能,实现同云、跨云、跨洲的安全数据共享,实现云上数据贯通。

2020年9月Snowflake在纽交所上市,即获市场热捧。

Snowflake代表了企业界对未来数据平台的关注点:完整数据库能力、同时提供结构化和半/非结构化数据处理功能;以SQL为主、兼具提供其他访问语言;良好的性能、同时更具竞争力的性价比;一体化、更好的集成,提供更好易用性;更好的可用性和扩展性。

40年,整个行业仿佛走了个“轮回”。

 

十一、未来方向

图:数据规模的增长趋势(来源:IDC和 Arne Holst)

如肯尼思·内尔·丘基尔和维克托·梅耶—舍恩伯格在“大数据兴起”一文总结,我们正经历了前所未有的数据爆炸现象,2000年全世界全部的存储信息中还只有四分之一是数字化的,但是数字数据以几乎每三年就翻一番的速度增长,到2013年在所有存储信息中只有不到2%是非数字化的。数据的增长不仅仅是存量的转化,更在于能够用数据来表现世界的众多层面,而这些层面以往从来都没有被量化——“数据化”。

 数据增长趋势仍将继续保持相当长时期。过去,仅有为数不多的企业能够充分运用科技进步和“摩尔定律”带来“性价比”持续提升的趋势,紧跟数据增长的步伐,将数据转化为竞争力。现在,科技进步使数据技术成为“普惠”技术,发展出众多选择,一般企业亦有机会大规模存储和处理数据。

预计未来企业数据环境将呈现多样化,Shared-nothing MPP数据库、开源生态大数据平台、“云”原生MPP数据库等仍将继续演进、共存发展,并各有其合适场景。事实上,到2018年,那些宣布“开源战略”MPP数据库用户,仅有少数成功实施,多种技术并存是常态。数据增长的趋势导致数据价值密度和边际价值持续下降,未来,最终占据主导地位的将是那些能够紧跟增长步伐,同时提供最优性能与成本效率的技术。


文章转载自比特世界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论