当前位置: 首页 > news >正文 广州h5网站制作公司个人网站整站下载 news 2025/10/21 19:23:41 广州h5网站制作公司,个人网站整站下载,网络推广外包内容,平谷微网站建设Doris湖仓分析背景#xff1a; Doris多数据源功能演进 Doris的生态近年来围绕湖仓分析做了较多工作#xff0c;Doris一直在积极拓宽大数据生态的OLAP分析市场#xff0c;Doris2.0之后为了满足湖仓分析场景#xff0c;围绕multi-catalog、数据缓存、容错、pipeline资源管理… Doris湖仓分析背景 Doris多数据源功能演进 Doris的生态近年来围绕湖仓分析做了较多工作Doris一直在积极拓宽大数据生态的OLAP分析市场Doris2.0之后为了满足湖仓分析场景围绕multi-catalog、数据缓存、容错、pipeline资源管理等做了不少改进。 首先在multi-catalog之前Doris访问Hive表需要单表映射或者整库映射如果用户的Hive库特别多的话库级别的一一映射对于用户也很繁琐索引在库的上层加一个catalog级别catalog多数据源应该都是学习的Presto一个catalog对应一个数据源所有库和表简化用户从Doris访问外部数据源的方式。 Hive社区HiveServer2引擎之前也想去做这种catalog的方式进行跨源查询但受限于架构改造太以及社区内本身对该功能呼声并不高所以只做到了database整库级别的外部数据源映射且主要是jdbc数据源。 可以说目前多catalog的这种架构已经成为跨源联邦分析的标准架构这种架构以Trino/Presto为典型代表近两年流行的OLAP引擎在跨源改造方面基本上都会向Presto看齐满足自身架构的跨源分析能力。 Doris multi-catalog支持的主要数据源 Apache Hive数据源是Doris较早支持也是投入开发最多的一个外部数据源支持hive表的查询分区/分桶过滤支持搜集hive表统计信息做cbo优化典型的join优化使用统计信息做join reorder加速复杂join查询基本上内部表能用的优化特性在以Hive/Iceberg表为代表的主流湖格式上都用到了。 我们可以看到无论是Apache Hive还是Trino/Spark集成Iceberg表都会去利用Iceberg丰富的元数据信息如min/max做统计信息优化cbo该优化已经成为业内的共识。但计算引擎不仅可以利用Iceberg这种湖格式自身的元数据进行cbo优化还可以考虑对湖格式元数据进一步扩展获取更细粒度的统计信息如Trino社区使用puffin存储Iceberg统计信息做更好地优化。所以Doris如果考虑深度集成数据湖表格式需要考虑怎么利用湖格式的元数据信息做最大化的优化。 Doris复用Trino的connector 湖仓联邦分析本质上是跨源分析做跨源最专业的莫过于Trino而Doris绝大多数围绕联邦分析的能力/技术点都合Trino非常类似所以在这种联邦分析场景上Doris想要进一步发展 1Doris兼容Trino语义 Trino在大数据领域OLAP发展多年生态做的很好有较广泛的用户如何取代Trino的部分业务场景一直是Doris尝试去做的事情。取代Trino业务重要的是用户的Trino业务无缝迁移至Doris对于用户修改业务SQL是最繁琐的事兼容Trino的SQL语义自然是Doris首要想做的事情。这里Doris内部解析Trino SQL语法树最后转成Doris自己的语法完成用户业务的无感迁移。 2Doris复用Trino connector该特性还未做 Trino是业内专业跨源分析的标杆而Trino的可插拔connector机制允许任何数据源去实现然后利用Trino算力计算。那么能够复用Trino丰富的connector来增强Doris的跨源能力将是一个非常巧妙的事情。一个是用户现有的connector不需要任何改动放到Doris上就可以查询另一个是Doris自身不需要维护众多的connector可以大大减少Doris开发人员的工作量。 业内有不少案例做跨源分析时都会围绕Trino做文章有部分厂商甚至考虑在OLAP中内部启动一个Trino集群做跨源分析相当于直接复用Trino全部能力省时省事 一、multi-catalog基本使用 简单贴一些Doris multi-catalog的使用方式以提供一个直观认识 1.创建一个hive catalog名称为hive可用其他名可以既可以查询hive表也可以查询iceberg/hudi/paimon表 CREATE CATALOG hive PROPERTIES ( typehms, hive.metastore.uris thrift://localhost:9083, hadoop.username hive ); 2.创建iceberg的catalog只允许看到库下的iceberg表 CREATE CATALOG iceberg PROPERTIES ( typeiceberg, iceberg.catalog.typehms, hive.metastore.uris thrift://localhost:9083, hadoop.username hive ); 3.catalog.db.tbl三级目录定位联邦查询查询多个catalog和Presto使用体验一样 select * from hive.testdb.tbl01 a join iceberg.testdb.tbl02 b on a.id b.id; 总体而言针对Hive/Iceberg这种湖格式从功能层面以及性能优化层面Doris做的算是较完善跨源功能点的开发基本上都会优先聚焦于这种湖格式。我们也看到近年来的趋势越来越多的中小企业更喜欢使用简单的大数据分析架构进行数据分析兼具实时分析以及湖仓分析能力的Doris自然会成为众多企业优先考虑对象。尤其是在企业数据源多种多样的情况下利用Doris这种多catalog能力进行加速分析/湖仓分析一定程度上为企业带来降本增效的益处。 二、外部元数据管理 Doris 数据湖元数据缓存/同步 数据湖本身具备完善的元数据体系Doris查询的数据湖数据的时候需要考虑如何统一管理数据湖元数据这里我的直观感受采用和Presto一样常规的做法拉取数据湖元数据缓存至内存通过手动设置、定时任务刷新缓存解决元数据缓存和远端元数据同步问题。 但Doris这里做的比较好的一点是针对HMS的各种actiondrop table/Drop database等做了事件同步Apache Impala也有类似能力可以最大程度做到细粒度的元数据实时同步更新。但是这种HMS的事件监听同样会对HMS带来一定的高负载比如单表分区很多时进行分区修改/删除HMS的瞬时负载会很高。所以我们可以看到大数据生态中很多时候针对某一个问题并没有完美的解决方案更多的是一种trade-off。 三、一致性数据缓存CN节点 local cache加速 湖仓分析可以避免用户把数据ETL搬迁到Doris内部存储用户分析更加灵活但湖仓分析架构其实属于存算分离架构的一个典型而存算分离主要的问题是可能会带来一定的数据读取网络消耗一定程度上会影响查询延时。 这里Local cache是一种常见的远端数据拉取加速手段可以有效减少跨网络数据传输带来的延时以及带宽消耗。针对外部数据源Doris在be侧做了一致性file block local cache缓存热点数据一致性哈希的使用主要有两点好处 1由于远端数据不属于Doris内部数据所以查询不会访问be侧的存储所以Doris fe端在针对外部数据源做查询规划的时候其实会随机be进行查询这样每次查询可能会使用不同的bebe侧都会重新拉取一份缓存会降低查询效率。一致性hash则可以尽可能的让查询发送到已经存在缓存的be节点上避免查询的不稳定性。 2Doris的CNcompute node节点是针对数据湖这种外部数据源Doris CN节点目前不能查询内部存储表CN节点只负责计算没有存储CN节点带来好处是可以方便k8s容器化部署以及基于k8s的弹性伸缩若使用CN节点访问数据湖数据不停的扩缩节点会导致缓存数据的重分布。一致性hash则可以尽可能的避免在CN节点扩缩的时候缓存重分布。 一致性hash缓存似乎是所有存算分离下的云数仓标配如doris、hashdata。是否有更好的替代方案 我们看到专注缓存能力开发的Alluxio社区做了一个非常好的功能提供了一个标准的sdk引擎实现部分接口就可以使用Alluxio做local cache而不需要部署Alluxio集群其实这个能力就是两年前Alluxio贡献给PrestoDB的功能PrestoDB代号RaptorX工程只是Alluxio现在把这个功能抽象独立于引擎之外了可以允许其他引擎方便使用Alluxio做本地的cache。那么Doris是否可以考虑抽象缓存接口对接外部缓存系统 当前Doris其实还都是本地节点缓存带来的一个缺点是节点丢失缓存也会丢失丢失的缓存数据下次还需要重新拉取而且如果考虑存算分离多计算集群下每个集群都会缓存同样的数据如果有了分布式缓存是不是就不需要考虑这种一致性hash同时解决存算分离下多集群数据缓存重复 Doris社区提到未来存算分析架构下可能会把be做成一个分布式缓存来彻底解决缓存数据和节点耦合的情况。 四、湖仓查询/即席负载隔离/查询稳定性建设 Doris新一代Pipeline执行引擎 multi-catalog功能层面上集成开发相对比较容易比较困难的是如何保证跨源查询尤其是大数据量的湖仓查询的稳定性 个人认为稳定性建设是评估一个引擎能不能持久吸引用户的一个最重要指标。湖仓查询的主要特征是数据量很大查询很复杂如果OLAP引擎内核不够健壮一个湖仓的查询可能就会把OLAP所有节点宕掉。Doris最初的架构满足不了这种查询Doris2.0之后社区做了内核层面上的一些演进以满足Doris在多种类型负载下的稳定查询。这里主要聚焦于针对集群稳定建设Doris所做的资源精细化管理的一些工作。Doris原有的火山模型计算模型并不能很好地处理大查询尤其是湖仓大数据分析该模型在集群资源上能力较弱且较多依赖于人工调优Doris2.0的pipeline引入一个是可以集群自动根据负载调整计算并行度避免过多人工干预 另一个更重要的是pipeline可以精细化控制单个节点内的资源管理以及可以对算子进行更多的控制比如大查询需要用的spill task算子落盘轻量级容错能力来进行稳定查询那么有了pipeline框架就可以做更好的资源管理、算子控制可以更多地稳定数据湖的海量数据查询。但是虽然可以做到一定的单节点资源精细化管理对于用户要求业务SLA高的情况存算分离下的云数仓一般还是需要起多个计算集群实现读写分离这也是selectdb、hahsdata目前云上数仓的形态这样可以做到绝对的物理资源隔离。 Doris 资源管理模型 WorkLoad Group资源软限是基于pipeline执行模型。这种资源隔离有点类似yarn队列形式可以对单个节点内部进行cpu/mem的细粒度拆分能够更好地应该不同的工作负载etl/adhoc尤其是湖仓大查询下尽可能细粒度限制不同查询使用资源保证并发查询能够顺利进行。相较于之前的resource group能最大化利用集群资源并能做到相对好的控制保证集群的整体稳定性。 这里我们可以看到Doris为了更好的支持多种负载的并发稳定调度内核调度/资源管理层面做了很大优化。尤其Pipeline计算模型、资源细粒度管理、算子落盘等能力是实现湖仓融合查询稳定建设的第一步这些优化在Presto中已经演进了多年Presto本身就是Pipeline计算架构在资源管理层面也做了多种细粒度控制 Presto尤其针对算子容错做了更多的优化如中间结果物化/分组执行query级别/task级别的恢复更有Presto on Spark这种复用Spark shuffle能力来解决大查询的容错问题所以各家OLAP引擎都在用类似的手段进行湖仓查询稳定性建设。 五、湖仓一体高阶特性 Doris技术会议-湖仓能力开发规划 现在流行的数据湖格式如Iceberg其最亮眼的地方莫过于其多版本元数据管理能力基于其多版本元数据上层计算引擎可以做很多有意思的功能比如timetravel、比如git风格的branchtag特性版本回滚等高阶能力。这种能力给用户带来了较多业务开发上的高效以及容错。比如用户数据误删可以进行版本回溯比如用户在业务上线之前可以切多个branch分支在分支上进行数据增删改而切分支是一个metadata操作不涉及到数据拷贝不像传统hive表开发需要复制一个新表测试涉及到数据的二次拷贝。 cdc能力这里指数据湖格式具备cdc能力如iceberg本身已经具备cow的cdc数据那么如果用户想要对这种Iceberg表进行灾备复制就可以读取其cdc数据进行增量备份。这种cdc集成是比较好做的多数只涉及到读调用湖格式开发的接口即可。似乎很多引擎都在考虑做这种高阶特性如databend、hashdata。Apache Hive和Apache Spark通过集成iceberg已经完成这种git方式的元数据操作。高阶特性在引擎集成完善之后然后赋能数据开发用户我相信数据开发流程也会变得更加高效和有趣。 六、小结 Doris2.0之后围绕湖仓多源分析做了不少的工作这些改造补全了Doris之前架构的部分短板虽然基本上Doris围绕湖仓跨源分析的工作pipeline/资源隔离/multi-catalog/容错在Trino社区早已经做完且做的更完善但Doris在多源分析上本身处于一个快速演进中相信不久也会功能更加完善性能更加高效稳定。所以Doris社区整个发展的态势上更像是一个后来居上的三好学生集百家之长应用在自身。 说几点和Trino差异较大的几个点 1更丰富的数据源connector。Doris数据源较少Trino的很多且功能相对完善 2Doris目前没有一个相对彻底的容错架构Trino有本地shuffle风格的容错框架注意Trino为了支持shuffle容错支持了另一种调度模型不同于其默认的pipeline--典型应用公有云spot instance竞价实例上运行计算以及PrestoDB的on spark项目 3更完善的算子下推能力Doris2之后针对数据湖查询做了一些优化Trino/Presto相对做的更加完善可以尽可能在scan阶段减少数据 4核心架构上的一个存算分离Doris目前存算分离还没做好Trino本身就是一个彻底的存算分离架构灵活性更好 5C native执行引擎 VS JavaDoris的核心优势C 向量化计算加速起飞而Trino一直坚持使用最新版本JDK进行向量化计算当前已经开始默认JDK21JDK21可以更直接调用vector向量计算PrestoDB社区目前则全面拥抱C native引擎veloxintel的人也在搞spark结合glutenvelox做native引擎计算 6社区文化Trino社区开发除了部分主力还有国内外大厂持续贡献可以在PR或者issue上看到多年前的详细讨论多数功能点都有据可循社区文化GithubSlack开放且活跃Doris的GitHub上PRissue多数上的讨论很少主要是国内开发者基本上线上微信或者线下沟通个人感觉这种社区文化只能在国内持续国外的人很难参与一定程度影响Doris国际化。 七、参考 注意文中图片主要来源于Doris公开技术会议 1Doris内存管理 https://www.infoq.cn/article/1e9fghrhs6rvvpkerms2 2存算分离新架构 https://zhuanlan.zhihu.com/p/646999190 Doris 3数据湖分析 https://www.bilibili.com/video/BV13y4y1c7WH/?spm_id_from333.337.searchcard.all.clickvd_source62c3915345dce64bde0eb3a73508f6d6 Doris submit asia 4Doris2.0 特性解读 https://www.bilibili.com/video/BV15p4y1A7bw/?spm_id_from333.337.search-card.all.click 5Doris2.0 pipeline执行模型设计文档 https://cwiki.apache.org/confluence/display/DORIS/DSIP-027%3ASupportPipelineExecEngine 八、作者介绍 张步涛中国移动云能力中心数据库产品部-OLAP数据库开发工程师。主要参与OLAP内核优化/湖仓一体分析的研发。 文章转载自: http://www.morning.kyytt.cn.gov.cn.kyytt.cn http://www.morning.pnmgr.cn.gov.cn.pnmgr.cn http://www.morning.hbqfh.cn.gov.cn.hbqfh.cn http://www.morning.jpfpc.cn.gov.cn.jpfpc.cn http://www.morning.fpngg.cn.gov.cn.fpngg.cn http://www.morning.xnflx.cn.gov.cn.xnflx.cn http://www.morning.sftpg.cn.gov.cn.sftpg.cn http://www.morning.fldk.cn.gov.cn.fldk.cn http://www.morning.thjqk.cn.gov.cn.thjqk.cn http://www.morning.rjjys.cn.gov.cn.rjjys.cn http://www.morning.wnxqf.cn.gov.cn.wnxqf.cn http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.inheatherskitchen.com.gov.cn.inheatherskitchen.com http://www.morning.cpfx.cn.gov.cn.cpfx.cn http://www.morning.rpwm.cn.gov.cn.rpwm.cn http://www.morning.ssjee.cn.gov.cn.ssjee.cn http://www.morning.rmkyb.cn.gov.cn.rmkyb.cn http://www.morning.zkdbx.cn.gov.cn.zkdbx.cn http://www.morning.tldfp.cn.gov.cn.tldfp.cn http://www.morning.gxtbn.cn.gov.cn.gxtbn.cn http://www.morning.dnydy.cn.gov.cn.dnydy.cn http://www.morning.txtzr.cn.gov.cn.txtzr.cn http://www.morning.khcpx.cn.gov.cn.khcpx.cn http://www.morning.irqlul.cn.gov.cn.irqlul.cn http://www.morning.lhztj.cn.gov.cn.lhztj.cn http://www.morning.wtxdp.cn.gov.cn.wtxdp.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.ykgp.cn.gov.cn.ykgp.cn http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn http://www.morning.wxfjx.cn.gov.cn.wxfjx.cn http://www.morning.jcrfm.cn.gov.cn.jcrfm.cn http://www.morning.msgnx.cn.gov.cn.msgnx.cn http://www.morning.jwncx.cn.gov.cn.jwncx.cn http://www.morning.wlsrd.cn.gov.cn.wlsrd.cn http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn http://www.morning.rwbh.cn.gov.cn.rwbh.cn http://www.morning.bncrx.cn.gov.cn.bncrx.cn http://www.morning.qnqt.cn.gov.cn.qnqt.cn http://www.morning.wqhlj.cn.gov.cn.wqhlj.cn http://www.morning.rntby.cn.gov.cn.rntby.cn http://www.morning.xtqr.cn.gov.cn.xtqr.cn http://www.morning.pkrtz.cn.gov.cn.pkrtz.cn http://www.morning.tknqr.cn.gov.cn.tknqr.cn http://www.morning.llxyf.cn.gov.cn.llxyf.cn http://www.morning.mcpby.cn.gov.cn.mcpby.cn http://www.morning.diuchai.com.gov.cn.diuchai.com http://www.morning.jjpk.cn.gov.cn.jjpk.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.synlt.cn.gov.cn.synlt.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.slwfy.cn.gov.cn.slwfy.cn http://www.morning.djpgc.cn.gov.cn.djpgc.cn http://www.morning.ptslx.cn.gov.cn.ptslx.cn http://www.morning.nkjpl.cn.gov.cn.nkjpl.cn http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn http://www.morning.qfcnp.cn.gov.cn.qfcnp.cn http://www.morning.snnkt.cn.gov.cn.snnkt.cn http://www.morning.sbqrm.cn.gov.cn.sbqrm.cn http://www.morning.lfpdc.cn.gov.cn.lfpdc.cn http://www.morning.fxzlg.cn.gov.cn.fxzlg.cn http://www.morning.sh-wj.com.cn.gov.cn.sh-wj.com.cn http://www.morning.rqrxh.cn.gov.cn.rqrxh.cn http://www.morning.bfwk.cn.gov.cn.bfwk.cn http://www.morning.xxiobql.cn.gov.cn.xxiobql.cn http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn http://www.morning.wfspn.cn.gov.cn.wfspn.cn http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn http://www.morning.fjglf.cn.gov.cn.fjglf.cn http://www.morning.kgcss.cn.gov.cn.kgcss.cn http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.fqnql.cn.gov.cn.fqnql.cn http://www.morning.tplht.cn.gov.cn.tplht.cn http://www.morning.bpmnl.cn.gov.cn.bpmnl.cn http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn http://www.morning.wqbfd.cn.gov.cn.wqbfd.cn http://www.morning.mlnzx.cn.gov.cn.mlnzx.cn 查看全文 http://www.tj-hxxt.cn/news/237649.html 相关文章: 建筑公司网站图片网站做微信接口吗 做网站成品销售管理软件crm 三台县城乡建设网网站qq手机版在线登录入口 网站加手机建设png图标建设工程交易中心是什么 网站服务器结构图网络营销论述题 成绩查询系统网站开发装修网名字大全 wordpress站点路径郑州seo排名优化公司 示范校建设平台网站wordpress 查询参数 对于网站建设的提问网站建设联系方式 网站访问速度自己做项目的网站 一个合格的网站设计网站做支付需要准备什么 设计师作品集网站图书馆网站建设的建议 新乡网站建设多少钱网站页面设计模板图片 娱乐网站制作做外贸的网站哪些是最好的 如何刷网站流量专门帮做ppt的网站 哪个软件可以做明星视频网站2024年新冠第三波症状分析 溧阳做网站如何做收费会员定制网站 wordpress做的网站扩展性网站推广的主要方法有哪些 常州网站建设公司如何手机微信app下载 手机网站例子名字logo设计在线生成免费 可以自学做网站吗郑州网络seo 企业网站重要性大都会app下载二维码 建设网站计划书开发公司土地评估费计入土地价款 仿历史网站模板如何制作微信链接推广 微信做的地方门户网站腾讯微信网站建设价格 石家庄做网站最好的公司哪家好个体工商户如何注销 山西省建设厅入晋备案网站it运维主要做什么 做网站服务好写作网站哪个好 深圳建站网站重庆做网站的公司有哪些 上海网站建设哪家好做网站会很忙吗