《专场12.3-FastData DLink 实时湖仓引擎架构设计与落地实践-冯森(脱敏版).pdf》由会员分享,可在线阅读,更多相关《专场12.3-FastData DLink 实时湖仓引擎架构设计与落地实践-冯森(脱敏版).pdf(32页珍藏版)》请在三个皮匠报告上搜索。
1、FastDataFastData DLinkDLink 实时湖仓引实时湖仓引擎的架构设计与实践擎的架构设计与实践北京滴普科技有限公司FastData DLink PDT 总经理 冯森01 DLink 架构介绍目录02 DLink 核心功能03 DLink 落地实践04 DLink 未来规划DLinkDLink 架构介绍架构介绍湖仓一体平台演进趋势湖仓一体平台演进趋势TB 级几百TB级PB级数据类型数据处理分析时效离线准实时实时EB级以MPP、Hadoop/数据湖为代表的传统方案技术栈多且复杂,难以运维;数据链路时效性较低;数据急速膨胀导致原产品性能严重滑坡;总结:无法满足企业复杂数据实时智能化
2、处理需求数据量关系型数据半结构化数据非结构化数据DLink实时湖仓引擎MPP 数据库大数据平台(CDH/CDP)DLink LinkHouse基于iceberg/Hudi等多模湖仓存储引擎PB级实时存储引擎TarimDLink Mesh分布式数据湖的构建与管理,探查湖仓一体(DLink/MRS)GB 级分布式数据湖架构适应大型企业多级+多租户的数据场景;原创核心技术Tarim实现亚秒级海量数据存储+计算;云化方式提供数据服务。自主研发湖仓平台(信创基础软件)开放数据格式多级分区流批一体引擎OLAP引擎(联邦查询/多维分析/物化视图)用户空间数据分析数据探查存储层技术元数据计算层服务层索引数据集
3、成DCT数据开发文件/块缓存加速层语义缓存中间结果缓存索引缓存冷热加速数据源业务库API/SDK图形/视频/音频物联网IOT事件流数据工程师数据分析师BI报表数据科学机器学习DLink 实时湖仓引擎分析和应用私有化部署HDFS云端S3/OSS统一存储统一Catalog数据安全与权限分享服务DLinkDLink产品架构图产品架构图计算引擎FlinkODSAPP可视化BI报表自助分析数据源业务库APP应用物联网IoT统一存储引擎 IcebergDWDDWS实时获取+订阅湖仓实时 Join 支持分钟级数据延迟开发/建模CDC汇总计算ELTCDC计算引擎Flink计算引擎Flink数据集市实时数仓/离
4、线数仓分析引擎缓存层TrinoAlluxioDLinkDLink实时湖仓架构图实时湖仓架构图基于使用场景租户管理数据分析机器学习支持作业管理空间概览数据探查实时计算可创建多个项目,为每个项目分配单独资源和权限,管理数据源链接,多个项目间资源和权限完全隔离。提供通用运维监控能力,支持通过WEB、外接消息机制对故障进行告警的能力,以及是否能够以日志记录告警信息。提供已连接的外部数据源信息对应数据源存储的数据结构以及数据样例,探测数据连接连接性,提供自动生成ddl功能提供可视化Dlink SQL作业提交和任务管理能力。支持在流上执行类SQL任务,SQL能力至少包括:过滤、转换、基于窗口的计算能力、提
5、供窗口数据的统计能力、关联能力、流数据的拆分与合并。湖仓管理提供数据集模块,统一管理湖内数据;提供过期快照删除、小文件合并、删除孤儿文件等表运维功能,支持参数配置、策略配置及手动触发。支持即席查询,交互分析,物化视图,并支持多catalog的联邦查询,并可以JDBC、HTTP等方式支持数据分析结果输出支持非结构化数据入湖、管理及任务运维,支持特征存储,向量索引模型和特征实时查询。支持多种作业类型:SQL 作业、JAR 作业等。支持在每个项目空间内提供作业管理运维、作业包上传等功能。并可为作业配置CPU及内存资源。云中立架构,支持计算资源弹性扩缩容,存储高可用,自动监控,可独立部署任意规模的工作
6、负载,满足快速增长的业务需求云原生流批一体统一数据基础架构与开发逻辑,同时支持系统数据流作业与批作业,统一Connector,降低学习、使用、维护成本。支持结构化、半结构化、非结构化数据存储,内置包括S3/OSS/HDFS/OBS的多模态存储引擎与分级存储;支持Parquet、ORC行列存储兼顾,支持隐藏分区和分区进化多模数据的存储和管理存算分离存储计算分离架构,可根据业务特性动态升降配和扩缩容;支持直接读取离线数仓数据,系统负载均衡调度更加灵活,利用率更高,并以更低成本交付部署生产系统。实现了数据端到端加密与落盘再加密,统一身份鉴别、访问控制、安全认证,支持租户隔离、安全审计与数据全生命周期
7、管理,支持跨区域实时灾备,全面保障数据安全与隐私。安全与隐私统一元数据管理集成大规模元数据管理,表和分区的所有元数据通过统一的元数据访问,并持久化,使用高性能表格管理,可向多计算引擎添加表,单表可达数十PB,保障跨语言和兼容性。多种异构数据的实时或离线批量同步传输与计算,解决了架构复杂度高,数据格式不统一等问题,打通多业务系统数据,满足多种数据查询与应用。统一数据接口即席数据查询支持海量数据即席查询,支持多catalog的联邦查询,支持在线编写 SQL 语句、语法检查、调试和发布部署,并提供线上运维管理。整个过程无需复杂编程,降低了用户使用实时流计算的门槛。统一工作空间机器学习(Python,
8、R,各种机器学习库),强SQL标准支持(Spark SQL、Flink SQL、Hive SQL等),其他工具对接(BI工具、IDE等)通过DLink实现流批一体、湖仓一体、实时数仓,同时整合了数据湖与数据仓库的优点支持事务与Schama基于Iceberg支持ACID事务能力,支持同时读取和写入数据,同时提供upsert/merge into的能力;支持schema的执行和演变,支持数仓的星型/雪花模型;DLinkDLink产品关键特性产品关键特性DLinkDLink 核心功能核心功能Z-Order数据排序BloomFilter 索引Hive 存量数据快速迁移IcebergCDC 能力小文件自
9、动合并隐藏分区/计算列Catalog热加载支持 localcache支持多租户支持物化视图数据加密支持iceberg 维表UI界面Flink 引擎支持多版本流批一体整库入湖算子调优支持CBO优化在多维数据分析场景下性能大幅提升在等值查询和范围查询场景下性能大幅提升支持生成 Iceberg 元数据的方式对 Hive 历史数据快速迁移,避免数据搬迁Iceberg 通过流读变更数据构建实时数仓的重要能力通过内置合并策略,可以自动进行后台小文件合并,快照清理等支持 Flink 在iceberg上创建带有计算列/隐藏分区的表支持通过 iceberg 存储维表功能支持基于 iceberg 统计信息进行优化
10、执行计划优于开源Iceberg优于开源Trino优于开源Flink对 IO 密集型 query 进行性能优化支持动态加载catalog能力基于ranger支持多租户能力支持物化视图动态刷新支持通过masking的方式对数据进行加密数据权限支持库、表和字段级数据权限数据连接DLink在UI界面集成了作业提交、管理运维、数据视图Metrics等能力支持 Flink1.12-1.14 版本Flink 支持 SDK 的方式提供被批调度能力支持整库数据入湖,提升入湖效率支持 flink 算子自动调优、算子拆分,算子并发Flink 支持 on yarn 和 on k8s 资源调度支持丰富的connecto
11、r支持yarn/K8SDLinkDLink优于开源功能优于开源功能Iceberg 社区 PR总数:31个 Contributor总人数:9位Hudi 社区 PR总数:13个 Contributor总人数:3位Trino 社区 PR总数:4个 Contributor总人数:2位总PR 数:48个总Contributor:14位DLinkDLink在开源社区的贡献在开源社区的贡献DLinkDLinkIcebergIcebergZ Z-OrderOrder 排序排序Z-Order是一种特殊的将多维数据映射到一维的方法,如右图所示,对于一个二维的查询条件来说,无论对A还是对B进行范围查询,都能至少过滤
12、掉50%的数据量。在多维分析场景性能会有大幅提升。DLinkDLinkBloomFilterBloomFilter 索引索引布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,查询性能很优DLinkDLink支持支持 IcebergIcebergCDCCDC 流读流读 Insert/Update/DeleteInsert/Update/Deletestreaming read sequence chartSQL示例:select*from hive_catalog.test1.test35/*+OPTIONS(streaming=true,moni
13、tor-interval=1s)*/;DLinkDLink自动化合并自动化合并IcebergIceberg小文件小文件支持独立部署和应用支持独立部署和应用支持独立部署运维服务无缝接入DLink资源隔离资源隔离DLink运维任务的资源与业务资源隔离运维任务之间资源隔离自动生成运维任务自动生成运维任务定义任务生成的规则,根据监控结果生成运维任务多种任务调度策略多种任务调度策略支持FIFO和任务权重优先策略DLink 在 iceberg 上构建后台自动合并小文件任务,让用户忘记繁重的表运维任务,让Iceberg开箱即用。DLinkDLinkHiveHive历史数据快速入历史数据快速入IcebergI
14、ceberg普通数据迁移普通数据迁移Hive表原地迁移到表原地迁移到Iceberg表表核心价值:核心价值:Hive数据可以在不迁移数据文件的情况下,直接构建Iceberg元数据,转换为Iceberg表,并在此基础上做了性能优化,降低了迁移成本。测试结果测试结果:1、经过多次对比测试,说明数据轻量级迁移任务的执行还是很快速、稳定的,理论上与文件数量、大小、是否压缩均有关,但其中文件数量的影响最大,当分区文件数大到万级别时,迁移时间有变长,但也是在分钟级别。2、Hive快速迁移的效率是数据直接拷贝的三倍。DLinkDLink整库数据入湖整库数据入湖支持整库多表入湖支持存量和增量数据的一体化入湖支持
15、运行时的DDL变更(新增列,新增表)支持并行化入湖支持断点续传支持按照指定时间戳回溯DLinkDLink统一元数据服务统一元数据服务价值点协议兼容:通过HMS多实例,支持多版本HMS协议(2.x/3.x);存储兼容:通过HMS多实例,支持多种存储介质(S3和HDFS);统一数据目录管理:提供针对不同数据源如Hive、Iceberg、MySQL 等的统一数据目录管理。权限控制:所有DDL 操作鉴权在统一元数据层完成,不依赖引擎。多租户:支持通过租户(和/或项目空间)对catalog进行隔离;多引擎兼容:不同引擎能够使用同一份元数据,比如Spark、Flink、Hive、Trino不需要独立维护自
16、己的元数据。DLinkDLink数据权限控制数据权限控制实现基于Ranger 对Iceberg对象如用户角色等权限访问控制,具体实现逻辑如左图Dlink 分析引擎执行 SQL 时,通过权限策略判断当前用户是否拥有执行权限数据权限体系能和现有大数据权限系统打通或兼容DLinkDLinkTrinoTrino 支持批处理和容错机制支持批处理和容错机制容错执行是 Trino 中的一种机制,它使集群能够通过在发生故障时重试查询或其组件任务来减轻查询故障。支持Query和Task级别重试,同时基于Tardigrade 实现了强大的批处理能力。DLinkDLink支持物化视图支持物化视图物化视图的全量刷新很
17、慢,其次当我们对物化视图关联的表进行dml操作的时候,数据会进行变化,但是物化视图无感知,导致物化视图查询的结果可能不是最新数据。定时刷新的好处在于我们刷新之后,把表的数据同步到了物化视图,使查询的数据不是旧的数据。DLinkDLink支持数据缓存支持数据缓存Alluxio Local data cache,轻量级仅本地节点访问的缓存,将数据缓存在计算Node的本地SSD中,不考虑集群节点间数据共享,依赖于soft affinity schedule,增加缓存命中率,尽量本地node处理本地的数据。DLinkDLinkTrinoTrinoCatalogCatalog热加载热加载Catalog热
18、加载主要解决了在Trino运行过程中,可以通过注册的方式,给Trino动态增加Catalog,无需重启。左图:Catalog热加载的流程.大体思路是:1.扩展Trino的restApi接口,新增注册Catalog接口;2.Catalog注册接口,在接收到用户请求后,先查找到当前Trino集群所有活动的节点。获取节点url,然后循环调用每个节点的注册CatalogAPI,分别热加载Catalog;最好再通过Announcement进行所有节点状态同步。DLinkDLink支持支持FlinkFlinkJobJob算子并发拆分和调优算子并发拆分和调优方便排查瓶颈算子节约资源提升作业性能DLinkDL
19、ink支持在湖内构建维表和缓存加速支持在湖内构建维表和缓存加速维表join的批量化加快join速度DLinkDLink 落地实践落地实践某存储客户数据能力建设现状某存储客户数据能力建设现状采集与分发分布式存储和并行化处理查询、分析、挖掘、服务ENTERPRISE DATA HUBSecurity,Scalability&Easy ManagementApache Kafka消息、流式半结构化数据Apache Sqoop关系、SQL结构化数据Apache HDFS分布式文件系统、批量Apache Kudu关系模型、实时、更新Apache HBaseNoSQL数据库、实时Apache Impala
20、快速分析、交互式查询Cloudera Search知识库,全文搜索非/半结构化数据源数仓等结构化数据源Deployment Flexibility:DatacenterCloudApache Spark流处理、算法模型、查询分析Apache Flume消息、文件非结构化数据数据资源管理存储资源管理计算资源管理集群运营管理应用服务Apache Hive数据仓库查询与处理OracleTeradataNetezzaWeb/App/APIxx存储 现有大数据平台以CDH(6.3.2)技术栈为主,基于本地IDC物理架构构建沿用业界经典的Lambda架构,以离线采集+离线数仓为主核心技术架构数据量:20万
21、亿条数据,xPB级某单表每天产生5亿条某存储客户关注点某存储客户关注点各技术组件支持灵活的组合,需要与现有的CDH兼容随着业务的发展,数据的增加,支持横向扩展灵活性、兼容性湖仓一体架构支持 Dlink on YARN/K8S 的部署方式,兼容现有CDH,各组件之间解耦。云原生架构,支持计算和存储资源弹性扩容数据准确可靠Hive 历史数据快速迁移入湖历史数据和新增数据去重流式任务出现异常后,需要有相应的补数方案面向数据质量提升的技术架构提供Hive历史数据生成 Dlink iceberg元数据的方式快速迁移数据入湖提供历史数据快速批式去重,新增数据流式去重提供流式任务异常情况补数据的方案客户需求
22、解决方案稳定性、可用性DataOps理念DataOps理念,提供可靠的数据采集到上线运维的流程监控,实现数据的持续稳定交付希望能做到大数据组件到数据本身的全链路监控某零售行业客户案例某零售行业客户案例湖仓架构优点数据湖结构化数据半结构化数据非结构化数据数据仓库统一数据开发接口,存储和计算层实现流批一体,提升开发效率和时效性;流批一体统一存储存算分离Data+AI支持非结构化数据分析,对接算法和机器学习应用,挖掘数据价值;云原生架构,支持存储和计算资源弹性扩展,提升资源利用率结构化数据和非结构化数据可以统一存储,减少ETL,减少数据不一致,提升分析效率。行业趋势业务数据现状海量数据大数据精准营销智能机器人品牌大脑“品牌+零售”战略数据智能挖掘会议、直播、行为数据等半/非结构化数据缺少统一存储与挖掘财务系统物流系统办公系统结构化数据数据仓库数据应用DLinkDLink 未来规划未来规划DLinkDLink未来规划未来规划 支持亚秒级实时数仓 支持企业级多租户多级数据湖 支持IMT二级索引 支持自适应实时物化视图 支持数据加密和查询脱敏 支持 Hudi 表格式 支持机器学习加入技术交流群加入技术交流群关注社区关注社区加入技术交流群加入技术交流群