伴随5G、大数据、AI、IoT的飞速发展,数据呈现大规模、多样性的极速增长,为了应对多变的业务诉求,政企客户对数据处理分析的实时性和融合性提出了更高的要求,“湖仓一体”的概念应运而生,它打破数据湖与数仓间的壁垒,使得割裂数据融合统一,减少数据分析中的搬迁,实现统一的数据管理。
早在2020年5月份的华为全球分析师大会上,华为云CTO张宇昕提出了“湖仓一体”概念,在随后的华为云与计算城市峰会上,“湖仓一体”理念跟随华为云FusionInsight智能数据湖在南京、深圳、西安、重庆等地均有呈现,在刚结束的HC2020上,张宇昕在发布新一代智能数据湖华为云FusionInsight时再次提到了湖仓一体理念。那我们就来看看湖仓一体的来世今生。
数据湖和数据仓库的发展历程和挑战
早在1990年,比尔·恩门(Bill Inmon)提出了数据仓库,主要是将组织内信息系统联机事务处理(OLTP)常年累积的大量资料,按数据仓库特有的资料储存架构进行联机分析处理(OLAP)、数据挖掘(Data Mining)等分析,帮助决策者快速有效地从大量资料中分析出有价值的资讯,以利决策制定及快速响应外在环境变化,帮助构建商业智能(BI)。
大约十年前,企业开始构建数据湖来应对大数据时代,它通常把所有的企业数据统一存储,既包括源系统中的原始副本,也包括转换后的数据,比如那些用于报表, 可视化, 数据分析和机器学习的数据。
纵观数据湖与数据仓库的技术发展,不难发现两者有着各自的优劣,具体表现如下:
企业在进行系统架构设计选型时,需要从具体的分析场景出发,单一的模式已经无法满足企业发展的业务诉求,集中表现在以下两个痛点:
•数据湖主要以离线批量计算为主,因为不支持数据仓库的数据管理能力,难以提高数据质量;数据入湖时效差不支持实时更新,数据无法强一致性;主题建模不友好,无法直接历史拉链建模;同时交互分析通常将数据搬迁到数据仓库平台,造成分析链路长,数据冗余存储;批&流等场景融合不够,无法满足企业的海量数据处理诉求。
•数据仓库满足不了非结构化数据的分析需求,性价比不高;同时仓&湖间难以互联互通,数据协同效率较低,无法支持跨平台透明访问,形成了事实上的数据孤岛,找数困难;缺乏全局数据视图,不同平台接口差异和不同开发管理工具,造成用户开发使用复杂,数据分别管理维护代价高体验差。
数据湖和数据仓库正在从两条技术演进路线走向融合
综上,数据湖和数据仓库在企业数据分析场景分别承担一湖一仓的重要角色,形成了完整的数据分析生态系统,上述企业场景面临的2个关键痛点也在驱动数据湖和数据仓库在技术演进上走向融合:
第一个融合方向是基于Hadoop体系的数据湖向数据仓库能力扩展,湖中建仓,从DataLake进化到LakeHouse。LakeHouse结合了数据湖和数据仓库特点,直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。目前业界已经涌现了一些LakeHouse产品,如NexFlix开源Iceberg、Uber开源Hudi、Databricks的 DeltaLake。
图2从DataLake进化到LakeHouse,数据湖扩展数仓能力
以目前生态发展迅速的Apache Hudi为例:统一数据存储,分布式存储不同应用所需的各种类型数据;数仓模式执行和治理,实现事务&更新机制,保证数据完整性和一致性,具有健壮的治理&审计机制;支持各种分析引擎,统一数据存储通过开放和标准化的存储格式(如Parquet),提供API以便各类工具和引擎(包括机器学习和Python / R库)直接有效地访问数据。
虽然LakeHouse并不能完全替代数据仓库,但通过增强性能,支持实时入湖、建模、交互分析等场景,将在企业分析环境中发挥更大作用。
第二个融合方向是数据湖和数据仓库协同起来向湖仓一体的融合分析架构发展,随着企业数据量快速增长,不仅是结构化数据,也有非结构化数据,同时提出了对搜索/机器学习更多的能力要求,使得原来数仓技术不能够有效的处理复杂场景,为此需扩展原有系统,引入Hadoop大数据平台实现新类型数据、新业务场景的支持。在这个背景下由Gartner在2011年提出逻辑数据仓库的概念,预测企业数据分析倾向于转向一种更加逻辑化的架构,利用分布式处理、数据虚拟化以及元数据管理等技术,实现逻辑统一物理分开的协同体系。
图3 逻辑数仓的高阶架构
湖仓一体可以认为是逻辑数据仓库架构理念下针对Hadoop数据湖和MPPDB数据仓库的融合架构的最好诠释,数据对用户将完全实现虚拟化,以逻辑统一的数据分析系统为企业提供数据分析服务:
用户使用层面提供统一元数据管理和数据视图,实现全局数据可见可查,支持标准统一访问接口简化用户开发,提供统一开发和治理的工具体系。
平台层面Hadoop与MPPDB具备数据共享和跨库分析能力,支持互联互通、计算下推、协同计算,实现数据多平台之间透明流动。
华为云FusionInsight湖仓一体解决方案参考架构
华为云FusionInsight智能数据湖涵盖了分布式存储、大数据、数据仓库、数据治理等,融合了上述两个技术演进方向,为企业用户提供云原生湖仓一体解决方案,整体的参考架构如下:
图4 华为云FusionInsight湖仓一体解决方案参考架构
下面一起来看看:
数据存储层:通过OBS统一管理湖&仓的存储底座,将存储在EC(Erasure Code纠错码)、可靠性方面的优势融入进了大数据生态:
•云原生架构领先:基于云原生架构的OBS存储,具有高带宽,大并发,分布式元数据等特征,因此相同成本的华为存算分离的湖仓一体化集群,数据读写性能领先业界30%。
•存储计算分离有效降低TCO:支持大比例EC, 副本数从3最低可降低至1.09,TCO下降20%+。