Lakehouse架构解析与实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. LAKEHOUSE 架构解析与云上实践 陈鑫伟(熙康) ,阿里云 开源大数据部 数据湖构建云产品研发
2. 目录 CONTENT 01 Lakehouse 概念与特性 02 Lakehouse 架构与实现 Lakehouse的由来与架构范式 Delta lake Iceberg 03 云上 Lakehouse 实践 04 案例分享与展望 阿里云在构建企业级云上 Lakehouse的思考与实践 分享实际落地的Lakehouse案例
3. 01 什么是 Lakehouse 《Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics 》
4. 数据架构的演进 从传统数仓到Lakehouse 驱动力 驱动力 • 数据量增长、存储成本高 • 数据一致性和时效性得不到保障 • 不支持半结构化、非结构化数据,对AI不友好 • 两层架构复杂,总体拥有成本(TCO)高 • 数据格式不够开放,场景受限 • 湖数据治理优化能力差,不利于高级分析
5. 数据架构的演进 – Data Warehosue 数据仓库:解决BI分析和报表的数据采集与计算 代表 Teradata,Oracle 本质 • 内置存储系统提供数据抽象 • 数据需要清洗和转化 • 强调建模和数据管理 优势 • 细粒度的数据管理和治理,支持事务、版本等 • 数据深度优化,和引擎深度集成,性能好 缺点 • 存储和计算绑定,根据两者峰值采购,成本高 (云原生数仓已经解决) • 不支持非结构化数据 • 数据不够开放,不易用于其他高级分析(如ML)场景
6. 数据架构的演进 – Data Lake 数据湖:统一存储所有数据,支持各种数据应用场景 代表 Hadoop HDFS ,S3 ,OSS 本质 • 低成本、高可用的统一的存储系统 • 存储原始数据,schema-on-read • 支持半结构化和非结构化数据 • 数据开放,丰富的计算模型/范式 优势 • 存储成本低,扩展性强 • 支持丰富的数据类型 • 支持丰富的计算场景 • 灵活性强,易于启动 缺点 • 数据链路长,出错率高,数据可靠性差 • 各个系统间数据一致性和时效性差 • 湖内数据缺少优化,SQL查询性能差 • 系统复杂,整体拥有成本高
7. 数据架构的演进 – Lakehouse Lakehouse:结合数据湖和数据仓库的优势 代表 基于Delta lake/Iceberg/Hudi建设的数据系统 本质 • 低成本、开放存储上的管理系统 • 提供数据管理特性和高效访问性能 • 支持多样数据分析和计算 优势 • 存算分离架构,灵活扩展 • 存储成本低,且支持丰富的数据类型 • 数据可靠性、一致性、实时性强 • 支持丰富的计算引擎和范式 • 支持数据组织和索引优化,查询性能好 缺点 • 快速发展期,关键技术迭代快 • 成熟的产品和系统少,可借鉴案例不多
8. Data Warehouse vs. Data Lake vs. Lakehouse
9. 02 Lakehouse 架构与实现
10. Lakehouse 架构 构建Lakehouse的核心模块 访问层 • 元数据层查询和定位数据 • 对象存储支持高吞吐的数据访问 • 开放的数据格式支持引擎直接读取 • Declarative DataFrame API 利用SQL引擎的优化和过滤能力 优化层 • Caching、Auxiliary data structures(indexing and statistics)、 data layout optimization,Governance 事务层 • 实现支持事务隔离的元数据层,指明每个Table版本所包含的数据对象 • 存储层 Lakehouse = 云上对象存储 + 湖格式 + 湖管理平台 • 云上对象存储,低成本,高可靠性,无限扩展,高吞吐,免运维 • 通用的数据格式,Parquet / Orc
11. Lakehouse实现核心 – 湖格式 Lakehouse 核心能力 1 ACID 事务隔离 2 流式数据处理 3 元数据扩展性和性能 4 支持多引擎读写 5 查询性能优化 6 高效数据更新与删除 7 Schema验证及演化 8 解决小文件问题 9 多版本和时间旅行 Delta Lake is an open format storage layer that delivers reliability, security and performance on your data lake — for both streaming and batch operations. By replacing data silos with a single home for structured, semi-structured and unstructured data, Delta Lake is the foundation of a cost-effective, highly scalable lakehouse. Apache Iceberg is an open table format for huge analytic datasets. Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink and Hive using a high-performance table format that works just like a SQL table. Hudi is a rich platform to build streaming data lakes with incremental data pipelines on a self-managing database layer, while being optimized for lake engines and regular batch processing.
12. Delta lake Lakehouse 核心能力 关键实现:事务日志 – Single Source of Truth • 事务日志以事务提交为粒度,按序记录了所有对表的操作 1 • 串行化隔离写操作,写操作保证原子性,MVCC+乐观锁控制并发冲突 • 快照隔离读操作,支持读历史版本数据,实现时间旅行 • 文件级别数据更新重新,实现局部数据更新和删除 • 基于增量日志的数据处理 ACID 事务隔离 2 流式数据处理 3 元数据扩展性和性能 4 支持多引擎读写 5 查询性能优化 6 高效数据更新与删除 7 Schema验证及演化 8 解决小文件问题 9 多版本和时间旅行 https://databricks.com/blog/2019/08/21/diving-into-delta-lake-unpacking-the-transaction-log.html
13. Delta lake on EMR 阿里云EMR Lakehouse 核心能力 1 ACID 事务隔离 2 流式数据处理 3 元数据扩展性和性能 4 支持多引擎读写 5 查询性能优化 6 高效数据更新与删除 7 Schema验证及演化 8 解决小文件问题 9 多版本和时间旅行 Optimize & Zorder ● 支持Zorder重新布局数据,结合dataskipping加速查询; ● 实现高效的Zorder执行,7.8亿数据,2个字段,20分钟完成 ● 支持Optimize,解决小文件问题,并支持自动compact; SavePoint ● 支持创建/删除/查询SAVEPOINT,永久保留指定版本的数据 Rollback ● 回退到历史某版本,用于修复数据 自动同步元数据到MetaStore ● 无需额外操作,将完整表信息和分区信息自动同步到metastore, 用于Hive/Presto查询等; 多引擎查询支持 ● 支持Hive/Trino/Impala/阿里云MaxCompute查询
14. Iceberg Lakehouse 核心能力 1 ACID 事务隔离 2 流式数据处理 3 元数据扩展性和性能 4 支持多引擎读写 5 查询性能优化 6 高效数据更新与删除 7 Schema验证及演化 8 解决小文件问题 9 多版本和时间旅行 关键实现:基于Snapshot的元数据层 • Snapshot中记录表当前版本的所有文件 • 每次写操作提交一个新的版本 • 基于Snapshot的读写隔离
15. Iceberg Lakehouse 核心能力 1 ACID 事务隔离 2 流式数据处理 3 元数据扩展性和性能 4 支持多引擎读写 5 查询性能优化 6 高效数据更新与删除 7 Schema验证及演化 8 解决小文件问题 9 多版本和时间旅行 基于snapshot差异做增量数据消费
16. Iceberg 阿里云EMR Lakehouse 核心能力 Optimize ● 结合JindoFS提供缓存加速 ● 自动小文件合并 1 ACID 事务隔离 2 流式数据处理 3 元数据扩展性和性能 4 支持多引擎读写 5 查询性能优化 ● 1位Iceberg PMC,1位Iceberg Committer ● 贡献和维护Iceberg与Flink的集成模块 6 高效数据更新与删除 ● 主导并设计社区的MOR流式upsert功能 7 Schema验证及演化 中文社区运营 8 解决小文件问题 ● 维护国内最大的Apache Iceberg数据湖技术社区(成员1250+)。 ● 国内最活跃的 Apache Iceberg 布道师之一: 9 多版本和时间旅行 阿里云云生态对接 ● 原生接入OSS对象存储 ● 原生接入DLF元数据 开源社区投入 ● 组织举办 Apache Iceberg深圳站、Apache Iceberg上海站
17. 功能对比 ADD RELATED TITLE Items Category Basic ✅ WORDS ? No plan to support now delta-io/delta Delta On Aliyun Apache Iceberg Iceberg On Aliyun Apache Hudi Hudi On Aliyun ACID - ✅ ✅ ✅ ✅ ✅ ✅ Time Travel - ✅ ✅ ✅ ✅ ✅ ✅ Schema Evolution - ✅ ✅ ✅ ✅ ✅ ✅ Batch ✅ ✅ ✅ ✅ ✅ ✅ Streaming ✅ ✅ ✅ ✅ ✅ ✅ Schema Evolution - ✅ ✅ ✅ ✅ ✅ ✅ Partition Evolution - ✅ ✅ ✅ ✅ ✅ ✅ Copy-On-Write Update - ✅ ✅ ✅ ✅ ✅ ✅ Read ? ? ✅ ✅ ✅ ✅ Write ? ? ✅ ✅ ✅ ✅ Compaction ? ? ❓ ❓ ✅ ✅ Z-Ordering - ? ✅ ❓ ❓ ❓ ❓ E2E Encryption - ? ? ✅ ✅ ? ? Secondary Indexes - ? ? ❓ ❓ ? ? Local SSD Cache - ? ✅ ? ✅ ? ✅ Auto small files merge - ? ✅ ? ✅ ✅ ✅ Merge-On-Read Update Advanced Features ❓ Feature in roadmap Sub-items Source/Sink Mutation Feature Available
18. 生态对比 Category Items ✅ Delta On Aliyun Apache Iceberg Iceberg On Aliyun Apache Hudi Hudi On Aliyun Read ✅ ✅ ✅ ✅ ✅ ✅ Write ✅ ✅ ✅ ✅ ✅ ✅ Read ✅ ✅ ✅ ✅ ✅ ✅ Write ❓ ❓ ✅ ✅ ? ? Read ❓ ❓ ✅ ✅ ✅ ✅ Write ❓ ❓ ✅ ✅ ✅ ✅ Read ✅ ✅ ✅ ✅ ✅ ✅ Write ❓ ❓ ✅ ✅ ? ? Hive Catalog - ✅ ✅ ✅ ✅ ✅ ✅ AWS Glue - ? ✅ ✅ ✅ ❓ ❓ Aliyun DLF - ? ✅ ❓ ✅ ? ✅ AWS S3 - ✅ ✅ ✅ ✅ ✅ ✅ Aliyun OSS - ✅ ✅ ✅ ✅ ✅ ✅ Java/Scala - ✅ ✅ ✅ ✅ ✅ ✅ Python - ✅ ✅ ✅ ✅ ✅ ✅ Rust - ✅ ✅ ? ? ? ? Engines Apache Flink trinodb/trino Languages ? No plan to support now delta-io/delta Apache Hive IO Vendor ❓ Feature in roadmap Sub-items Apache Spark Catalog Feature Available
19. 03 云上Lakehouse 架构与实践
20. Lakehouse 实现核心 — 平台
21. 数据湖构建、管理与分析过程
22. 阿里云Lakehouse架构 您公司的logo
23. DLF统一元数据服务与治理 n 统一元数据与统一权限 • 完全兼容HMS协议,支持多引擎访问 • 多引擎统一权限控制 • 利用云上KV存储提供高扩展性、高性能服务 • 支持Delta lake/Hudi/Iceberg元数据同步,统一视图 n 以Delta lake 支持多引擎访问为例 • 多形态Spark:DLF数据探索、Databrick Spark、 Maxcompute Serverles Spark • 实时计算:Flink(对接中) • EMR 交互式分析:Trino、Impala • EMR Hive :阿里云贡献给社区的Delta Connector, 完全开源 n 湖元数据治理 • 基于历史数据的元数据分析和管理 • 成本分析与优化、冷热分析与性能优化
24. CDC入湖产品化 n 多种数据源0代码构建数据流 • 模板+配置 => Spark任务 • 入湖工厂,自动生成Spark SQL / Dataframe Code n 多种数据源CDC入湖,自动同步元数据 以Hudi为例 • Mysql、Kafka、Log Service、 TableStore等实时写入Hudi数据湖 • 结合Flink CDC,支持全托管和半托管Flink实时写入Hudi数据湖并同 步元数据到DLF,供其他引擎进一步分析。 n Hudi社区贡献 • 阿里云贡献Spark SQL和Flink SQL读写Hudi • 实现MERGER INTO等CDC常用算子
25. 数据湖治理 n 基于平台提供自动化的治理服务 以Iceberg为例 • Compact / Merge / Optmize • Expire-snapshot / Vacuum • Caching(基于JindoFS) n 自动数据冷热分析及分层归档 n Serverless Spark提供低成本托管资源池
26. 04 Lakehouse 场景案例及 未来展望
27. 案例分享1:全托管数据湖方案 n 批流一体,链路简单清晰 • Delta lake + Spark 实现实时计算和离线分析 n 全托管服务,免运维 • OSS存储托管 • DLF元数据和入湖任务托管 • DDI Spark引擎托管 n 数据开放 • https://developer.aliyun.com/article/800210 快速接入Presto做交互式分析
28. 案例分享2:存算分离实时数据湖 n 存算一体 —> 存算分离 • HDSF运维困难 -> OSS免运维 • HDFS云盘成本高 -> OSS成本低 • HMS扩展性差 -> DLF元数据扩展性高 n Flink实时入湖,Spark/Hive分析 • Flink -> Hudi高效实时写入能力 • DLF元数据天然打通Spark/Hive n Hbase服务和数据分离
29. Lakehouse 未来展望 n 湖格式能力会不断增强,接近数仓/数据库的能力 • 多表事务(AWS Governed Table) • Optimize功能越来越丰富(Caching,Clustering,Z-Ording。。。) • 三种湖格式能力不断追平 n 湖格式与存储/计算集成度越来越高,以获得更高的性能 • 存储层会出现面向湖格式的定制API • 为计算层提供更多面向性能优化的方案(二级索引,Column statistics) n 湖管理平台能力越来越丰富和智能化 • 统一元数据服务成为标配,Meta托管化、服务化(Hudi Timeline Server) • 治理和优化成为平台基础能力,并对用户不可见
30. 非常感谢您的观看 数据湖技术圈 钉钉群 公众号

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.3. UTC+08:00, 2024-11-25 03:22
浙ICP备14020137号-1 $访客地图$