范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

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

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

鸿蒙OS换成了EMUI12,华为P50Pro即将亮相海外,依旧不支持5G今年7月底,华为发布了P50系列机型,原本作为华为的旗舰产品线,P50的登场备受花粉关注,但很可惜由于芯片备货方面的问题,华为只能让P50普通版搭载高通的骁龙处理器,并且全系都不支未能找到下家!Smlz宣布春季赛将休息,感慨转会期被不断拉扯LPL冬季转会期将于12月13日正式关闭,虽然大多数队伍还没有官宣新赛季阵容,但目前各队阵容已经完全敲定,不出意外将于明后两天陆续公布。而在这次休赛期中,不少队伍都在积极引援补强阵Dota2Zard即将取代YYF成为刀圈话事人?水友还差了点火候哈喽大家好,这里是蜻蜓队长Zwj。随着Dota101和TheInternet互联网邀请赛的大热,作为这两个节目创办人的Zard也是成为了咱们Dota圈各大论坛内的经验包了。再加上Z没良心炮吓坏英国士兵,海盗游戏ATLAS移动炮队横行霸道在抗美援朝期间,我军的装备和美军有很大差距,直到第五次战役前后,志愿军的装备才有所改善。换言之,穷则思变,正因为我军装备较差,所以战士们常常别出心裁,针对实际情况,研究出新式战术和正是孩子咳嗽高发期,中医治疗有妙招前面我们介绍过孩子感冒咳嗽反复发作,可能和脾虚食积有关。这类小朋友多兼有食积表现,如脘腹胀满,不思饮食,呕吐酸腐,口气秽浊,大便酸臭,或腹痛泄泻,或大便秘结,舌苔厚腻等。这种情况,牧人多杰打造的鸟类净土泽曲湿地中的鸟儿轻快地掠过水面。摄影姚斌公保安加青海新闻网大美青海客户端讯10月20日上午,不期而至的一场大雪覆盖了牧野,泽曲大地一片雪覆冰封。70岁的老牧人多杰,如每一个平常的日改善耳聋耳鸣,从3个方面入手小编导读听力损害耳聋耳鸣,这些曾经和老年人绑定的疾病症状,现在却呈现出年轻化趋势。入耳式耳机的高频使用压力生活不规律高血压这些都是耳聋耳鸣的诱因。耳聋耳鸣给患者的生活带来较大的困扰秦皇岛四大怪,你知道都是啥吗?我们团的导游叫小陈,她介绍说秦皇岛共四个区,北戴河区海港区山海关区,还有个抚宁区,主要以造船玻璃港口运输业为主,每年的暑假期间是这里旅游的黄金季节。但秦皇岛常住人口并不多,北戴河区川藏线上,为什么拒载穷游女?司机她们太折腾如今人们的生活好了,业余生活的形式也多种多样起来,旅游是大家普遍认可的事情,闲暇时间,约上三五好友,出门游玩一番,相信是很多人理想中的生活。曾经出门旅游,一般都会选择跟团游,既省心第一次和女朋友出去旅游应该开几个房间?2021。12。10资深渣男来帮你分析这件事情。就题主的问题来讲,在我看来是还没完全拿下。个人建议是,完全拿下以后再出去旅游。因为有有些女孩是以恋爱的名义免费骗玩的。如果你非常确定中老年人注意了!冬季脑梗死高发,这4招很关键冬季是一年中最寒冷的季节,气温往往忽冷忽热,飘忽不定,很容易让人生病,而且冬季也是最容易引发中风的季节,尤其对中老年人来说,危险性非常高,需要引起足够的重视。为什么冬季会成为中老年
CBA辽宁VS浙江稠州勤能补拙是良训,一分辛苦一分才CBA第十四轮重头戏,领头羊浙江稠州,迎战强敌辽宁,赛前杨鸣指导已经盛赞过浙江,认为浙江实力强于广东和辽宁,可以说杨鸣指导很谦虚,但以目前浙江稠州的阵容厚度和外援状态,辽宁确实是被维密天使颜值气质和才华,哪个可以让超模脱颖而出维密秀时尚表演真的是令人震撼,节奏感超强的音乐旋律,霓虹闪烁的灯光渲染,拥有近乎完美身材且颜值气质俱佳的超模走秀,网友们直呼简直是一场精彩的视觉盛宴。对于维密秀的模特来说,颜值气质阳了不舒服吃什么?建议多吃这3样,爽口开胃,润肺去燥导语阳了不舒服吃什么?建议多吃这3样,爽口开胃,润肺去燥如今疫情放开,可以自由进出任何地方,但是我们还不能太大意,出门时依然要戴好口罩,做好个人防护,增加体育锻炼,合理搭配饮食,提安卓百元好手机手机是我们的必须品,有一些学生党等人员因为预算有限所以只能买一此很不行的手机,那么如何用几百,千元买一台好手机300400多索尼xz1骁龙835吃鸡可开极限拍照还可以。索尼xz2骁别穿运动鞋了,烂大街还显土!今年流行毛绒鞋,舒适保暖还百搭鞋子搭配一直是我们穿搭的最后一个环节,当然我认为也是穿搭最重要的环节,这是因为时尚感来源于细节,也毁于细节。但是你仔细观察一下你的鞋柜,发现是不是大部分都是运动鞋?不是说运动鞋不好小朋友阳了,除了吃药,还需要怎么办呢?两岁的小朋友得了新冠,一位妈妈跟大夫交流的信息也许能解开大多数妈妈疑惑。一。传染范围基本上每天都是一家一家的传染,如果父母都阳了,孩子高烧,抗原也没有必要做了,百分之99的可能也阳基围虾的多种吃法之蒜蓉基围虾民以食为天,美食做法各有不同,比如说虾的做法千千万,有油炸,清蒸,水煮,烧烤,生腌等做法,而我最爱的就是蒜蓉香辣虾啦,肉质紧实,蒜香味浓郁而且香辣入味,一口一个停不下来!有一段时间跟着78岁爷爷吃黑豆,3种吃法补气养身,省钱还简单,建议解孙爷爷马上80岁,在这个应该安享晚年生活的年纪,他和许多老人不同,不光自己身体倍棒胃口好,而且闲来无事还喜欢研究饮食,每天变着花样的做点吃的,给自己补身体的同时,也能帮助改正孙女改猪的各部位肉吃法大全,快快收藏学起来猪猪哪里最好吃这篇帖子涨知识年关将至,各位宝子们开始准备年货了吗?色色R色色R色色R嘎猪肉腌腊肉装香肠肥肉or瘦肉其实挑选猪肉也很有讲究厨房扫盲课一文了解不同部位的猪肉区别前腿肉灵高蛋白食品紧俏?不用去抢牛奶鸡蛋,试试火腿也不错当下,高蛋白高营养的食品对于消费者而言十分重要。有这样一种食物,它易于保存,又富含蛋白质,味道鲜美还凝聚着千年传承的工艺,它就是火腿。一条火腿,既可以切下几片与时令蔬菜熬煮,制成美终于有人用AIGC干正事了设计蛋白质生物学家的梦想定制化生成蛋白质。AIGC的能力惊艳了所有人,背后的技术扩散模型,也启发了生物学家。而当生物学家将这项技术为己所用,就带来了技术升级更准确地设计全新的从来不存在的蛋白