生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

字节跳动基于Doris的湖仓分析探索实践

8月8日 失了心投稿
  导读:Doris是一种MPP架构的分析型数据库,主要面向多维分析、数据报表、用户画像分析等场景。自带分析引擎和存储引擎,支持向量化执行引擎,不依赖其他组件,兼容MySQL协议。
  01hrDoris简介
  ApacheDoris具备以下几个特点:良好的架构设计,支持高并发低延时的查询服务,支持高吞吐量的交互式分析。多FE均可对外提供服务,并发增加时,线性扩充FE和BE即可支持高并发的查询请求。支持批量数据load和流式数据load,支持数据更新。支持UpdateDelete语法,uniqueaggregate数据模型,支持动态更新数据,实时更新聚合指标。提供了高可用,容错处理,高扩展的企业级特性。FELeader错误异常,FEFollower秒级切换为新Leader继续对外提供服务。支持聚合表和物化视图。多种数据模型,支持aggregate,replace等多种数据模型,支持创建rollup表,支持创建物化视图。rollup表和物化视图支持动态更新,无需用户手动处理。MySQL协议兼容,支持直接使用MySQL客户端连接,非常易用的数据应用对接。
  Doris由Frontend(以下简称FE)和Backend(以下简称BE)组成,其中FE负责接受用户请求、编译、优化、分发执行计划、元数据管理、BE节点的管理等功能,BE负责执行由FE下发的执行计划,存储和管理用户数据。
  02hr数据湖格式Hudi简介
  Hudi是下一代流式数据湖平台,为数据湖提供了表格式管理的能力,提供事务,ACID,MVCC,数据更新删除,增量数据读取等功能。支持Spark,Flink,Presto,Trino等多种计算引擎。
  Hudi根据数据更新时行为不同分为两种表类型:
  针对Hudi的两种表格式,存在3种不同的查询类型:
  03hrDoris分析Hudi数据的技术背景
  在数仓业务中,随着业务对数据实时性的要求越来越高,T1数仓业务逐渐往小时级、分钟级,甚至秒级演进。实时数仓的应用也越来越广,也经历了多个发展阶段。目前存在着多种解决方案。
  1。Lambda架构
  Lambda将数据处理流分为在线分析和离线分析两条不同的处理路径,两条路径互相独立,互不影响。
  离线分析处理T1数据,使用HiveSpark处理大数据量,不可变数据,数据一般存储在HDFS等系统上。如果遇到数据更新,需要overwrite整张表或整个分区,成本比较高。
  在线分析处理实时数据,使用FlinkSparkStreaming处理流式数据,分析处理秒级或分钟级流式数据,数据保存在Kafka或定期(分钟级)保存到HDFS中。
  该套方案存在以下缺点:同一套指标可能需要开发两份代码来进行在线分析和离线分析,维护复杂。数据应用查询指标时可能需要同时查询离线数据和在线数据,开发复杂。同时部署批处理和流式计算两套引擎,运维复杂。数据更新需要overwrite整张表或分区,成本高。
  2。Kappa架构
  随着在线分析业务越来越多,Lambda架构的弊端就越来越明显,增加一个指标需要在线离线分别开发,维护困难,离线指标可能和在线指标对不齐,部署复杂,组件繁多。于是Kappa架构应运而生。
  Kappa架构使用一套架构处理在线数据和离线数据,使用同一套引擎同时处理在线和离线数据,数据存储在消息队列上。
  Kappa架构也有一定的局限:流式计算引擎批处理能力较弱,处理大数据量性能较弱。数据存储使用消息队列,消息队列对数据存储有有效性限制,历史数据无法回溯。数据时序可能乱序,可能对部分在时序要求方面比较严格的应用造成数据错误。数据应用需要从消息队列中取数,需要开发适配接口,开发复杂。
  3。基于数据湖的实时数仓
  针对Lambda架构和Kappa架构的缺陷,业界基于数据湖开发了Iceberg,Hudi,DeltaLake这些数据湖技术,使得数仓支持ACID,UpdateDelete,数据TimeTravel,SchemaEvolution等特性,使得数仓的时效性从小时级提升到分钟级,数据更新也支持部分更新,大大提高了数据更新的性能。兼具流式计算的实时性和批计算的吞吐量,支持的是近实时的场景。
  以上方案中其中基于数据湖的应用最广,但数据湖模式无法支撑更高的秒级实时性,也无法直接对外提供数据服务,需要搭建其他的数据服务组件,系统较为复杂。基于此背景下,部分业务开始使用Doris来承接,业务数据分析师需要对Doris与Hudi中的数据进行联邦分析,此外在Doris对外提供数据服务时既要能查询Doris中数据,也要能加速查询离线业务中的数据湖数据,因此我们开发了Doris访问数据湖Hudi中数据的特性。
  04hrDoris分析Hudi数据的设计原理
  基于以上背景,我们设计了ApacheDoris中查询数据湖格式Hudi数据,因Hudi生态为java语言,而ApacheDoris的执行节点BE为C环境,C无法直接调用HudijavaSDK,针对这一点,我们有三种解决方案。
  实现HudiCclient,在BE中直接调用HudiCclient去读写Hudi表。
  该方案需要完整实现一套HudiCclient,开发周期较长,后期Hudi行为变更需要同步修改HudiCclient,维护较为困难。
  BE通过thrift协议发送读写请求至Broker,由Broker调用Hudijavaclient读取Hudi表。
  该方案需要在Broker中增加读写Hudi数据的功能,目前Broker定位仅为fs的操作接口,引入Hudi打破了Broker的定位。第二,数据需要在BE和Broker之间传输,性能较低。
  在BE中使用JNI创建JVM,加载Hudijavaclient去读写Hudi表。
  该方案需要在BE进程中维护JVM,有JVM调用Hudijavaclient对Hudi进行读写。读写逻辑使用Hudi社区java实现,可以维护与社区同步;同时数据在同一个进程中进行处理,性能较高。但需要在BE维护一个JVM,管理较为复杂。
  使用BEarrowparquetcapi读取hudiparquetbasefile,hudi表中的deltafile暂不处理。
  该方案可以由BE直接读取hudi表的parquet文件,性能最高。但当前不支持basefile和deltafile的合并读取,因此仅支持COW表SnapshotQueries和MOR表的ReadOptimizedQueries,不支持IncrementalQueries。
  综上,我们选择方案四,第一期实现了COW表SnapshotQueries和MOR表的ReadOptimizedQueries,后面联合Hudi社区开发basefile和deltafile合并读取的C接口。
  05hrDoris分析Hudi数据的技术实现
  Doris中查询分析Hudi外表使用步骤非常简单。
  1。创建Hudi外表
  建表时指定engine为Hudi,同时指定Hudi外表的相关信息,如hivemetastoreuri,在hivemetastore中的database和table名字等。
  建表仅仅在Doris的元数据中增加一张表,无任何数据移动。
  建表时支持指定全部或部分hudischema,也支持不指定schema创建hudi外表。指定schema时必须与hiveMetaStore中hudi表的列名,类型一致。
  Example:PlaintextCREATETABLEexampledb。thudiENGINEHUDIPROPERTIES(hudi。databasehudidb,hudi。tablehuditable,hudi。hive。metastore。uristhrift:127。0。0。1:9083);CREATETABLEexampledb。thudi(column1int,column2string)ENGINEHUDIPROPERTIES(hudi。databasehudidb,hudi。tablehuditable,hudi。hive。metastore。uristhrift:127。0。0。1:9083);
  2。查询Hudi外表
  查询Hudi数据表时,FE在analazy阶段会查询元数据获取到Hudi外表的的hivemetastore地址,从Hivemetastore中获取hudi表的schema信息与文件路径。获取hudi表的数据地址。FE规划fragment增加HudiScanNode。HudiScanNode中获取Huditable对应的datafile文件列表。根据Huditable获取的datafile列表生成scanRange。下发HudiScan任务至BE节点。BE节点根据HudiScanNode指定的Hudi外表文件路径调用nativeparquetreader进行数据读取。
  06hr后期规划
  目前ApcheDoris查询Hudi表已合入社区,当前已支持COW表的SnapshotQuery,支持MOR表的ReadOptimizedQuery。对MOR表的SnapshotQuery暂时还未支持,流式场景中的IncrementalQuery也没有支持。
  后续还有几项工作需要处理,我们和社区也在积极合作进行中:MOR表的SnapshotQuery。MOR表实时读需要合并读取Datafile与对应的Deltafile,BE需要支持DeltafileAVRO格式的读取,需要增加avro的native读取方式。COWMOR表的IncrementalQuery。支持实时业务中的增量读取。BE读取Hudibasefile和deltafile的native接口。目前BE读取Hudi数据时,仅能读取datafile,使用的是parquet的CSDK。后期我们和联合Hudi社区提供Huidbasefile和deltafile的CRust等语言的读取接口,在DorisBE中直接使用native接口来查询Hudi数据。
  今天的分享就到这里,谢谢大家。
  阅读更多技术干货文章、下载讲师PPT,请关注微信公众号DataFunTalk。
  分享嘉宾:杜军令字节跳动大数据工程师
  出品平台:DataFunTalk
  01分享嘉宾
  杜军令字节跳动数据平台大数据工程师
  十年大数据经验,多年Spark,Presto开发工作,目前负责ApacheDoris优化。
  02报名看直播免费领PPT
  03关于我们
  DataFun:专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100线下和100线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号DataFunTalk累计生产原创文章700,百万阅读,14万精准粉丝。
  欢迎转载分享评论,转载请私信。
投诉 评论

就在刚刚,通航!从河北坐船去北京,沿途景色美如画好消息!好消息!京杭大运河京冀段通航了!以后可以坐船去北京啦6月24日上午,京杭大运河北京段、河北段联合举行京冀游船通航仪式,随着来自通州和香河的船只相向缓缓……在家也能做出美味鸡排,这几个步骤不能做错从小孩到大人都喜欢吃炸鸡排,可是外面卖的鸡排价格比较昂贵。去超市看一眼冷鲜鸡胸肉的价格,一下子就让人心动起来了,在家做炸鸡排分外便宜,而且自行用料更为放心。下面就给大家介绍一下……八道特色招牌菜,值得收藏歪嘴土黄鳝制作:1。把土鳝鱼宰杀并去骨治净后,改刀成5厘米长的段;另把青小米椒一剖成两半。2。净锅上火,放适量菜油和少量的化猪油烧热后,下姜米、豆瓣酱和干青花……字节跳动基于Doris的湖仓分析探索实践导读:Doris是一种MPP架构的分析型数据库,主要面向多维分析、数据报表、用户画像分析等场景。自带分析引擎和存储引擎,支持向量化执行引擎,不依赖其他组件,兼容MySQL协议。……中国著名理由景点介绍1、桂林理由:桂林地区属岩溶地貌,这些特殊的地貌与景象万千的漓江及其周围美丽迷人的田园风光融为一体,形成了独具一格、驰名中外的山清、水秀、洞奇、石美的桂林山水。这时的山,……人生智慧,心情不好的时候多看看这10句话思维破局,一针见血!在你有心情不好的时候不要做任何决定,情绪负面的时候说话越少越好。想不明白的问题就不要去想了,不要把所有的感情都放在一个人身上,你还有父母,家人,……汉中也有一大片兵马俑,惟妙惟肖存在近20年啦没想到吧,在陕西西安三百多公里外的汉中也有一大片兵马俑,而且已经存在了近20年啦。而且惟妙惟肖,和西安兵马俑几乎是一般大小,足以以假乱真。这就是位于汉中市汉台区宗营镇秦巴民俗村……他曾是广州队四小天鹅之一,如今转投河南队,在航体进球滑跪庆祝刚刚结束的中超第11轮比赛,河南嵩山龙门时隔980天重回主场航海体育场,以30完胜北京国安。多拉多、卡兰加两位巴西双煞在比赛的开头和结尾分别各中一元,这对于河南队来说,就是常规……到朝鲜旅游是怎样的体验?10块钱可以让你吃到撑,让人难以置信想象一下,十块钱,在国内可以买什么呢?恐怕一顿早饭都稍嫌不够,毕竟一碗面条都要七八块起步,吃得多的人还要在买些烧饼包子之类,十块完全打不住。(此处已添加小程序,请到今日头……抖音,快手腾讯再战,搜索的战争还有得打文华商韬略程锦当年360、搜狗都没攻下的搜索,今天有了新可能。搜索大战,是互联网巨头一直想要攻下的领域。360、搜狗都曾觊觎百度的市场,然后却无人真正撼动百度的地位……加盟勇士!成金州唯一引援,顶悍将空缺,你望在库里身边发光发热虽然因为杜兰特的交易受到了一定的影响,不过这也不妨碍大多数的自由球员签约。然而,热闹都是属于别人的,这些都和勇士无关。在自由球员市场开启一周过去之后,勇士只是和迪文琴佐达成了签……下赛季恐成黑马的六支球队,快船卷土重来,火箭一鸣惊人群雄逐鹿!在瞬息万变的NBA舞台上从没有一成不变的强者。即使强如三连霸的公牛以及两连冠的热火,都因各种客观因素长埋时间的长河之中。在物欲横流的商业联盟,抱团取暖已成为大势……
最值得买的3款手机,搭载骁龙8Gen1,闭着眼选就行了Theshy正式加入WBG战队!网友十年老粉不请自来外国人来中国旅游,颠覆西方媒体口中的恶意描述比想象的好太多易建联有望再成票王,辽篮或包揽全明星首发,福建无缘双状元组合开心麻花演员现状,旱的旱死,涝的涝死,还有几个在坚持初心?中国青年应该有的样子光环的背后,是血泪交加的坚韧和顽强天才也不例外这三个时间段吃苹果,减肥功效或会翻倍,看看你吃对了吗?45岁男子,睡觉时猝死离世!提醒中老年人睡觉前,要少做三件事青少年免费参观故宫这事儿可以多安排说说乒乓球运动员那些奇葩习惯高血压患者用盐须知靠谱的最高境界事不拖,话不多,人不作婴儿听力筛查不过原因以致母亲为题的作文高通骁龙778G5GSoC,为智能手机提供了高达16GB的L造就造句用造就造句大全学生会生活部学期工作总结2019年底换什么手机划算年底买手机贵还是便宜彩虹搬家怎么去鱼尾纹盘点最有效的去鱼尾纹的方法我的袖珍同学作文三大华语电影导演转战电视剧,两位首次,一位时隔25年,你看好今年去卡塔尔看世界杯?在沙特阿拉伯多住几日丰富你的中东之旅

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找