一文读懂什么是湖仓一体
近年,大数据技术迎来蓬勃发展。从市场需求的角度来看,数据的规模及复杂度呈指数级攀升,实时计算存储分析需求异常旺盛,传统数据库难以为继。从技术演进的角度来讲,经过几轮发展,湖仓一体的出现成为新的良方,为满足用户个性化需求提供了新的解决思路及实现路径。
那么,湖仓一体到底是什么?它在大数据发展史上是如何演进的?为什么选择湖仓一体?本文将从多个视角分析湖仓一体技术架构,希望能给各位带来参考与启发,欢迎大家共同探讨。
一、大数据发展历史及演进趋势
1、数据库时代
数据库的标准定义是按照数据结构来组织、存储和管理数据的仓库。在数据量不大、数据类型以及数据的处理方式还相对简单的时代,在数据分析的场景下,传统业务系统使用的数据库基本上也可以满足分析的要求。数据库具有如下的特性:
- 完整性,一致性,交互稳定性,并发性,异常可恢复性
- 面向事务管理,具有ACID特性
- 数据模型来表示数据结构,冗余小
- 数据的统一管理和控制,易于维护和扩展
- 具有良好的用户接口,数据和应用程序相对独立
2、数据仓库时代
数据仓库的标准定义是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。数据仓库已经和业务有密切的关联,其最终的目的是服务商业智能化分析和决策的,对单个业务或者综合性的业务环节进行描述性分析、诊断性分析,通过可视化的工具实现简单的报表或者BI的分析及呈现。
- 随着数据的沉淀,数仓能够反映业务的历史变化
- 面向主题的,关注用户重点业务
- 集成的,跨越历史、区域、系统……
- 稳定的,具有只读属性,以查询为主
- 以时间序列存储,非规范化管理
3、Hadoop 时代
大数据平台是基于Google的理论构建起来的,是一类存储数据原始格式的系统。它通常是企业中全量数据的统一存储。全量数据包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据,各类任务包括报表、可视化、高级分析和机器学习。
数据仓库的成长性很好,而数据湖更灵活。数据仓库支持的数据结构种类比较单一,数据湖的种类比较丰富,可以包罗万象。数据仓库更加适合成熟的数据当中的分析和处理,数据湖更加适合在异构数据上的价值的挖掘。数据湖中包括来自于关系型数据库中的结构化数据、半结构化数据、非结构化数据和二进制数据等。
相比数据仓库,大数据平台或者数据湖具有以下特征:
- 保真性,一份原始数据,数据格式、数据模式、数据内容都不可修改;
- 灵活性,可以根据业务的变化需求对数据进行加工处理;
- 可管理,随着数据的不断积累和演化,平台需要能够管理包括:数据源、数据连接、数据格式、数据模式,数据权限等;
- 可追溯,对数据的全生命周期进行管理,包括数据的定义、接入、存储、处理、分析、应用的全过程。能做到对其间的任意一条数据的接入、存储、处理、消费过程是可追溯的,能够清楚的重现数据完整的产生过程和流动过程。
数据湖虽然适合存储数据,但仍然缺少一些关键功能:它们不支持事务处理,不保证数据质量,并且缺乏一致性/隔离性,从而几乎无法实现混合追加和读取数据,以及完成批处理和流式作业。由于这些原因,数据湖的许多功能尚未实现,并且在很多时候丧失了数据湖的优势。
4、 湖仓一体
随着当前大数据技术应用趋势,企业对单一的数据湖和数仓架构并不满意。越来越多的企业开始融合数据湖和数据仓库的平台,不仅可以实现数据仓库的功能,同时还实现了不同类型数据的处理功能、数据科学、用于发现新模型的高级功能。
湖仓一体(Lakehouse)是一种新型开放式架构,将数据湖和数据仓库的优势充分结合,它构建在数据湖低成本的数据存储架构之上,又继承了数据仓库的数据处理和管理功能,打通数据湖和数据仓库两套体系,让数据和计算在湖和仓之间自由流动。作为新一代大数据技术架构,将逐渐取代单一数据湖和数据仓库架构,并具有如下特征:
- 事物支持:Lakehouse 在企业级应用中,许多数据管道通常会同时读取和写入数据。通常多方同时使用 SQL 读取或写入数据,Lakehouse 保证支持ACID事务的一致性。
- 模式实施和治理:Lakehouse 应该有一种支持模式实施和演变的方法,支持 DW 模式规范,例如 star /snowflake-schemas。该系统应该能够推理数据完整性,并且应该具有健壮的治理和审核机制。
- BI支持:Lakehouse 可以直接在源数据上使用BI工具。这样可以减少陈旧度和等待时间,提高新近度,并且降低必须在数据湖和仓库中操作两个数据副本的成本。
- 存储与计算分离:事实上,这意味着存储和计算使用单独的群集,因此这些系统能够扩展到更多并发用户和更大数据量。
- 兼容性:Lakehouse 使用的存储格式是开放式和标准化的,例如 Parquet,并且它提供了多种 API,包括机器学习和 Python/R 库,因此各种工具和引擎都可以直接有效地访问数据。
- 支持从非结构化数据到结构化数据的多种数据类型:Lakehouse 可用于存储,优化,分析和访问许多新数据应用程序所需的数据类型,包括图像,视频,音频,半结构化数据和文本。
- 支持各种工作场景:包括数据科学,机器学习和 SQL 分析。这些可能依赖于多种工具来支持的工作场景,它们都依赖于相同的数据存储库。
- 端到端流式任务:实时报告是许多企业的日常需要。对流处理的支持消除了对专门服务于实时数据应用程序的单独系统的需求。
二、为什么选择湖仓一体
湖仓一体本质上是结合了数据仓库和数据湖的元素而形成的数据解决方案,它实现了数据仓库的数据结构和数据湖的可管理特性。但“湖仓一体”并不等同于“数据湖”+“数据仓”,这是一个极大的误区。现在很多公司经常会同时搭建数仓、数据湖两种存储架构,一个大的数仓拖着多个小的数据湖,这并不意味着这家公司拥有了湖仓一体的能力,湖仓一体绝不等同于数据湖和数据仓简单打通,反而数据在这两种存储中会有极大冗余度。在架构上,湖仓一体需要具备:
(1)统一的数据管理:
湖仓一体提供完善的数据管理能力。数据湖中会存在两类数据:原始数据和处理后的数据。数据湖中的数据会不断的积累、演化,因此包含以下数据管理能力:数据源、数据连接、数据格式、数据schema(库/表/列)。同时,数据湖是单个企业中统一的数据存放场所,因此,还具有一定的权限管理能力。
(2)多模态的存储引擎:
湖仓一体本身内置多模态的存储引擎,以满足不同的应用对于数据访问需求(综合考虑响应时间/并发/访问频次/成本等因素)。但是,在实际的使用过程中,为了达到可接受的性价比,湖仓一体解决方案提供可插拔式存储框架,支持的类型有HDFS/S3等, 并且在必要时还可以与外置存储引擎协同工作,满足多样化的应用需求。
(3)丰富的计算引擎:
提供从批处理、流式计算、交互式分析到机器学习等各类计算引擎。一般情况下,数据的加载、转换、处理会使用批处理计算引擎;需要实时计算的部分,会使用流式计算引擎;对于一些探索式的分析场景,可能又需要引入交互式分析引擎。随着大数据技术与人工智能技术的结合越来越紧密,各类机器学习/深度学习算法也被不断引入,可以支持从HDFS/S3上读取样本数据进行训练。因此,湖仓一体解决方案提供计算引擎的可扩展/可插拔。
(4)数据全生命周期管理:
湖仓一体提供一个企业中全量数据的存储场所,需要对数据的全生命周期进行管理,包括数据的定义、接入、存储、处理、分析、应用的全过程。一个强大的湖仓一体实现,需要能做到对其间的任意一条数据的接入、存储、处理、消费过程是可追溯的,能够清楚的重现数据完整的产生过程和流动过程。
在数据智能时代,湖仓一体会不会成为企业构建大数据栈的必选项?
就技术维度和应用趋势来看,这个问题的答案几乎是肯定的,对于高速增长的企业来说,选择湖仓一体架构来替代传统的独立仓和独立湖,已经成为不可逆转的趋势。
一个具有说服力的例证是,现阶段,国内外各大云厂商均陆续推出了自己的“湖仓一体”技术方案,比如亚马逊云科技的 Redshift Spectrum、微软的 Azure Databricks、华为云的 Fusion Insight、滴普科技的 FastData 等,这些玩家有云计算的老牌龙头,也有数据智能领域的新势力。
事实上,架构的演进是由业务直接驱动的,如果业务侧提出了更高的性能要求,那么在大数据架构建设的过程中,就需要数据库架构建设上进行技术升级。
以国内数字化企业服务领域成长最快的独角兽滴普科技为例,依托新一代湖仓一体、流批一体的实时湖仓平台 FastData,基于对先进制造、生物医药、消费流通等行业的深度洞察,滴普科技从实际场景切入,为客户提供了一站式的数字化解决方案。
滴普方面认为,“在数据分析领域,湖仓一体是未来。它可以更好地应对 AI 时代数据分析的需求,在存储形态、计算引擎、数据处理和分析、开放性以及面向 AI 的演进等方面,要领先于过去的分析型数据库。”以 AI 应用层面为例,湖仓一体架构天然适合 AI 类的分析(包括音视频非结构化数据存储,兼容 AI 计算框架,具有模型开发和机器学习全生命周期的平台化能力),也更适合大规模机器学习时代。
这一点,和趋势不谋而合。
就在前不久,Gartner 发布了湖仓一体的未来应用场景预测:湖仓一体架构需要支持三类实时场景,第一类是实时持续智能;第二类是实时按需智能;第三类是离线按需智能,这三类场景将可以通过快照视图、实时视图以及实时批视图提供给数据消费者,这同样是未来湖仓一体架构需要持续演进的方向。
三、 总结
本文向大家介绍了湖仓一体架构的演进历史及主要特点,以及湖仓一体在企业应用领域的趋势分析,为读者了解湖仓一体的基本情况提供了参考依据。
作者:滴普科技DEEPEXI