摘要:随着云计算的兴起和渗透,云数仓成为了数仓技术演进的新阶段,并且逐渐成为了众多企业的共同选择。
本文分享自华为云社区《从GaussDB(DWS)的技术演进,看数据仓库的积淀与新生》,作者: 华为云头条。
数据驱动着现代商业的发展
今天,无论在制造、零售、物流
还是在互联网、金融等行业
数据都变得比以往任何时候更为重要
海量且多样的数据浪潮对数据处理和分析提出了更高的要求,也使得数据仓库走向了多元化的发展之路,传统数仓、数据集市、实时数仓等相继诞生。此外,随着云计算的兴起和渗透,云数仓成为了数仓技术演进的新阶段,并且逐渐成为了众多企业的共同选择。
“数据仓库”的概念并非近些年才出现,关于它的起源,众说纷纭:
随着技术的不断发展和产业实践的深入,数据仓库逐渐成为了企业信息管理中不可或缺的部分。在实际应用中,数据仓库已经被广泛应用于各个领域,如客户关系管理、商业智能、金融风险评估等。例如:
一些大型科技公司,基于自身业务诉求,也走上了数据仓库的研发之路。
比如华为云早在 2011 年就开始做数据仓库——GaussDB(DWS)的预研,在经受了海量自有业务数据的考验后,于2015年推向市场,面向金融、政府传统一体机等企业级核心数仓场景提供服务,2017年 GaussDB(DWS)上云,进一步提升了服务能力与服务范畴。
据华为云数仓GaussDB(DWS)资深产品专家黄海燕介绍,GaussDB(DWS)是华为云数据生产线上的一个明星产品,是支持实时入库、实时分析、批量运算、交互式查询的一站式分析平台,具备传统数仓的超大规模、高性能、高并发等优势,同时也具备云原生数仓的存算分离、弹性伸缩、Serverless、湖仓一体和数智融合等能力。
历时12年,从内到外、从本地部署到云端服务,GaussDB(DWS)逐渐探索出了适应云时代多场景需求的云数仓之路。
2017 年,华为云开始加速拓展业务,推出了更多云计算服务,GaussDB(DWS)也全面上云。上云之后带来的最直接的价值在于可以减少客户企业的硬件投资和运维成本,提高整体的运营效益。但是由于企业的业务规模不同,负载差异非常大,黄海燕表示,小一点的可能只有几十GB的数据集,大的则有数百TB甚至更多的数据集。业务规模的差异对数仓服务的弹性也提出了更高的要求。
针对这个问题,华为云GaussDB(DWS)在一开始就将数仓服务传统的一体机模式转换成了弹性计算服务ECS+弹性存储服务EVS上的存算分离模式,实现了计算存储独立的扩容和扩展,能够实现计算升降配、存储弹性扩容,同时也支持在数据扩容之间的数据重分布,且不影响业务的中断。
随着业务场景的不断深入, ECS+EVS弹性扩展的方式在面对一些数据量大但计算要求不高的场景,比如车联网、互联网日志、企业核心数仓的长周期历史数据时,依然存在掣肘。
对此,GaussDB(DWS)团队在ECS+EVS的基础上又做了一层对象存储OBS的冷数据管理,将车联网、长周期历史数据等放到OBS上,在不扩展计算的情况下,通过这种方式实现冷热数据的管理,进而达到计算和存储的平衡。最终集成为ECS+EVS+OBS冷热数据管理的方式,GaussDB(DWS)基于本地盘进行性能加速,将 OBS 作为冷数据区,数据存储异构扩展至OBS,利用分层存储的方式,实现数据按需选择存储和计算引擎、冷热数据迁移动态切换等,进而在不影响数仓体验的前提下,达到成本最优。
“后来我们发现ECS+EVS+OBS冷热数据管理的方式依然有覆盖不到的场景,比如说有一些场景它需要在跑批量的时候同时能够跑并发的查询,还希望一份数据实现多样化的分析和存储。因为有一部分热数据在EVS上,很多时候没有办法高效地扩展分析,所以后面我们把所有的数据都放在OBS上,原来的 EVS作为数据的缓存,OBS数据可以供多个集群、数据湖或者是AI去分析,再通过原先的EVS转换成一个角色,做数据分析加速。可以理解成我们同时支持了三种模式,这三种模式不是相互替代的关系,而是各有其应用的场景和特点。”黄海燕提到。
基于上述三种Serverless模式, GaussDB(DWS)成功为1700+客户提供了不同业务场景下的数据仓库服务。黄海燕表示:“现在云上有很多弹性的场景,比如说互联网,在我们归纳来说我们认为有两大类的弹性场景”。
主要有几种类型:第一种是在固定的时间点上有一个潮汐波动,比如“双十一”、“618”这类促销节点;第二种是随着企业规模的扩大,用户量、数据量、计算量也会递增;第三种是业务具备明显的长周期时间特征,比如银行在月末、季末、年末有结算的需求,计算量会比平时要大,游戏行业在周末时业务量会比平时更大。
即短期内有多样化的诉求。比如银行00:00-8:00是批量的运行高峰,8:00-18:00在批量运行的同时会有一些对报表、经营数据的交互式查询,18:00后是业务的低峰期,整体呈现一个潮汐波动。
Serverless的极致弹性扩缩容,很好地满足了长、短周期弹性场景下的业务需求,但是存算分离的架构也可能会带来网络开销变大、数据处理效率变低、性能下降等问题,对此GaussDB(DWS)团队也做出了较多的探索。
除了在Serverless方向的探索外,GaussDB(DWS)在湖仓一体与数智融合上同样取得了一些突破。
对于“湖仓一体”的探索,华为云做的比较早,只不过当时主要是通过外表技术实现数据共享,比如对于Spark或Hive的表,在数仓里建一张外表和它对应,从而查询Spark和Hive里的数据。但是这种方式随着数据规模的增加,维护成本也会倍增。
外表技术本质上只能访问数据,并不知道元数据长什么样,如果元数据内容统一的话,对用户来讲就不需要建这个外表。
基于这个思路,GaussDB(DWS)引入了External schema的概念,通过创建一个External schema,然后以schema.table的方式去访问Hive和Spark的元数据,和正常SQL一致,还可以和GaussDB(DWS)的内表做关联分析,从而使得GaussDB(DWS)的优化器能力和执行引擎能力更强。
“未来华为云这边,整个 EI 平台会建立一个Lake Formation的统一存储管理的组件服务,它会统一管起来所有的数仓和数据湖里面的各种组件的元数据,真正实现元数据意义上的共享,元数据的共享是比数据共享难度更高,或者说是真正有更大价值的东西。”华为云数仓GaussDB(DWS)技术专家齐天表示。
此外,为了解决多种数据库插件或引擎的调度问题,GaussDB(DWS)还提供了一个叫做External Connection的能力,可以直接调用外部的计算引擎,用于计算共享数据或者是它们的自有数据,从而用一个或者一套引擎实现计算的统一。数据共享、元数据共享以及计算统一,是GaussDB(DWS)数仓一体的三大技术特征,并由此打破数据孤岛效应,解决企业的IT资源分散、数据不通、应用孤立等问题。
在实现多平台的数据拉通之后,面向未来,华为云数仓又提出了“数智融合”的概念。据了解,数智融合本质上是把数据和AI这两条原本完全割裂的生产线融合到一起,从而实现1+1>2的效能。
当前GaussDB(DWS)对数智融合的探索主要在两大场景:
纵观数据仓库的演进之路,不难看出,从诞生的那一刻起,它就不断在与新技术、新场景相融合,并获得生机,从而持续释放数据的价值,推动产业发展。
GaussDB(DWS)的全面Serverless化、湖仓一体和数智融合等特征,是华为云对于新时代数据仓库技术演进方向的重要判断,同样也是数据仓库技术顺应时代、发展迭代的结果。随着AI新时代的到来,数智融合之后的数据仓库技术又将会迸发出怎样的力量,值得期待。