数据平台的演进与发展

《DataFun·5周年系列技术文章》专栏·第03篇

作者 | 阎志涛 策划 | Hoh


导读:转眼间,2022年就要过去了。按照惯例,每逢年底都是应该进行总结和展望的时候。对于大部分人来讲,2022年都是非常难熬的一年。相信会有不少人会对这一年的俄乌冲突、疫情、全球经济衰退做各种总结。作为一个数据技术相关从业人员,我从数据平台的角度来对历史进行一下总结和回顾,然后也展望一下未来。

--

01

什么是数据平台?

在介绍数据平台的历史之前,我们首先来了解一下什么是数据平台。通常来讲,数据平台是指能够对数据进行收集、存储、处理、以及计算和分析的软件平台。另外,数据平台应该还具备数据的安全管理,并且根据自己所面对的业务的不同,提供业务所需的SLA的保证。对于企业来讲,数据平台是企业实现数据驱动的核心平台,帮助企业管理好数据资产,支撑企业利用数据做决策。

在不同的历史发展时期,数据平台所包含的内容、采用的技术以及解决的具体问题也不完全相同。这主要与当时信息技术发展的阶段和能力有关。另外不同企业根据企业的规模、业务特点、企业信息化程度的不同,对于数据平台的要求和使用场景也有所不同。下面我们就来分不同的历史阶段来介绍一下数据平台的发展历史以及技术的选择。

--

02

数据平台 1.0

在1946年,人类历史上第一台真正意义上的通用计算机ENIAC在美国的宾夕法尼亚大学诞生。这个标志性的历史事件,使得人类从用纸笔进行数据计算和存储,转变为使用电子技术来解决计算和信息存储的问题。

第一代计算机采用的是电子管,主要解决的还是科学计算问题。因此在这个年代,计算机虽然能存储数据,但是这些数据的用途仅仅是在计算过程中的临时产物。

到了1958年,晶体管计算机开始产生,计算机的体积更小,计算能力更强,存储的数据也更多。也同样是在这一年,IBM的研究员汉斯.彼得.卢恩在发表了一篇论文提到了商业智能的概念。在这篇论文中,他非常前瞻性的预见了数据对于决策的作用,并对商业和智能做了论述:

商业 - 想要达成目标所开展的一系列的行为,目标可能是科学、技术、商业、工业、法律、政府、防御等等。

智能 - 一种理解所呈现的事实之间的关系的能力,以便指导行为朝着预期的目标前进。

由此可见,随着计算机硬件技术的发展,除了用计算机去做一些科学计算之外,科学家们同样在思考如何用数据指导人类的决策。这些指导思想也为第一代数据平台的产生和发展奠定了理论的基础。

虽然在20世纪50年代就有了现代商业智能的相关理论,但是真正的商业智能相关产品的产生,要等到大约20年之后了,因为商业智能的发展离不开数据库技术的发展,而数据库技术的发展又是伴随着大规模的信息化技术的发展而向前演进的。

在1968年,IBM研发了第一个层次数据库系统IMS ( Information Managment System )。到了1970年,IBM的Edgar F Codd提出了关系数据库模型。而到了1974年,IBM的Ray Boyce和Don Chamberlin提出了SQL ( Structured Query Language )。从此开始,关系型数据库逐渐在信息技术领域占领核心的地位。结合着70年代大规模集成电路技术的发展,以及摩尔定律在硬件领域的作用。人类历史上开始真正的进入信息化时代。也正是在这段时期,产生了现在数据库领域的巨头,Oracle公司。而我们国家的信创中,数据库国产替换是一个核心的要突破的领域。尤其在OLTP领域,何时能真正替换掉Oracle,才是我们国家数据库技术自主可控达成的那一天。

1. 第一代商业智能 - 传统BI

时间来到了20世纪80年代到90年代,随着越来越多企业和组织已经基于数据库构建了自己的核心业务系统,利用这些业务产生的数据去帮助自己来进行更好的决策就成了一个核心的诉求。在这个背景下,第一代真正意义上数据平台 - 企业的商业智能(BI)平台开始逐渐被企业所采纳。在这一段时间里,值得我们记住的名字包括Cognos,Hyperion,Business Objects MicroStrategy,SAS,SPSS等等。

Cognos - 1969年创立于加拿大渥太华,最早为技术咨询公司,1982年改名为Cognos。非常知名的第一代商业智能软件提供商,在2007年被IBM以49亿美金收购。

Hyperion - 1981年成立于加州圣克拉拉,也是知名的商业智能软件提供商。在2007年被数据库巨头Oracle以33亿美金收购。

Business Objectives - 1990年成立于法国,是在美国纳斯达克上市的第一家欧洲软件公司。在2007年被软件巨头SAP以68亿美金收购。

在2007年到2008年两年的时间里,曾经的三个在商业智能里赫赫有名的三个软件公司分别被三个巨头IBM,Oracle,SAP收购。结合当时软件发展的历史,以私有化部署,售卖授权为核心商业模式的传统企业服务软件进入到了成熟阶段。

MicroStrategy - MicroStrategy成立于1989年,总部位于美国的弗吉尼亚州。仍旧在独立发展的商业智能软件提供商。目前除了提供传统的私有化部署的企业级BI解决方案, 还有基于云的服务以及面向移动端的商业智能服务。

第一代BI在企业中的实施一般伴随着一个比较大型的商业智能项目的立项和实施工作。通常的架构如下:

在这种项目实施过程中,一般情况下需要项目经理、数据架构师、数据分析师、数据工程师等等多个角色配合。项目实施路线图可以参照如下:

而一般这种项目会采用瀑布模型进行项目的整个实施过程,包括需求收集、需求分析、设计、实现、测试和部署过程。

通常来讲,传统BI的项目周期一般都会在半年以上,对于企业来讲投入大,经常会面临风险不可控的情况。因此能够采用传统BI的一般都是大型企业,面向企业的核心业务指标进行建设,项目的建设通常是IT团队主导的。成功的BI建设能够给企业决策提供很好的帮助,从而降低企业决策风险。但是传统BI实施周期长,重度依赖实施、代价高昂的缺点让它在大部分企业中很难被采纳。正是因为这个原因,在2010年前后,新一代的敏捷BI开始出现。

2. 第二代商业智能 - 敏捷BI

随着硬件技术的进一步发展,越来越多的中型的企业也开始逐步实现自己的信息化。而这些企业同样收集了非常多的数据。另外大型企业在利用数据做决策的时候,传统BI的固定式报表也已经不能满足企业的要求。基于企业的数据,数据团队不重度依赖IT团队就能自助进行数据的分析逐渐的成为了一个核心诉求。在这个背景下,以Tableau,Sisense,Qlik为代表的新一代的敏捷BI正式登上了历史舞台。顾名思义敏捷BI相对于传统BI,采用了更敏捷的方式来解决客户使用数据支撑决策的过程。采用敏捷BI,业务分析团队在经过一些培训之后可以自助的进行指标加工和报表构建,从而支撑日常的决策。我们接下来看一下敏捷BI的几个产品。

Tableau - 作为敏捷BI的代表,也是敏捷BI领域最知名的公司,Tableau在2003年成立于美国的Mountain View。与自己的前辈们一样,Tableau最终也没有逃脱被收购的命运,最终在2019年被SaaS领域的领头羊Salesforce所收购,收购价格达到了157亿美金。

Sisense - Sisense同样是一家敏捷BI软件提供商,在2004年成立于以色列的特拉维夫。目前年收入有一亿美金,属于独角兽级别的公司。

Qlik - 相对于Tableau和Sisense,Qlik成立的时间更早。Qlik在1993年成立于瑞典,与SAP和Business Objectives一样是起源于欧洲的软件企业。

敏捷BI项目无论产品特点还是实施过程,时间周期都更短。客户也能够在更短的时间之内看到实施BI项目给自己公司带来的好处。另外敏捷BI产品由于日常使用对工程师的依赖显著降低,因此业务分析部门的分析师可以在有需求的时候,结合业务需求更快速的直接操作BI,生成自己所需要的数据报表。

3. 数据仓库

如果一个企业想要用数据来支持自己的商业智能,就需要数据的基础设施来保证能够把数据从不同的数据源抽取出来,然后存储到一个存储从而方便后续数据使用。最初的这些数据的来源一般是企业的核心业务数据库,这些数据库由于都是针对OLTP场景进行设计的,在保证数据强一致性的情况下,对于需要大量数据计算的在线分析场景就不合适了。在这个背景下,支持数据分析和智能决策业务的OLAP(在线分析处理)技术应运而生。

与OLTP侧重事务一致性不同,OLAP侧重在复杂的数据聚合和分析工作,设计上主要是优化复杂聚合类型操作的执行效率。数据仓库则是实现OLAP,用于支持企业进行数据分析和智能决策的数据平台系统。数据仓库的概念最早由IBM的Barry Delvin和Paul Murphy在上个世纪80年代末提出,在维基百科中,数据仓库的定义如下:

一个经典的数据仓库架构如下:

从基本定义可以看到,数据仓库中存储的数据一般都是被清洗和整理过的数据,从而方便不同业务的数据使用。正是因为这个原因,一般数据仓库的建设都避免不了数据建模过程。

一般的数仓建设都是分层的,通常分为ODS层 ( 运营数据层,一般存储来自于业务系统的详细数据 ),DW层 ( 数据仓库层,一般又分为DWD-细节数据层,DWB-基础数据层,DWS-数据服务层 ),ADS层 ( 应用数据服务层 )。而这些数据分层的实现,离不开我们常说的ETL ( 数据的抽取、转换和装载 )。

数据仓库的建设通常会面向不同的主题进行建设,针对不同的主题进行建模。例如,在电商领域可能会按照销售、订单、产品、物流等等主题进行建模。例如下图:

--

03

数据平台 2.0

随着信息化技术的进一步发展,从20世纪末开始,我们进入了互联网时代。在传统的企业信息化时代,数据的来源主要是业务系统的交易相关的数据,比如银行的资金往来数据,电信行业的账单数据等等。但是到了互联网时代,越来越多的人与信息化系统的交互都开始在互联网上完成。而这些交互产生了大量的行为相关的数据,于是我们逐渐进入了大数据时代。

对于大部分的年轻读者,尤其是90后或者00后来讲,大家的成长过程中所接受到各种便利的服务离不开大数据对我们生活方方面面的影响。比如你上网搜索、出门打车、在家点外卖这些你基本上每天都要使用的在线服务,在背后无一没有大数据的功劳。

关于大数据的定义在互联网上能够搜到的比较多,我这里仅仅做个简单的总结。相对于传统的数据,大数据的特点主要包括:

伴随着大数据的产生,采集、存储、处理和分析数据的技术也随着硬件技术的发展也有了进一步的发展,大数据技术也迎来了蓬勃的发展。

在传统BI和数据仓库时代,数据处理的硬件一般是采用小型机,计算能力的扩充通常采用的是Scale up方式。但是到了大数据时代,数据的规模已经不是单台机器通过扩充硬件就能解决的了。因此新的大数据技术都是采用廉价的PC服务器,通过Scale out方式进行扩充计算能力来解决问题。重要的技术理念就是多机并行的分布式处理技术。

2000年Seisint公司利用C++开发了一套分布式数据处理平台名字叫做HPCC系统。这套系统可以自动的把数据进行分区、存储到多个商用服务器存储中,用户可以采用一个声明式的数据流语言ECL进行数据的处理和分析。

到了2004年,谷歌的大神Jeff Dean和Sanjay Ghemawat发布了与HPCC理念类似的奠定大数据技术基础的MapReduce论文《MapReduce:Simplified Data Processing on Large Clusters》,详细的介绍了利用MapReduce编程模型基于多机集群进行大规模数据处理的思想和技术。

大数据技术时代同时也是开源社区大发展的时期,在谷歌发布了MapReduce的论文后,开源版本版本的MapReduce实现Apache Hadoop项目与2006年正式发布。

Hadoop的架构如下:

整个架构分为如下几个重要的组成部分:

而Apache Hadoop一经推出,就受到了行业的普遍关注和欢迎,拥有海量数据的互联网企业纷纷采用Hadoop为基础来构建自己的大数据平台。而应对企业级市场的需求,基于Hadoop进行商业化的公司Cloudera,HortonWorks,MapR等等公司也应运而生。这些公司主要是通过对开源的MapReduce增加很多企业私有化部署所需要的管理、安全等等能力,来为企业提供大数据平台解决方案。

Cloudera - Cloudera公司成立于2008年,是主要的Hadoop企业商业化平台服务提供商,同时也是多个Hadoop周边开源服务组件的主要维护者。2017年Cloudera上市,2019年Cloudera和另外一个Hadoop数据平台提供商合并。不过由于基于公有云的云上数仓和数据平台逐渐被更多的企业采纳,Cloudera上市后的业绩表现一直不是很好,在2021年10月被私有化。

到了2010年代,移动互联网时代来临,大数据技术进一步的发展。移动互联网、物联网都产生了更多的数据,摩尔定律的作用使得商用服务器的硬件能力也大大提高。Hadoop的MapReduce虽然能够解决大规模计算问题,但是已经不能够满足企业对数据分析和处理的时间要求。新的大数据计算技术开始产生,这些技术包括Apache Spark,Apache Flink等等。

Apache Spark - Apache Spark无疑是在2020年代大数据技术的王者之一。这个孵化自加州大学伯克利分校AMPlab的开源项目来自于Matei在读博士期间发表的一篇论文《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing》。通过这篇论文,Matei提出了基于内存的分布式弹性数据集RDD的概念。利用RDD,Spark可以充分的利用硬件内存的能力,并且支持大规模的并行执行。由于很多大数据的执行都是在数据上的迭代类型的计算,因此RDD模型可以大幅度降低内存中数据换入换出的次数,这样就显著降低了IO的开销,进而大幅度提高了批量计算的性能。Apache Spark在2014年发布后很快的就被诸多拥有大规模数据的公司所采纳,Spark技术也随之成为最为火热的大数据技术。主导Spark开源的Amplab进而孵化出来了大数据的超级独角兽Databricks,目前已经是估值超过300亿美金并且还在高速成长的巨型企业。

Apache Flink - 随着数据使用场景的增多,分批次进行数据处理在一些需要比较高的实时场景的数据驱动的业务中已经很难满足需求。大规模流式数据处理就是为解决这种场景而产生的一种技术,开源的Apache Flink就是为了这种场景而产生的流式大数据处理框架。Flink最早来自于柏林科技大学的一个大数据研究项目,2014年进入Apache孵化器,2014年12月变为Apache的顶级项目。在Flink的设计理念中,所有的数据处理都是基于数据流进行的,批量数据处理仅仅是一种特殊的流。主导Apache Flink开源项目并且进行商业化的公司Data Artisans在2019年的时候被阿里云以9000万欧元收购。这次收购虽然给Apache Flink带来了更多的资金的支持,但是从发展角度看,失去了云中立,对Flink长久是否有好处还很难说。对照Spark来看,Flink近几年的发展相对来讲还是稍显平淡了。

到了大数据时代,除了数据分析计算相关的Hadoop,Spark,Flink等等技术,其他大数据相关的开源技术也在飞速发展。比如Kafka,Redis,Cassandra,HBase,ElasticSearch,Impala,Druid,Kylin,Alluxio,Presto等等。

各种开源大数据技术的发展,使得很多公司开始利用这些开源技术搭建自己公司的大数据平台。而常见的大数据平台架构有Lambda架构和Kappa架构两种。

Lambda架构 - Lambda架构是一种大数据处理的架构,这个架构同时支持批量处理以及实时处理两种场景,通过统一的查询服务层提供最终服务。架构图如下:

在Lambda架构中一共包含三个部分,分别是:Batch Layer,Streaming Layer和Serving Layer。

Batch Layer - Batch Layer负责大规模批量计算,一般会通过调度的预计算方式从原始数据计算出所需要的结果,存储在数据库或者支持在线分析的系统中,提供后续的Serving Layer进行查询。Batch Layer因为是批量处理,数据一般会有延迟,因此提供的都是一些非实时的指标。比如昨日的数据、一个小时以前的数据等等。

Streaming Layer - Streaming Layer主要负责实时数据处理,对接收的数据低延时的进行计算处理,从而能够计算出实时指标。比如在行为分析系统中的当日活跃、新增用户、最新用户等等相关的指标。

Serving Layer - Serving Layer则提供业务系统的指标查询能力,从而使得业务系统即能获得批量计算的结果,也能获得流式计算的结果。

在Lambda架构当中,不同的部分可以才用的技术选择也不同,而且在不同时期也有不同的选择。比如Batch Layer早期一般采用Hadoop的MapReduce,但是随着Spark的出现,很多企业开始用Spark来进行Batch Layer的计算。而Streaming Layer最初有用Storm,后来Flink被越来越多的采纳。Serving Layer则有的用Redis加上数据库,有的则采用Druid来提供服务。在不同的企业中,根据自己的数据规模以及业务特点的不同,有非常多的技术组件可以选择。Lambda架构的一个比较明显的缺陷是由于存在批量和流式处理两个计算部分,因此可能会存在两个计算部分算出来的指标不一致的情况。

Kappa架构 - Kappa架构则是在流式数据处理越来越受到重视的时候出现的一套以流式数据处理为核心的架构。在Kappa架构中,所有的数据处理都是流式处理,不再存在批量处理部分。因此Kappa架构就不会存在数据指标计算不一致的问题。

Kappa架构相对lambda架构更为简单,只需要一套计算框架,一套计算逻辑,因此代码维护的成本也更低。从技术选择上,由于Kappa架构采用了纯粹的实时处理体系,因此Hadoop的MapReduce就不再符合Kappa架构的需求。计算框架可以采用Flink或者Spark的流式处理技术来支持。

--

04

数据平台 3.0

在2010年代,除了大数据技术在飞速发展以外,公有云技术也取得了巨大的成功。与大数据技术一样,公有云之所以能够取得成功,都归功于互联网的普及以及对应的技术的发展。在公有云占领企业服务市场之前,一个企业想要实现信息化或者构建自己的数据平台,必须要自己建设或者租用IDC,购买昂贵的硬件,然后自己需要专业的运维团队来去保证自己的数据中心的正常运营。但是公有云的成熟和普及完全改变了企业建设自己信息化系统或者数据平台的方法。

对于企业运营需要的业务系统,在公有云上有多样化的SaaS服务可供选择。企业可以根据自己的业务形态、业务规模以及预算去选择合适自己的SaaS服务。而这些SaaS服务因为构建在公有云上,因此一般都是API优先,这就给企业基于新的这些SaaS构建数据平台变得更为简单。也正是因为具备了这些基础条件,在欧美市场,替换传统数据平台和数据技术栈的现代数据技术栈 ( Modern Data Stack ) 取开始取得蓬勃的发展。

海外的现代数据技术栈起步于2012年前后,而标志性的事件则是AWS发布了基于公有云的MPP数据仓库产品Redshift。作为公有云的鼻祖,AWS发布Redshift使得企业构建数据平台可以依赖于云端数据仓库CDW来构建。随之而来的,我们可以看到独立于三大云平台的云端数据仓库Snowflake因为云中立的特点,迅速的占领了很多中大型企业的心智并且被采纳。而Snowflake也无疑成为了最近几年IPO的最为成功的企业服务类的SaaS公司。

围绕着云端数据仓库CDW,从数据接入到数据建模转化,然后再到数据可视化和BI,一系列基于公有云的数据工具产品开始如雨后春笋般的发展起来,现在数据技术栈的寒武纪一期正式到来。

在现代数据技术栈中,我们可以根据数据处理的流向,把相关的技术分为如下几个部分:

现代技术栈发展到今天刚刚10年左右的时间,因此还处于发展的早期到中期的阶段。因此海外的相关从业者比喻现代数据技术栈处于寒武纪大爆发的第二期的开端,也就是说会有更多的物种产生。作为一直在观察海外现代数据技术栈的从业者来讲,我自己也完全相信现代数据技术栈的未来。

--

05

总结

管理大师爱德华兹.戴明曾经说过一句话:"In God we trust, All others must bring data",翻译过来就是除了上帝,我们都要用数据说话。过去半个世纪,是我们人类历史上真正开始实现用数据说话的半个世纪。而过去20年互联网技术的高速发展,让我们人类能够积累和处理的数据在指数级的上升。数据正在改变着我们的生活的方方面面。最近火热的ChatGPT已经把数据智能发展到了一个崭新的阶段。所有这一切,都离不开数据平台技术作为基础底座的核心作用。我相信在未来的10年,数据平台技术会进一步的普惠化、平民化,从而让所有实体,无论大小都可以真正的用数据说话。

--

06

参考链接

[1] https://en.wikipedia.org/wiki/Business_intelligence https://www.clearpeaks.com/bi-[2] project-management-part-1-introduction-and-different-strategic-approaches/

[3] https://en.wikipedia.org/wiki/Data_warehouse

[4] https://en.wikipedia.org/wiki/HPCC

[5] https://data-flair.training/blogs/hadoop-architecture/

[6] https://en.wikipedia.org/wiki/Apache_Spark

[7] https://www.databricks.com/wp-content/uploads/2018/12/nsdi_spark.pdf

--

07

作者介绍

阎志涛,毕业于北京大学,北京快用云科技术有限公司联合创始人。大数据独角兽企业 TalkingData 早期创始团队成员,历任研发副总裁、CTO 等职位。在 TalkingData 之前,在 IBM,Oracle 等国际知名企业担任资深架构师等资深技术职位。

--

08

关于我们

DataFun是专注于大数据、人工智能领域的技术分享与交流技术分享平台。从2017年成立至今,累计举办300+峰会、论坛或者日常分享,有超过2000位分享嘉宾,在DataFun分享。其下公众号DataFunTalk,已累计发布原创技术文章800+,累计阅读量超500W。

展开阅读全文

页面更新:2024-03-20

标签:数据   平台   数据处理   架构   数据仓库   业务   智能   产品   技术   企业

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top