企业对于数据处理和分析的需求日益复杂多样,传统的数据仓库和数据湖虽然各自具备独特的优势,但也在某些方面存在明显的局限性。在此背景下,Lakehouse 作为一种融合了数据仓库和数据湖最佳功能的新型数据存储架构应运而生,为大数据处理和分析提供了全新的解决方案。
一、Lakehouse 的定义与背景
Lakehouse,顾名思义,是在数据湖(Data Lake)基础上融合了数据仓库(Data Warehouse)特性的一种数据存储架构。数据仓库作为最古老的大数据存储技术,在商业智能、报告和分析应用方面有着悠久的历史。然而,数据仓库高昂的成本以及难以应对流数据、多样化数据等非结构化数据的挑战,限制了其在新时代的应用范围。
数据湖的出现则解决了这一难题。数据湖旨在以廉价存储处理各种格式的原始数据,尤其擅长与非结构化数据配合。然而,数据湖缺乏数据仓库的 ACID 事务功能,难以确保数据的一致性和可靠性。因此,如何在保持数据湖成本效益和灵活性的同时,引入数据仓库的可靠性和一致性,成为大数据领域亟待解决的问题。
Lakehouse 正是这一需求的产物。它结合了数据湖的成本效益和灵活性,以及数据仓库的可靠性和一致性,为企业提供了一种全新的数据存储解决方案。Lakehouse 不仅支持多种场景的数据分析,包括结构化、半结构化和非结构化数据,还引入了 ACID 事务和数据质量的特点,确保了数据的一致性和可靠性。
二、Lakehouse的主要优势
Lakehouse之所以能够在大数据领域迅速崛起,主要得益于其以下几方面的优势:
1、成本效益与灵活性:Lakehouse继承了数据湖的成本效益和灵活性,能够以较低的成本存储和处理各种格式的原始数据。同时,它也支持多种存储底层,包括本地、HDFS到云对象存储等,为企业提供了更多的选择。
2、数据一致性与可靠性:通过引入ACID事务和数据质量的特点,Lakehouse确保了数据的一致性和可靠性。这对于需要高可靠性和一致性保障的商业智能和分析应用来说,无疑是一个巨大的优势。
3、多引擎访问与开放性:Lakehouse支持多种计算引擎和交互方式,包括Spark、Presto、Flink等,能够满足不同场景下的数据处理和分析需求。同时,它也支持开放存储,数据不局限于某种存储底层,使得企业能够更灵活地选择适合自己的存储方案。
4、增量计算与一体化架构:一些Lakehouse产品还采用了增量计算技术和一体化架构设计,进一步简化了数据分析架构,提高了开发效率。通过增量计算,企业可以在不增加额外存储成本的情况下,实现数据的实时更新和分析。而一体化架构则统一了离线和实时链路中的数据存储,保持了数据一致性,降低了数据冗余。
三、Lakehouse 主要产品介绍
SelectDB Cloud 是基于 Apache Doris 打造的新一代多云原生实时数据仓库,聚焦于满足企业级大数据实时分析需求,为客户提供极致性价比、简单易用的数据分析服务,Lakehouse 是 SelectDB Cloud 的其中一个应用场景。
目前 Apache Doris 已经发布了3.0版本,3.0 版本是 Apache Doris 在 Lakehouse 演化路线上的重要里程碑版本。在 3.0 版本中 Apache Doris 增加了数据湖写回功能,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。结合异步物化视图等能力,Apache Doris 可以作为企业统一的湖仓数据处理引擎,帮助用户更好的管理湖、仓、数据库中的数据。与此同时,3.0 版本引入了 Trino Connector 类型,用户可以快速使用 Trino Connector 来连接或适配更多数据源、并可以利用 Apache Doris 的高性能计算引擎提供比 Trino 更快的数据查询能力。
从 3.0 版本开始,Apache Doris 在 Lakehouse 场景的能力臻于完善,其能力的进化主要体现在以下几点:
a、湖仓查询加速:无需将数据迁移至 Apache Doris,用户便可直接利用 Doris 高效的查询引擎,直接查询 Iceberg、Hudi、Paimon 等数据湖和 Hive 等离线数仓中的数据,实现查询分析的加速。
b、联邦分析:Apache Doris 通过扩展 Catalog 和存储插件,丰富其联邦分析能力,使用户无需将数据物理集中至统一的存储空间,在保持各数据源独立性和隐私性的同时,仅借助 Apache Doris 即可实现多个异构数据源的统一分析,既可以直查外部表以及存储文件、也可以执行内表和外表以及外表相互之间的关联分析,打破数据孤岛、提供全局一致性的数据洞察与分析。
c、数据湖构建: Apache Doris 增加了 Hive、Iceberg 数据写回功能,写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。基于此,用户可以将 Apache Doris 中的内表数据写回离线湖仓,或者对离线湖仓中的数据利用 Apache Doris 进行数据加工后落地回离线湖仓,从而实现更简化和高效的数据湖构建。