基于这四个核心技术条件,在云基础平台上,如何一步一步去构建云上 Lakehouse 呢?首先从技术架构上拆解云上 Lakehouse。从技术角度看,可以分为如下五层:
1. 计算资源层。云上的云服务器、裸金属以及容器可以为 Lakehouse 提供海量的计算资源,同时还可以通过弹性实现资源随负载的变化而变化。
2. 云上的存储层。云上的对象存储、云 HDFS 、文件存储提供了面向不同业务场景的低成本、高可靠性、高稳定性的存储解决方案。而且云上存储是使用按量计费,成本更加低廉。
3. Data Lake Storage 层(表格式层)。本层使用开源的技术解决方案比如 Apache Iceberg(以下简称 Iceberg)、Apache Hudi(以下简称 Hudi)。同时云上的 Iceberg 和 Hudi 也针对云存储和计算做过大量的优化和扩展。基于开源的表格式的优势是开源开放、格式透明。
4. 统一的计算引擎层。统一计算引擎需要具备 ETL 和继续查询快速响应的能力。现阶段都是通过 Apache Spark(以下简称 Spark)来做 ETL,通过 StarRocks 做机器分析。
5. 统一的数据管理层。本层需提供完善的数据治理。数据管理可以通过 Wedata 来实现数据质量、血缘、数据科学等基础管理,通过 EMR、Lake Service 可以实现更底层的表格式的快照事务效文件以及索引管理的能力,降低 Lakehouse 使用的门槛。