《FastData DLink 实时湖仓引擎架构设计与落地实践-杨维亮 .pdf》由会员分享,可在线阅读,更多相关《FastData DLink 实时湖仓引擎架构设计与落地实践-杨维亮 .pdf(40页珍藏版)》请在三个皮匠报告上搜索。
1、FastData DLink 实时湖仓引擎架构设计与实践滴普科技 DLink SE/杨维亮 Will自我介绍杨维亮Deepexi-FastData产品线-DLink SE 专注于大数据与数据库内核领域。曾在华为2012实验室高斯部参与自研分布式内存数据库的架构设计与开发。对分布式架构、数据库内核、云原生数仓有深入的理解和实践 当前负责DLink产品的架构设计以及核心技术的预研工作目录 1)DLink 架构介绍2)DLink 核心功能3)DLink 落地实践4)DLink 未来规划DLink 架构介绍DLink 产品架构开放数据格式多级分区流批一体引擎OLAP引擎(联邦查询/多维分析/物化视图)
2、用户空间数据分析数据探查存储层技术元数据计算层服务层索引数据集成 DCT数据开发文件/块缓存加速层语义缓存中间结果缓存索引缓存冷热加速数据源业务库API/SDK图形/视频/音频物联网IOT事件流数据工程师数据分析师BI报表数据科学机器学习DLink 实时湖仓引擎分析和应用云端S3/OSS统一Catalog数据安全/权限分享服务DLink 实时湖仓架构计算引擎计算引擎FlinkFlinkODSAPP可视化BI报表自助分析数据源业务库APP应用物联网IoT统一存储引擎 IcebergIcebergDWDDWS实时获取+事件订阅湖仓实时/流式 join 分钟级数据延迟开发/建模CDC汇总计算ELTC
3、DCFlinkFlinkFlinkFlink数据集市实时数仓/离线数仓 分析引擎分析引擎/缓存层缓存层TrinoTrinoAlluxio Local CacheFlinkCDCETL/AdhocDLink 产品关键特性产品功能特性产品功能特性核心技术特性核心技术特性统一元数据管理统一元数据管理统一工作空间统一工作空间基基 于于 使使 用用 场场 景景项目空间管理项目空间管理数据探索数据探索数据开发数据开发数据科学数据科学即席数据查询即席数据查询作业管理作业管理统一元数据视图,集成大规模元数据管理,表和分区的元数据通过统一接口访问、持久化;使用高性能表格管理,可向多计算引擎添加表租户/项目空间级
4、别catalog管理;可用SQL创建和管理表单;支持Flink、Trino、Iceberg等多种引擎和表格式支持Oracle、MySQL、PostgreSQL、Hive等20+异构数据源的接入与集成支持用户自定义和管理connector异构数据源接入异构数据源接入机器学习(Python,R,各种机器学习库)强SQL标准支持(Spark SQL、Flink SQL、HiveQL等)其他工具(BI工具、IDE等)统一存储管理统一存储管理支持结构化、半结构化、非结构化数据存储;实现EB级的大规模存储部署;内置包括S3/OSS/HDFS/OBS的多模态的存储系统与分级存储,深度整合各类云存储运维监控运
5、维监控权限管理权限管理数据源管理数据源管理可以创建多个项目,为每个项目分配单独的资源和权限,管理数据源链接,多个项目间资源和权限完全隔离提供通用运维监控能力,支持通过WEB、外接消息机制对故障进行告警的能力,以及是否能够以日志记录告警信息可通过权限模板或单独授权的方式,批量或单独给成员授予操作及数据权限支持Oracle、MySQL、PostgreSQL、Hive等20多种异构数据源接入与集成管理提供数据视图功能,显示数据源数据schema信息、字段统计信息及相关数据样例,为用户提供数据源探查功能提供可视化DLink SQL作业提交和任务管理能力。支持在数据流上执行类SQL任务,SQL能力至少包
6、括:过滤、转换、基于窗口的计算能力、提供窗口数据的统计能力、关联能力、流数据的拆分与合并提供可视化算法开发界面,支持模型训练及快速测试和学习支持即席数据查询功能,支持多catalog的联邦查询,并可以JDBC、HTTP等方式支持数据分析结果输出支持3种作业类型:SQL 作业、JAR 作业、ETL 作业。支持在每个项目空间内提供创业作业、作业管理、作业包上传等功能。可为作业配置CPU及内存资源湖仓一体、流批一体、存算分离DLink 核心功能0.DLink 优于开源的功能Z-Order 数据排序BloomFilter 索引Hive存量数据快速迁移Iceberg CDC 能力小文件合并性能优化隐藏分
7、区/计算列Catalog热加载local data cache支持多租户物化视图数据加密iceberg 维表 UI界面Flink 引擎多版本流批一体整库入湖算子调优CBO优化在多维数据分析场景下性能大幅提升在等值查询和范围查询场景下性能大幅提升通过生成 Iceberg 元数据的方式对 Hive 历史数据进行快速迁移,避免数据的拷贝和搬迁通过流读Iceberg变更数据构建实时数仓主要针对 equality-delete文件合并资源占用过高问题进行优化支持 Flink 在Iceberg上创建带有计算列/隐藏分区的表支持基于 Iceberg 的维表存储支持基于 iceberg 统计信息进行查询执行计
8、划的优化优于开源Iceberg优于开源Trino优于开源Flink优化 I/O 密集型 query 的性能支持动态加载catalog基于IAM和Ranger的多租户能力支持物化视图动态刷新支持数据masking和文件级加密数据权限支持库、表和字段级数据权限数据连接界面集成了作业提交、管理运维、数据视图Metrics等能力支持 Flink1.12-1.14 版本Flink 支持以SDK调用方式,提供批式任务被调度能力支持整库数据入湖,提升入湖效率支持 Flink 算子自动调优、算子拆分和算子并发Flink 支持基于Yarn和K8S的资源调度支持丰富的数据源connector支持Yarn/K8S0
9、.DLink 开源贡献总PR个数:48总Contributor数:14 PR:31Contributor:9 ApacheIceberg PR:13Contributor:3 ApacheHudi PR:4Contributor:2 Trino 1.Iceberg:Z-Order索引(原理)Z-Order在Iceberg中的应用,本质上是一种数据组织优化,将多维数据按照一维映射进行排序,实现Data Skipping的效果,优化Iceberg的min-max索引。如何多维映射到一维?二维点位(4,3)转换成bit(100,011)交叉处理:100101排序Note:所有类型都转换成8个byte
10、s。符号位取反,取反后的正数也始终大于负数。不会持久化z-address,不需要维护索引文件,查询时也不会 计算z-address,借助Iceberg的min-max索引过滤文件。1.Iceberg:Z-Order索引(实现)RewriteDataFiles.Result result=basicRewrite(table).curveOptimize(zCols).option(CurveOptimizeStrategy.REWRITE_ALL,true).execute();集成到spark rewrite任务,兼容所有配置参数。DataFrame按照z-address直接排序的方式重写数据。2.Iceberg:BloomFilter索引支持ORC、Parquet格式的bloom filter,以Parquet格式为例,bloom filter的读写过程:要点:Bloom Filter只适用于:=、IN、NotNull这些等值表达式,对于常见的Range过滤,比如,=,湖仓一体场景 Flink/Trino -流批一体增强 Trino -分析性能优化3.产品落地实践:某大型服饰集团:实时入湖、实时开发、湖仓底座4.未来规划:湖仓一体:结构化/非结构化数据管理 增强分析:MV/Semantic Cache 组件开源:实时存储、实时开发技术交流群社区公众号