最新要闻
- 里夫斯:我在发声上做得不如詹眉 但高的篮球IQ会帮我提高领导力 世界微资讯
- 微动态丨吉利也来“围攻”比亚迪 银河L7上市定档:1.5T插混能跑1300km
- 官网不停运!亚马逊中国回应7月关闭应用商店:不影响业务运营 天天快播报
- 迎来重磅更新!Win11文件管理器界面UI将整体重做
- 低价游太空梦破碎!维珍轨道破产 三大航空公司瓜分其资产|今日快看
- 双摄像头一览无余!萤石Y3000FVX极光人脸视频锁图赏|世界快资讯
- 【世界播资讯】现场直击|凯瑞特亮相CTT Expo 2023,热度飙升,实力圈粉
- 世界快资讯:Wi-Fi 6都没玩明白 怎么就惦记上Wi-Fi 7了?
- 今日关注:马斯克:已确定特斯拉接班人、自己有意外他将接管公司
- 速递!星巴克家享黑咖啡2.5元/杯大促 原价15元
- 世界微动态丨明天发布!小米Civi 3首发天玑8200-Ultra:能效、影像增强
- 千呼万唤始出来!微软官宣Win11任务栏不合并将回归
- 农发行广西区分行与东兰县签署战略合作协议
- 骆仁童老师主讲《数字经济下电力业转型》课程 | 河北某地热电企业-2023年中高层管理人员培训班(二期)
- 80年代曾风靡全球 乐高为“吃豆人”游戏打造了一款街机 还能玩 焦点快看
- 世界热点评!新能源汽车高歌猛进 5月销量预计大增60% 渗透率超1/3
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Apache Hudi 在袋鼠云数据湖平台的设计与实践
在大数据处理中,实时数据分析是一个重要的需求。随着数据量的不断增长,对于实时分析的挑战也在不断加大,传统的批处理方式已经不能满足实时数据处理的需求,需要一种更加高效的技术来解决这个问题。Apache Hudi(Hadoop Upserts Deletes and Incremental Processing)就是这样一种技术,提供了高效的实时数据仓库管理功能。
【资料图】
本文将介绍袋鼠云基于 Hudi 构建数据湖的整体方案架构及其在实时数据仓库处理方面的特点,并且为大家展示一个使用 Apache Hudi 的简单示例,便于新手上路。
Apache Hudi 介绍
Apache Hudi 是一个开源的数据湖存储系统,可以在 Hadoop 生态系统中提供实时数据仓库处理功能。Hudi 最早由 Uber 开发,后来成为 Apache 顶级项目。
Hudi 主要特性
· 支持快速插入和更新操作,以便在数据仓库中实时处理数据;
· 提供增量查询功能,可有效提高数据分析效率;
· 支持时间点查询,以便查看数据在某一时刻的状态;
· 与 Apache Spark、Hive 等大数据分析工具兼容。
Hudi 架构
Apache Hudi 的架构包括以下几个主要组件:
· Hudi 数据存储:Hudi 数据存储是 Hudi 的核心组件,负责存储数据,数据存储有两种类型:Copy-On-Write(COW)和 Merge-On-Read(MOR);
· Copy-On-Write:COW 存储类型会在对数据进行更新时,创建一个新的数据文件副本,将更新的数据写入副本中,之后,新的数据文件副本会替换原始数据文件;
· Merge-On-Read:MOR 存储类型会在查询时,将更新的数据与原始数据进行合并,这种方式可以减少数据存储的写入延迟,但会增加查询的计算量;
· Hudi 索引:Hudi 索引用于维护数据记录的位置信息,索引有两种类型:内置索引(如 Bloom 过滤器)和外部索引(如 HBase 索引);
· Hudi 查询引擎:Hudi 查询引擎负责处理查询请求,Hudi 支持多种查询引擎,如 Spark SQL、Hive、Presto 等。
Hudi 的使用场景
Apache Hudi 可以帮助企业和组织实现实时数据处理和分析。实时数据处理需要快速地处理和查询数据,同时还需要保证数据的一致性和可靠性。
Apache Hudi 的增量数据处理、ACID 事务性保证、写时合并等技术特性可以帮助企业更好地实现实时数据处理和分析,基于 Hudi 的特性可以在一定程度上在实时数仓的构建过程中承担上下游数据链路的对接(类似 Kafka 的角色)。既能实现增量的数据处理,也能为批流一体的处理提供存储基础。
Hudi 的优势和劣势
● 优势
· 高效处理大规模数据集;
· 支持实时数据更新和查询;
· 实现了增量写入机制,提高了数据访问效率;
· Hudi 可以与流处理管道集成;
· Hudi 提供了时间旅行功能,允许回溯数据的历史版本。
● 劣势
· 在读写数据时需要付出额外的代价;
· 操作比较复杂,需要使用专业的编程语言和工具。
Hudi 在袋鼠云数据湖平台上的实践
Hudi 在袋鼠云数据湖的技术架构
Hudi 在袋鼠云的数据湖平台上主要对数据湖管理提供助力:
· 元数据的接入,让用户可以快速的对表进行管理;
· 数据快速接入,包括对符合条件的原有表数据进行转换,快速搭建数据湖能力;
· 湖表的管理,监控小文件定期进行合并,提升表的查询性能,内在丰富的表操作功能,包括 time travel ,孤儿文件清理,过期快照清理等;
· 索引构建,提供多种索引包括 bloom filter,zorder 等,提升计算引擎的查询性能。
Hudi 使用示例
在介绍了 Hudi 的基本信息和袋鼠云数据湖平台的结构之后,我们来看一个使用示例,替换 Flink 在内存中的 join 过程。
在 Flink 中对多流 join 往往是比较头疼的场景,需要考虑 state ttl 时间设置,设置太小数据经常关联不上,设置太大内存又需要很高才能保留,我们通过 Hudi 的方式来换个思路实现。
● 构建 catalog
public String createCatalog(){ String createCatalog = "CREATE CATALOG hudi_catalog WITH (\n" + " "type" = "hudi",\n" + " "mode" = "hms",\n" + " "default-database" = "default",\n" + " "hive.conf.dir" = "/hive_conf_dir",\n" + " "table.external" = "true"\n" + ")"; return createCatalog;}
● 创建 hudi 表
public String createHudiTable(){ String createTable = "CREATE TABLE if not exists hudi_catalog.flink_db.test_hudi_flink_join_2 (\n" + " id int ,\n" + " name VARCHAR(10),\n" + " age int ,\n" + " address VARCHAR(10),\n" + " dt VARCHAR(10),\n" + " primary key(id) not enforced\n" + ")\n" + "PARTITIONED BY (dt)\n" + "WITH (\n" + " "connector" = "hudi",\n" + " "table.type" = "MERGE_ON_READ",\n" + " "changelog.enabled" = "true",\n" + " "index.type" = "BUCKET",\n" + " "hoodie.bucket.index.num.buckets" = "2",\n" + String.format(" "%s" = "%s",\n", FlinkOptions.PRECOMBINE_FIELD.key(), FlinkOptions.NO_PRE_COMBINE) + " "write.payload.class" = "" + PartialUpdateAvroPayload.class.getName() + ""\n" + ");"; return createTable;}
● 更新 hudi 表的 flink_db.test_hudi_flink_join_2 的 id, name, age, dt 列
01 从 kafka 中读取 topic1
public String createKafkaTable1(){ String kafkaSource1 = "CREATE TABLE source1\n" + "(\n" + " id INT,\n" + " name STRING,\n" + " age INT,\n" + " dt String,\n" + " PROCTIME AS PROCTIME()\n" + ") WITH (\n" + " "connector" = "kafka"\n" + " ,"topic" = "join_topic1"\n" + " ,"properties.bootstrap.servers" = "localhost:9092"\n" + " ,"scan.startup.mode" = "earliest-offset"\n" + " ,"format" = "json"\n" + " ,"json.timestamp-format.standard" = "SQL"\n" + " )"; return kafkaSource1;}
02 从 kafka 中读取 topic2
public String createKafkaTable2(){ String kafkaSource2 = "CREATE TABLE source2\n" + "(\n" + " id INT,\n" + " name STRING,\n" + " address string,\n" + " dt String,\n" + " PROCTIME AS PROCTIME()\n" + ") WITH (\n" + " "connector" = "kafka"\n" + " ,"topic" = "join_topic2"\n" + " ,"properties.bootstrap.servers" = "localhost:9092"\n" + " ,"scan.startup.mode" = "earliest-offset"\n" + " ,"format" = "json"\n" + " ,"json.timestamp-format.standard" = "SQL"\n" + " )"; return kafkaSource2;}
● 执行插入逻辑1
String insertSQL = "insert into hudi_catalog.flink_db.test_hudi_flink_join_2(id,name,age,dt) " + "select id, name,age,dt from source1";
● 通过 spark 查询数据
20230323090605515 20230323090605515_1_186 45 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 45 xc 45 NULL 1
20230323090605515 20230323090605515_1_179 30 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 30 xc 30 NULL 1
● 执行插入逻辑2
String insertSQL = "insert into hudi_catalog.flink_db.test_hudi_flink_join_2(id,name,address,dt) " + "select id, name, address,dt from source2";
● 运行成功
运行成功后在 spark 中查询对应的表数据:
20230323090605515 20230323090605515_1_186 45 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 45 xc 45 xc:address45 1
20230323090605515 20230323090605515_1_179 30 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 30 xc 30 xc:address30 1
可以发现在第二次数据运行之后,表数据的对应字段 address 已经更新,达到了类似在 Flink 中直接执行 join 的效果。
`insert into hudi_catalog.flink_db.test_hudi_flink_join_2
select a.id, a.name, a.age,b.address a.dt from source1 a left join source2 b on a.id = b.id `
《数栈产品白皮书》:https://www.dtstack.com/resources/1004?src=szsm
《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szbky
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack
关键词:
-
Apache Hudi 在袋鼠云数据湖平台的设计与实践
在大数据处理中,[实时数据分析](https: www dtstack com dtengine easylake?src=szsm)是一个重要的需求。
来源: -
CloudQuery v2.0.0 发布 | 新增数据保护、数据变更、连接管理等功能_环球观点
哈喽社区的小伙伴们,经过一个月的努力,CloudQuery社区版发布了全新& 160;**v2 0 0**系列!对比v1 5 0,v2
来源: Apache Hudi 在袋鼠云数据湖平台的设计与实践
CloudQuery v2.0.0 发布 | 新增数据保护、数据变更、连接管理等功能_环球观点
动态:JavaScript基础语法之 || 和 ?? 的踩坑记录
里夫斯:我在发声上做得不如詹眉 但高的篮球IQ会帮我提高领导力 世界微资讯
昆明国资委:“昆明银行口专家路演要点”和《昆明城投专家会议纪要》不实-焦点热门
微动态丨吉利也来“围攻”比亚迪 银河L7上市定档:1.5T插混能跑1300km
官网不停运!亚马逊中国回应7月关闭应用商店:不影响业务运营 天天快播报
迎来重磅更新!Win11文件管理器界面UI将整体重做
低价游太空梦破碎!维珍轨道破产 三大航空公司瓜分其资产|今日快看
双摄像头一览无余!萤石Y3000FVX极光人脸视频锁图赏|世界快资讯
【世界播资讯】现场直击|凯瑞特亮相CTT Expo 2023,热度飙升,实力圈粉
焦点讯息:sipp重放rtp数据测试FreeSWITCH
Algorithm_01--C#递归算法02 每日速看
HTML中的attribute 和 property
世界快资讯:Wi-Fi 6都没玩明白 怎么就惦记上Wi-Fi 7了?
今日关注:马斯克:已确定特斯拉接班人、自己有意外他将接管公司
速递!星巴克家享黑咖啡2.5元/杯大促 原价15元
世界微动态丨明天发布!小米Civi 3首发天玑8200-Ultra:能效、影像增强
千呼万唤始出来!微软官宣Win11任务栏不合并将回归
农发行广西区分行与东兰县签署战略合作协议
苹果MR或将推出 “果链”企业频受调研_环球快消息
骆仁童老师主讲《数字经济下电力业转型》课程 | 河北某地热电企业-2023年中高层管理人员培训班(二期)
80年代曾风靡全球 乐高为“吃豆人”游戏打造了一款街机 还能玩 焦点快看
世界热点评!新能源汽车高歌猛进 5月销量预计大增60% 渗透率超1/3
乌冬面里吃出活青蛙 日本连锁店鞠躬道歉:网友看完大呼恶心|世界热闻
越南打工人不加班逼急中国老板 不为钱放弃生活:全球各国每日工作时间一览-世界快讯
美国债务上限谈判未破僵局 避险美债再获追捧
为什么说人民币汇率不会大起大落-全球快播报
茶叶的故乡是哪里 茶的故乡是哪儿 天天报资讯
史诗级更新!特斯拉2023.12.9 OTA推送:强制单踏板成历史_天天短讯
Win10已死!微软发布Windows 11大更新:引入ChatGPT、升级巨大
《英雄联盟》衍生游戏!《聚点危机:英雄联盟外传》开售:GTX 460爽玩
全面实施国六B 这类汽车将禁止销售 会大幅降价吗?-今日播报
芦荟胶去红血丝效果好吗(芦荟胶对红血丝有效果吗)
焦点!5899元起 索尼新一代超广角变焦Vlog相机ZV-1 II发布
MarkDown的使用(一)
全球动态:宁波海达控股集团有限公司
苹果遭殃!逃税近千亿元-世界要闻
美团登陆香港的第一天 就把外卖价格干下来了! 环球新要闻
【天天时快讯】AMD Zen2架构复活!6nm重生、居然还有2核心2线程
主板卖不动!厂商憋出新招 当前热讯
这就是Intel显卡的意义!Arc A750限量版199美元史低价达成 天天热文
全球热点评!金钱树一次浇多少水_金钱树多久浇一次水
野生海参功效与作用_野生海参
丹丹看天气丨申城明天短时降温 后天重启入夏冲刺
焦点要闻:银行审核房贷一般几天 官方信息这样显示的
小清河6月底全线复航 可实现三种方式运输
审批时限缩短50%!云南省首个外国人才“一站式服务”专区启用
RTX 3070完全不是RTX 4060的对手!差距高下立判 天天速讯
世界讯息:5G芯片本土造!库克:苹果5年投3万亿 毫不动摇扶持美国制造
天天观焦点:OPPO Reno10系列关键参数汇总:全系标配长焦业界罕见
深圳降雨破历史纪录:今明两天广东局地雨势猛烈
FinClip助力房企数字化转型-独家
每日资讯:Graphpad Prism9.5.1 科研医学生物数据处理绘图软件安装教程 (含Win/Mac版)
双良节能(600481.SH)2022年度每股派0.3元 股权登记日为5月29日
迎战RTX 4060 Ti!撼讯AMD RX 6750 XT官降至2799元:性价比神了
网约车出现市场饱和与平台竞争加剧等问题 车辆数量高达230万
越南打工人整顿中国老板 5点半全体员工准时下班
英国一母亲发现10岁女儿偷偷氪金 求助BBC后火速获得退款
随着中国企业实力提升 韩国大宇造船海洋DSME正式更名
电影《长空之王》宣布密钥延期 由演员王一博与胡军主演
丰田首席科学家呼吁不要快过渡到电动车 呼吁给予混合动力车更长的时间
美国硅谷富豪为求抗衰老与永葆青春 与其儿子进行三代人的换血
世界短讯!08-避免Latch的产生
3)选课系统
移动政务服务提升突破口——小程序技术-天天新消息
Meta宣布开源大规模语言模型 可应对多达4000种以上音声语言识别
每日速讯:JDG夺冠故事公开,Ruler曾想过退役,被GEN放弃后,真的很难受
腾讯电竞发文正式官宣亚运征途 共29支国家及地区代表队参与
乐高公开与《吃豆人》的联动积木 将于6月1日正式上市
世界即时看!债务违约警告在耳 “白宫三谈”未破僵局
首发2599元 联想小新台式机上架:12代10核U、1TB大存储-环球新消息
浙江震元:5月12日召开业绩说明会,投资者参与|世界看热讯
2)MySQL表管理之创建删除、约束实施、自增长字段、复制表结构
融合地理信息与智能技术:GIS引领智慧城市的发展潮流_天天热资讯
中金湖北科投光谷REIT将于5月29日询价
《信访工作条例》你了解吗?“十问十答”来挑战! 全球快报
天玑9200+安卓王者 iQOO Neo8 Pro淘汰12G内存:起步就是顶配
iQOO Neo8 Pro亮相:全球首发天玑9200+ 跑分屠榜安卓阵营 全球资讯
你用过么?闲鱼宣布用户数已突破5亿 新要闻
微速讯:行业首发!iQOO Neo8系列搭载穿墙天线簇技术:下载提速30%
当前消息!还能撑多久?威马汽车被强制执行超一千万元
记录--使用率比较低的10个Web API_世界新消息
资讯推荐:《三国志·战略版》侵权《率土之滨》被判赔网易5000万 !不服要上诉
一线经销商们的销售话术 真是把竞品往死里整啊
曝宝马1系停产并取消 X2不再国产!网友:宝马梦没了
旅泰大熊猫“林惠”死因调查结果出炉:多器官功能衰竭
天天观速讯丨2K直屏+120W快充!Redmi K60 Pro宣布降价:2699元起
世界快看:贷款一天200的违约金是多少
PTA1~3次作业总结_lxh
百事通!MetaMask 钱包使用 - Solidity开发教程连载
世界热消息:我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)
每日资讯:商品日报(5月23日):尿素跌超4%领跌商品市场 菜粕创近三个月新高
目前负债1000万的都进来大家都是因为什么_现在生活状态如何|环球即时
焦点速递!阿里云被曝裁员:整体优化比例约7%
天天热资讯!Win11 2024新预览版25370发布:性能提升更好用了
一加和友商都在搞“旗舰普及” 有何区别?李杰回应 世界观天下
世界快资讯:领先AMD!Intel FPGA首发支持PCIe 5.0和CXL 2.0:性能、带宽大幅提升
月销量将再创纪录!理想5月第三周狂卖0.71万辆:真遥遥领先
RocketMQ 在小米的多场景灾备实践案例 每日消息