任何一种技术都会经历从阳春白雪到下里巴人的过程,就像我们对计算机的理解从“戴着鞋套才能进的机房”变成了随处可见的智能手机。在前面20年中,大数据技术也经历了这样的过程,从曾经高高在上的 “火箭科技(rocket science)”,成为了人人普惠的技术。
回首来看,大数据发展初期涌现了非常多开源和自研系统,并在同一个领域展开了相当长的一段“红海”竞争期,例如Yarn VS Mesos、Hive VS Spark、Flink VS SparkStreaming VS Apex、Impala VS Presto VS Clickhouse等等。经历激烈竞争和淘汰后,胜出的产品逐渐规模化,并开始占领市场和开发者。
事实上,近几年,大数据领域已经没有再诞生新的明星开源引擎(Clickhouse@2016年开源,PyTorch@2018年开源),以Apache Mesos等项目停止维护为代表,大数据领域进入“后红海”时代:技术开始逐步收敛,进入技术普惠和业务大规模应用的阶段。
本文试从系统架构的角度,就大数据架构热点,每条技术线的发展脉络,以及技术趋势和未解问题等方面做一概述。
值得一提的是,大数据领域仍然处于发展期,部分技术收敛,但新方向和新领域层出不穷。本文内容和个人经历相关,是个人的视角,难免有缺失或者偏颇,同时限于篇幅,也很难全面。仅作抛砖引玉,希望和同业共同探讨。
当下的大数据体系热点
BigData概念在上世纪90年代被提出,随Google的3篇经典论文(GFS,BigTable,MapReduce)奠基,已经发展了将近20年。这20年中,诞生了包括Google大数据体系,微软Cosmos体系,阿里云的飞天系统,开源Hadoop体系等优秀的系统。这些系统一步步推动业界进入“数字化“和之后的“AI化”的时代。
海量的数据以及其蕴含的价值,吸引了大量投入,极大的推动大数据领域技术。云(Cloud)的兴起又使得大数据技术对于中小企业唾手可得。可以说,大数据技术发展正当时。
从体系架构的角度看,“Shared-Everything”架构演进、湖仓技术的一体化融合、云原生带来的基础设计升级、以及更好的AI支持,是当下平台技术的四个热点。
1.1 系统架构角度,平台整体向Shared-Everything架构演进
泛数据领域的系统架构,从传统数据库的Scale-up向大数据的Scale-out发展。从分布式系统的角度,整体架构可以按照Shared-Nothing(也称MPP), Shared-Data, Shared-Everything 三种架构。
大数据平台的数仓体系最初由数据库发展而来,Shared-Nothing(也称MPP)架构在很长一段时间成为主流。随云原生能力增强,Snowflake为代表的Shared-Data逐渐发展起来。而基于DFS和MapReduce原理的大数据体系,设计之初就是Shared-Everything架构。
Shared-Everything架构代表是GoogleBigQuery和阿里云MaxCompute。从架构角度,Shared-Everything架构具备更好的灵活性和潜力,会是未来发展的方向。
1.2 数据管理角度,数据湖与数据仓库融合,形成湖仓一体
数据仓库的高性能与管理能力,与数据湖的灵活性,仓和湖的两套体系在相互借鉴与融合。在2020年各个厂商分别提出湖仓一体架构,成为当下架构演进最热的趋势。但湖仓一体架构有多种形态,不同形态尚在演进和争论中。
1.3 云架构角度,云原生与托管化成为主流
随着大数据平台技术进入深水区,用户也开始分流,越来越多的中小用户不再自研或自建数据平台,开始拥抱全托管型(通常也是云原生)的数据产品。Snowflake作为这一领域的典型产品,得到普遍认可。面向未来,后续仅会有少量超大规模头部公司采用自建(开源+改进)的模式。
https://ucc.alicdn.com/images/lark/0/2021/png/52724/1627357145009-4c910d78-60e2-43af-95a4-75d671c5f54f.png?x-oss-process=image%2Fresize%2Cw_416%2Climit_0
(图:snowflake的云原生架构)
1.4 计算模式角度,AI逐渐成为主流,形成BI+AI双模式
BI作为统计分析类计算,主要是面向过去的总结;AI类计算则具备越来越好的预测未来的能力。在过去五年中,算法类的负载从不到数据中心总容量的5%,提升到30%。AI已经成为大数据领域的一等公民。