目录
近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”,乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。本文就专门来解释一下到底什么是湖仓一体?湖仓一体有什么优点以及到底怎么用?
湖仓一体,简单理解就是把面向企业的数据仓库技术与数据湖存储技术相结合,为企业提供一个统一的、可共享的数据底座。
避免传统的数据湖、数据仓库之间的数据移动,将原始数据、加工清洗数据、模型化数据,共同存储于一体化的“湖仓”中,既能面向业务实现高并发、精准化、高性能的历史数据、实时数据的查询服务,又能承载分析报表、批处理、数据挖掘等分析型业务。
湖仓一体方案的出现,帮助企业构建起全新的、融合的数据平台。通过对机器学习和AI算法的支持,实现数据湖+数据仓库的闭环,提升业务的效率。数据湖和数据仓库的能力充分结合,形成互补,同时对接上层多样化的计算生态。
一、什么是湖仓一体
湖仓一体(Data Lakehouse)是一种新兴的数据管理和分析架构,它结合了数据仓库和数据湖的优点,旨在提供一个统一、灵活且高性能的数据存储和处理平台。在传统的数据处理架构中,数据仓库通常用于存储结构化数据,以便进行快速查询和分析,而数据湖则用于存储大量原始的、非结构化的或半结构化的数据。在湖仓一体模式中,数据被原样加载到数据湖中,同时进行一定程度的模式定义和质量控制,以便更好地支持企业的数据分析和决策。湖仓一体的模式适用于数据量较大、多种数据类型混合存储的场景,提供了更好的查询性能和数据探索能力。
二、湖仓一体有什么优点
1.存储与计算分离:湖仓一体架构采取存储计算分离的设计,这种设计使得存储和计算可以分别根据业务的需求进行独立扩展,无需两者同步增加或减少。这种设计有助于节省资源,并降低了系统的总成本。
2.成本效益:利用低成本的对象存储实现高效益的数据存储,降低了存储成本,并避免了维护多个数据存储系统的成本。
3.数据一致性:提供ACID(原子性、一致性、隔离性、持久性)保证,确保数据写入的一致性,这对于金融、电商等需要高并发、高一致性的场景尤为重要。
4.多种数据源支持:支持多种数据源,包括多个数据湖和多级数据湖的联邦查询能力,能够打破数据孤岛,减少数据搬迁和数据一致性问题。
5.统一元数据管理:支持异构数据的统一元数据管理,实现端到端的数据链路的自动化元数据采集,支持全链路血缘,一键式分析技术、业务、操作元数据详情。
6.高可用性:湖仓一体架构使用云对象存储,具有高可用性和高耐用性。
三、湖仓一体的技术架构
湖仓一体的架构,最终想要实现的,就是通过把数据湖作为中央存储库,围绕数据湖建立各种提供服务的站点,比如数据仓库,供业务分析和接入B使用;再比如供机器学习用的站点;供大数据处理的站点等等,最终实现随心所欲地使用数据湖中的数据。
湖仓一体的架构由存储层和计算层组成,计算层的数据来源于存储层。
1.存储层
存储层主要由三个组件组成——云存储、开放的文件格式(open file format)和开放的表格式(open table format)。
- 云存储
云存储是一种提供实施数据湖和 Lakehouse 平台所需的高可用性、持久性和可扩展性的服务,可以使用亚马逊的 S3 存储或者阿里云的 OSS 对象存储等云服务商提供的对象存储。
公司也可以使用本地 HDFS 存储来实施 Lakehouse,仅使用云对象存储来实现 Lakehouse 是没有必要的。但考虑到成本低、计算与存储分离、易于扩展等特点,建议使用云对象存储作为实现 Lakehouse 的底层基础设施。
- 元数据层
基于数据湖构建统一的数据平台,提供了统一的元数据管理和数据权限管理。
原来分集群建设,导致元数据和用户账号不统一,在数据和权限管理上也带来很大麻烦。如果统一元数据和账号体系的管理,就能更方便的做统一的数据管理和权限管理。
用于管理数据湖中的表格信息和元数据,它跟踪每个表格的名称、模式和其他相关信息,提供了数据发现和搜索的功能。
- 开放的文件格式
数据平台可以将不同文件格式的数据存储在云存储中,CSV、JSON 和 XML 等文件格式是最流行的。对于分析平台,最广泛采用的三种文件格式是:Apache Parquet、Apache ORC、Apache AVRO。这几种都是开源的列式存储格式,很多存储和处理应引擎都会兼容这几种存储格式。
- 开放的表格式
湖仓 Lakehouse 支持多种表存储格式,目前开源社区比较流行的是下边三种:
(1)Apache Iceberg: 是一种开放表格式,可与基于云的数据湖和 Apache Parquet、Apache AVRO 和 Apache Optimized Row Columnar (ORC) 等开放文件格式一起使用,以实现 Lakehouse 架构。它支持时间回溯、schema 推演和 SQL 查询等功能,使 Lakehouse 的构建更快、更容易。
(2)Apache Hudi:有助于实现事务数据湖,并可用于为数据湖带来类似数据仓库的功能。它提供 ACID 事务保证、时间回溯和回滚能力以及schema 推演功能。
(3) Linux 基金会的 Delta Lake:Databricks 将 Delta Lake 作为一个内部项目启动,后来在 Linux 基金会下将其开源。它通常被称为用于构建 Lakehouse 架构的开源存储框架。Delta Lake 为数据湖提供元数据层和 ACID 功能。它还提供时间回溯、schema 推演以及审计跟踪记录等功能。
2.计算层
Lakehouse 架构的主要优点之一是其开放性以及可由任何兼容处理引擎直接访问或查询的能力。它不需要任何特定的专有引擎来运行 BI 工作负载或交互式分析。这些计算引擎可以是开源的,也可以是专为 Lakehouse 架构设计的专用商业查询引擎。
- 计算引擎
可以通过Apache Spark、Presto、Trino 和 Hive 等开源计算引擎,进行数据湖数据查询分析。
四、湖仓一体的实践路径
1. 湖上建仓
定义:基于云存储或第三方对象存储的云数据湖架构,或以开源Hadoop生态体系为基础,引入数据仓库的数据治理能力,实现数据湖到湖仓一体的进化。
实现方案:通过统一调用接口方式调用计算引擎,实现数据的统一存储和管理。
2. 仓外挂湖
定义:以MPP数据库为基础,使用可插拔架构,通过开放接口对接外部存储实现统一存储。
实现方案:在存储底层共享一份数据,计算、存储完全分离,实现从强管理到兼容开放存储和多引擎的过渡。
在探索湖仓一体架构所带来的数据管理新纪元时,FineDataLink作为一款低代码/高时效的数据集成平台,无疑成为了推动企业数字化转型的理想工具。它不仅具备出色的数据清理与分析能力,更能在湖仓一体的框架下,实现数据的无缝流转与高效利用,将处理后的高质量数据迅速融入企业的业务流程与决策制定之中。
FineDataLink的功能非常强大,可以轻松地连接多种数据源,包括数据库、文件、云存储等,而且支持大数据量。此外,FineDataLink还支持高级数据处理功能,例如数据转换、数据过滤、数据重构、数据集合等。使用FineDataLink可以显著提高团队协作效率,减少数据连接和输出的繁琐步骤,使整个数据处理流程更加高效和便捷。
了解更多数据仓库与数据集成关干货内容请关注>>>FineDataLink官网