湖仓一体架构解析,湖仓一体有哪些优点?

实时数据仓库分享
2024/7/12
SelectDB

湖仓一体(Data Lakehouse)是当前大数据领域热度较高的词汇,这一概念于2020年首次提出,是数据湖和数据仓库合二为一的新词汇。

大数据的处理过程是一个提升数据结构化程度和信息密度的过程,不同的数据适合的存储方式也有所不同。诞生于1990年的「数据仓库」适合存储结构化、信息密度高、经过处理后的数据,它的优势是存储规范,易于快速读取,弊端是灵活性不足;诞生于2011年的「数据湖」可以低成本存储任何形式及格式的原始数据,但它的弊端是缺乏结构性,一旦没有被治理好,就会变成数据沼泽。

而「湖仓一体」是一种将数据湖的灵活性和数仓的易用性、规范性、高性能结合起来的新型融合架构,类似于在湖边搭建了很多小仓库,有的负责数据分析,有的运转机器学习,有的来检索音视频等,数据源流都可以从数据湖里轻松获取。

数据仓库解决了数据快速分析的需求,数据湖解决了数据的存储和管理的需求,而湖仓一体要解决的就是如何让数据能够在数据湖和数据仓库之间进行无缝的集成和自由的流转,从而帮助用户直接利用数据仓库的能力来解决数据湖中的数据分析问题,同时又能充分利用数据湖的数据管理能力来提升数据的价值。

基于 Doris 的湖仓一体架构解析

Doris 通过多源数据目录(Multi-Catalog)功能,支持了包括 Apache Hive、Apache Iceberg、Apache Hudi、Apache Paimon(Incubating)、Elasticsearch、MySQL、Oracle、SQLSserver 等主流数据湖、数据库的连接访问。以及可以通过 Apache Ranger 等进行统一的权限管理,具体架构如下:

712.PNG

其数据湖的主要对接流程为:

  1. 创建元数据映射:Doris 通过 Catalog 获取数据湖元数据并缓存在 Doris 中,用于数据湖元数据的管理。在元数据映射过程中 Doris 除了支持传统 JDBC 的用户名密码认证外,还支持基于 Kerberos 和 Ranger 的权限认证,基于 KMS 的数据加密。

  2. 发起查询操作:当用户从 FE 发起数据湖查询时,Doris 使用自身存储的数据湖元数生成造查询计划,利用 Native 的 Reader 组件从外部存储(HDFS、S3)上获取数据进行数据计算和分析。在数据查询过程中 Doris 会将数据湖热点数据缓存在本地,当下次相同查询到来时数据缓存能很好起到查询加速的效果。

  3. 结果返回:当查询完成后将查询结果通过 FE 返回给用户。

  4. 计算结果入湖:当用户并不想将计算结果返回,而是需要将计算结果进一步写入数据湖时可以通过 export 的方式以标准数据格式(CSV、Parquet、ORC)将数据写回数据湖。

湖仓一体架构的优点

  1. 存储与计算分离,成本降低

存算分离:湖仓一体架构采取存储计算分离的设计,这种设计使得存储和计算可以分别根据业务的需求进行独立扩展,无需两者同步增加或减少。这种设计有助于节省资源,并降低了系统的总成本。

资源利用率提升:存算分离的设计允许系统根据业务需求动态调整计算和存储资源,从而提高了资源的利用率。此外,由于支持直接读取离线数仓数据,系统负载均衡调度更加灵活,进一步降低了成本。

成本效益:湖仓一体架构利用低成本的对象存储实现高效益的数据存储,降低了存储成本,并避免了维护多个数据存储系统的成本。

  1. 数据一致性

ACID保证:湖仓一体架构提供ACID(原子性、一致性、隔离性、持久性)保证,确保数据写入的一致性。这种一致性保证了多方同时读取或写入数据时的数据准确性。

事务支持:湖仓一体支持ACID事务,确保了多方同时读取或写入数据的一致性,这对于金融、电商等需要高并发、高一致性的场景尤为重要。

  1. 多种数据源支持

数据编织:湖仓一体架构支持多种数据源,包括多个数据湖和多级数据湖的联邦查询能力。这种能力能够打破数据孤岛,减少数据搬迁和数据一致性问题,使用户能够基于多种数据源进行快速数据分析和数据探查。

支持多种工作负载:湖仓一体支持数据科学、机器学习、SQL和数据分析等各种工作负载,减少了需要维护多个工具的成本。

  1. 统一元数据管理

统一元数据管理:湖仓一体架构支持异构数据的统一元数据管理,实现端到端的数据链路的自动化元数据采集。这种管理方式支持全链路血缘,一键式分析技术、业务、操作元数据详情,为数据治理提供了强有力的支持。

租户隔离和数据权限管控:基于湖仓底座,湖仓一体支持多租户和库表列级数据权限,能够很好地进行租户隔离和数据权限管控,确保了数据的安全性和隐私性。

知识点补充:

Doris(前身为Palo)是一种开源的、基于分布式的列式存储的OLAP(联机分析处理)数据库。旨在为实时分析提供高性能和可伸缩性,处理大规模的数据集,并提供低延迟的查询和高吞吐量。Apache Doris 目前被4000+中大型企业生产系统使用,其商业化产品最具代表性的是 SelectDB ,SelectDB 飞轮科技是由 Doris 团队创建。

Doris 技术特点:

写入方面

实时写入:Doris支持高效、低延迟的实时写入。用户可以通过流式或批量方式将数据快速写入到Doris集群中,无论是事务性数据还是日志数据,都能得到实时处理。这种实时写入的能力使得Doris能够满足实时分析、监控和告警等场景的需求;

实时更新:除了实时写入外,Doris还支持数据的实时更新。用户可以通过UPDATE语句或DELETE语句对已经写入的数据进行实时修改或删除。这种实时更新的能力使得Doris在处理需要频繁变更数据的场景时具有更高的灵活性;

存储方面

分布式架构:Doris采用分布式架构,将数据存储在多个物理节点上。通过将数据水平拆分到多个节点上,Doris能够实现数据的并行处理和查询,提高系统的吞吐量和性能。同时,分布式架构也使得Doris能够轻松扩展集群规模,满足不断增长的数据存储和查询需求。

列式存储:Doris采用列式存储引擎,与传统的行式存储相比,列式存储更适合于分析型查询场景。通过将数据按列存储,Doris能够减少I/O操作次数,提高数据读取效率。同时,列式存储还支持对单列数据进行压缩和编码优化,进一步减少存储空间占用和提高查询性能。

查询方面

高并发点查:Doris支持高并发的点查操作。通过优化存储结构和查询引擎,Doris能够在短时间内快速定位到目标数据并返回结果,满足对单条数据或少量数据的快速查询需求。这种高并发的点查能力使得Doris在处理在线查询、实时分析等场景时具有更高的响应速度和性能;

丰富索引:为了加速查询过程,Doris提供了丰富的索引类型。包括但不限于主键索引、二级索引、前缀索引等。这些索引类型可以根据不同的查询需求进行选择和配置,以提高查询的效率和准确性。同时,Doris还支持动态创建和删除索引,方便用户根据业务变化进行调整;

PipelineX 执行引擎:PipelineX 是Doris中的核心查询执行引擎之一。它采用基于管道的执行模型,将查询任务拆分成多个子任务并并行执行。通过减少数据拷贝和共享、优化数据排序和聚合等操作,PipelineX 能够显著提高查询的执行效率和吞吐量。同时,PipelineX 还支持动态调度和负载均衡,确保系统资源得到充分利用;

查询优化器:Doris的查询优化器负责将用户提交的SQL查询语句转换成高效的执行计划。它采用基于成本的优化策略,通过评估不同执行计划的成本并选择最优的执行计划来提高查询性能。同时,查询优化器还支持多种优化技术,如谓词下推、列裁剪、连接顺序优化等,以进一步减少数据扫描量和提高查询效率。

Doris 应用场景:

日志存储与分析:可以高效地存储和分析大量的日志数据。

实时数据分析:适用于实时数据分析场景,如电信行业的用户流量、网络质量监控。

OLAP分析:支持SQL查询和OLAP分析,方便进行复杂的数据分析。

湖仓一体架构湖仓一体数据仓库数据分析