最新要闻
- PCIe 5.0 SSD终于满血了!读写都是14GB/s、容量8TB
- 热消息:蔚来遭遇225万美元数据勒索 官方声明
- 当前讯息:铃木“大G”!吉姆尼五门版无伪谍照:最多能塞进7个人
- 奇迹!女子手机从26楼掉落未摔坏 真身竟是这款手机
- 5499元 联合创新推出新款32英寸显示器:4K MiniLED屏、144Hz高刷
- “非洲之王”拥抱新技术:传音首台折叠屏手机已通过蓝牙SIG认证
- 天天短讯!世界北极熊之都升温过快 已危及北极熊生存:吃不上饭了
- 即时看!1月1日起:澳门私家车可经港珠澳大桥出入内地
- 观速讯丨巡游大巴太高 梅西险些撞上电缆!他带回阿根廷的大力神杯居然是复制品
- 天天短讯!中国联通科技人才占比已达30% 曾发话不能再用老眼光看电信行业
- 空难曾致346人死亡 波音737 Max飞机延期采用最新安全标准
- 每日观察!广州多个外卖平台下单后配送慢 平台:员工已是全负荷工作
- 热消息:Intel第二代独立显卡1年后见:要追上RTX 4070!
- 主页不刷新了 小红书崩了累坏网友:WiFi、流量疯狂切换
- 罗永浩称他的失败不是理想主义的错 是他们自己的错
- 世界热讯:吴京《流浪地球2》吃苹果皮:大年初一上映
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
每日播报!Iceberg在袋鼠云的探索及实践
“数据湖”、“湖仓一体”及“流批一体”等概念,是近年来大数据领域热度最高的词汇,在各大互联网公司掀起了一波波的热潮,各家公司纷纷推出了自己的技术方案,其中作为全链路数字化技术与服务提供商的袋鼠云,在探索数据湖架构的早期,就调研并选用了Iceberg作为基础框架,在落地过程中深度使用了Iceberg并进行了部分改造,在这个过程中,我们积累出了一些经验和探索实践,希望通过本篇文章与大家分享,也欢迎大家一起共同讨论。
一、为什么选择Iceberg
Iceberg作为Apache基金会下的一个顶级项目,是业界公认的开源数据湖实现方案之一,考虑到任何概念的提出本质上是源于底层软硬件技术或架构上取得了新的突破,我们首先站在技术演进的角度对Iceberg的出现契机和应用场景进行分析。
(资料图)
01 大数据存储技术现状
2006年Hadoop框架横空出世,改变了企业对数据的存储、处理和分析的认知,加速了大数据的发展,形成了完善的生态圈。工程师们将庞杂的历史数据存在分布式文件系统HDFS中,通过Hive、Spark等进行加速计算处理。至今为止,HDFS已然成为广泛应用的大数据基础组件。
在这个大数据技术发展过程中,也面临着一些问题。在Hive中,将表绑定为HDFS上的一个目录,通过HiveMetaStore记录其绑定的存储位置,计算引擎查询数据时请求主节点获取文件并读取,这天然缺少事务保证:某个用户写入的文件其他用户立即可见,没有隔离性;即便先写入到隐藏文件中,待事务提交后再全部改名可见,因为一批文件的改名不是原子操作,这只能保证分区级别的原子性。随着对象存储的广泛应用,通过主节点去获取全部文件有比较大的性能损耗,因为对象存储的“List”性能较差。
经过以上分析,我们发现Hive中这种设计的缺陷在于缺乏对表数据文件的管理维护:对于表中不同时刻包含的数据文件,都要即时访问HDFS主节点获取,这样子就造成了比较大的资源浪费。
而数据湖却能很好的解决这一问题,数据湖是一个集中各种形式和来源数据的存储区域,存储内容虽然种类繁多却管理有序,对数据文件的组织维护能够高效地帮助我们对接各类底层存储和上层计算。
02 数据湖技术选型——Iceberg
我们知道问题的关键在于“对表数据文件的管理维护”,基于此就可以开展技术选型了。在2020年末,技术团队做了众多技术方案的调研,包括包括Delta Lake、Hudi、Iceberg,我们最终选用了Iceberg。
而选择Iceberg的原因,正是基于袋鼠云的技术栈的具体情况做了充足考虑:袋鼠云中的离线计算、实时计算、智能标签等应用,在计算层需要依托Spark、Flink、Trino等多种引擎为客户解决不同的业务诉求,在底层则可能需要对接客户自建云、公有云等混合存储。这就要求所选择的技术方案必须能满足对接多种类型的需求。
Iceberg具备接口开放、易于拓展的优点,十分符合我们的选型要求。在存储层HDFS上增加一个中间层Iceberg以跟踪数据文件,不必改变其他层的架构设计,就可以享受到Iceberg对数据文件管理带来的极速体验与美妙特性。下图展示了袋鼠云基于Iceberg框架的数据湖架构设计:
基于前述关键点,我们介绍下Iceberg的设计,参考下图所示:
Iceberg在数据文件的基础上增加了文件清单和文件快照等索引,通过这些索引我们就能跟踪到每张表在当前时刻有哪些数据文件,这就解决了前文提到的Hive中的设计缺陷:某个用户写入的临时文件不会被其他用户读取到,因为这些文件没有被快照记录;每个事务修改跟踪的数据文件时,需要向锁服务进行申请,成功获取到锁许可之后可以更新快照内容,一次快照修改可以增加多个文件,这样就保证原子性;预先记录好目录下的每个数据文件可以避免对HDFS主节点的多次访问,对云存储友好。
二、Iceberg在袋鼠云中的应用实践
01 行级更新
在Hive中想要对历史数据进行订正,需要用增量数据合并历史数据后替换历史数据,这种方式的代价是比较大的,即便是很少的更新也需要对全表或者整个分区进行扫描。
利用Iceberg这种合并和覆写可以被推迟,如下图所示:
在Iceberg中,可以写入一份标记删除的数据文件并再写入更新后的数据文件,这样的好处是订正历史数据时用户在数栈平台的操作等待时间会很短,在查询的时候再对这个标记删除文件中的数据进行更新,准确查找到更新之后的数据。而实际对数据文件内容合并的耗时操作推迟在用户休息的时候,保证了后续操作的性能。
02 查询加速
在HDFS上,数据文件通常采用Parquet、ORC等存储格式,这些存储格式中记录了诸如列最大值/最小值/空值等详细的元数据信息,因此在进行查询的过程中,Iceberg充分利用了存储格式提供的元数据信息进行文件过滤。
用户在数栈平台写入数据时,在文件清单中汇总了每个文件中保存数据每一列的最大值/最小值/空值信息。在查询数据时,对查询条件和汇总信息进行交集判断,对于没有交集的文件就不需要再去读取了,这样就能够极大的减少需要读取的文件数量。
考虑到数据文件的分布是在写入时决定的,在写入数据顺序不规律的情况下,文件中的最大值/最小值范围跨度会很大,这样并集判断过滤的效果就没有那么明显了,这时候在数栈平台上按照一定规则对数据进行重排列,使得具有相似特征的数据落入到同一个数据文件里,这样提取出来的最大值/最小值信息就会在更接近的范围里,查询过滤性能会有更大提升。
03 自动治理
在Iceberg的写入过程中,为了支持快速写入和数据跟踪等功能,其代价是会在每次操作引入不同数量的小文件,这些小文件会随着时间的前进而不断拖延系统的效率,必须要通过合并操作进行删除才能继续保证系统的高效。
Iceberg本身提供了文件合并、快照清理等工具,但这需要用户手动去启动任务才能触发,对于使用者来说是额外心智负担。
如上图所示,袋鼠云在产品设计上为用户屏蔽了这种运维上的复杂度,用户只需要对表进行基本参数的设置就可以享受新框架优化后带来的快速和便捷,而更复杂的文件治理任务的启动和资源配置都交由后台程序监控完成。
三、袋鼠云基于Iceberg的改造
除了对Iceberg本身提供的能力进行应用,袋鼠云还根据生产场景的要求对Iceberg做了一定的改造。
01 列更新
在袋鼠云标签引擎中经常有需要根据原子指标生成派生指标的场景,在后台程序中就是为一张大宽表增加新的字段并且填入数据。在过去,我们依赖OverWrite操作在HDFS上重写新的表数据,然而这种操作都需要将全部字段数据进行写入,非常消耗存储和时间的(想象一下一张表有几百个字段,每次都需要重新写入)。
基于Iceberg袋鼠云设计了一种优化方案,如上图所示:保留原来的数据文件,列更新时将新的字段数据和表的主键字段数据一起写入到新的数据文件。这样,在写入过程中需要写入的数据量就大大减少了,而在读取过程中,再将新字段和原有的字段做一次合并,这样就能够保证数据的准确性。同时我们还会在查询时只读取包含查询字段的文件以提高查询性能。
当然,在多次添加新字段之后,每次查询中包含的合并操作就多了,性能就会随之下降,这就需要结合前述的文件合并功能,定时进行数据合并,这样更新累计的副作用就可以消除了。
02 批流一体
批流一体在存储上要解决的很重要的问题是:离线数仓依赖HDFS存储,HDFS能够提供大规模的存储,成本低廉,然而其实时性比较差;实时数仓依赖Kafka存储,Kafka能够存储的数据量有限,但是能够提供非常好的实时性。两条技术链路带来了理解和使用上的困难,能否提供统一的存储是批流一体架构落地的关键。
在袋鼠云中,我们提出了一种基于Iceberg的屏蔽能力,构建的针对这两种组件的统一存储方案:底层存储混合使用Iceberg和Kafka,但对使用者只暴露一张完整的数据表,在Iceberg中记录Kafka的切换位点(偏移量),读取时根据当前数据的时间信息选择读取Kafka或者Iceberg数据源。如下图所示:
具体步骤有:
1)在创建表时,设置Iceberg存储和Kafka存储相关的元数据信息。
2)写入数据时,向两种存储介质一起写入。在Iceberg每次生成新快照时,将最后一条数据对应的Kafka偏移量写入快照信息里。用户可以选择性开始Kafka事务保证。
3)读取数据时,在最近一段时间内的数据都通过Kafka进行消费,在读取完Kafka的数据后根据偏移量切换到对Iceberg记录的HDFS文件进行访问,读取历史数据。
这样就能符合了袋鼠云用户使用不同处理速度去处理不同阶段数据的需求。
四、写在最后
以上就是袋鼠云基于Iceberg在数据湖的一些探索和实践,目前这种框架已应用于我们的数据湖产品DataLake——提供面向湖仓一体的数据湖管理分析服务。基于统一的元数据抽象构建一致性的数据访问,提供海量数据的存储管理和实时分析处理能力,可以帮助企业快速构建湖仓一体化平台,完成数字化基础建设。
未来我们还会对数据湖和湖仓一体架构做更多的探索和应用,敬请期待。
欢迎大家了解或咨询更多有关数据湖产品的信息想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szbky
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack
-
每日关注!hibernate validate工具,小心你的姿势不对
问题出在validatorFactory和validator这两个局部对象的初始化上。尤其是初始化validatorFactory调用Validation buildDefaultValid
来源: 每日播报!Iceberg在袋鼠云的探索及实践
每日关注!hibernate validate工具,小心你的姿势不对
PCIe 5.0 SSD终于满血了!读写都是14GB/s、容量8TB
热消息:蔚来遭遇225万美元数据勒索 官方声明
当前讯息:铃木“大G”!吉姆尼五门版无伪谍照:最多能塞进7个人
奇迹!女子手机从26楼掉落未摔坏 真身竟是这款手机
5499元 联合创新推出新款32英寸显示器:4K MiniLED屏、144Hz高刷
“非洲之王”拥抱新技术:传音首台折叠屏手机已通过蓝牙SIG认证
天天短讯!世界北极熊之都升温过快 已危及北极熊生存:吃不上饭了
天天热资讯!深度学习炼丹-数据处理和增强
世界热门:记录--可视化大屏-用threejs撸一个3d中国地图
Python操作Excel(openpyxl)
全球热点评!Html5 canvas创意特效合集
即时看!1月1日起:澳门私家车可经港珠澳大桥出入内地
观速讯丨巡游大巴太高 梅西险些撞上电缆!他带回阿根廷的大力神杯居然是复制品
天天短讯!中国联通科技人才占比已达30% 曾发话不能再用老眼光看电信行业
空难曾致346人死亡 波音737 Max飞机延期采用最新安全标准
每日观察!广州多个外卖平台下单后配送慢 平台:员工已是全负荷工作
世界视讯!数据结构堆(Heap)&排序&二叉树
今日播报!用好这个任务管理工具,轻松躲避职场明枪暗箭
世界今日报丨彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-登录与图形验证码(captcha)EP06
今日热闻!低代码:如何成为企业业务价值提升的一大利器?
热消息:Intel第二代独立显卡1年后见:要追上RTX 4070!
主页不刷新了 小红书崩了累坏网友:WiFi、流量疯狂切换
罗永浩称他的失败不是理想主义的错 是他们自己的错
世界热讯:吴京《流浪地球2》吃苹果皮:大年初一上映
世界要闻:中国移动千兆宽带用户已达2.4亿!你是其中之一吗?
安全信息流工具-中文安全RSS小程序
supervisor+gunicorn+uvicorn部署fastapi项目
天天实时:四年保质期囤货无压力!900压缩饼干8斤85元
天天热资讯!iPhone 15系列或重新划分机型组合:14 Plus太拉胯 要大改
一加11质感绝了!刘作虎给员工秀真机:围观群众都发出WOW
美国“显卡税”又推迟9个月:一旦征收 最多涨价25%
全球讯息:大无语 车主称理想L9半个月坏三次 充电口从电动变手动
天天关注:企业转型难?火山引擎数智平台提供数智升级新路径
焦点热门:Dubbo架构设计与源码解析(一) 架构设计
Redis的AOF持久化
【报资讯】防火墙功能(锐捷安全篇)
当前热文:多方安全计算(4)MPC万能积木:秘密共享
【全球时快讯】多方安全计算(3)MPC万能钥匙:混淆电路
全力推进企业数智赋能发展主线,低代码任重道远
天天要闻:linux安装stable diffusion2.0完整教程-还不会安装sd2.0?一篇文章教会你AI绘画
焦点速读:proto IDL管理工具buf使用实践
P2329 栅栏
全球观点:Xml转Java实体类对象 xml转Javabena 对象 且多级嵌套 复杂嵌套
世界动态:用Python写一个一次性计算出加减乘除的运算小程序
世界热文:实验一:获取主机信息
全球播报:MySQL-InnoDB磁盘结构
今日热议:pkg对egg项目打包
天天精选!java的final关键字
环球快报:【验证码逆向专栏】某片滑块、点选验证码逆向分析
环球热议:别再用 JWT 作为 Session 系统了,问题重重,后果很危险!
全球球精选!Osx10.14升级watchman踩坑记
时讯:二分法
用Python来写个小型购物车程序
天天观速讯丨基于 Dubbo Admin 动态进行流量隔离
赫德-德普官司以一百万美元赔偿和解
百度地图首发自研“北斗高精”技术 升级“真”车道级导航
【环球时快讯】中国版“猛禽”!长城山海炮大型皮卡实车现身:配自研3.0T、9AT
上海首张城市高级辅助驾驶地图许可来了 百度率先获批
环球快看点丨伊朗男子65厘米创吉尼斯最矮纪录:站起来才到到成人膝盖处
热门:如何基于 Spring Boot 快速开发一个 Dubbo 微服务应用
【世界时快讯】安卓抄错了?iPhone 15 Pro最新概念图:告别纯直边
当前关注:网络谣言别再传了!短视频中梅西抱的不是母亲:是阿根廷队女厨师
天天通讯!微软、谷歌之后 欧盟反垄断又对美国Meta下手:可罚款上百亿美元
每日视讯:4K游戏串流没了 NVIDIA删除使用9年的GameStream功能引用户不满
2022最后一跌!今起油价下调:加满一箱92号汽油少花19.5元
消息!苹果App Store被法国罚款100万美元:Epic CEO、扎克伯格都曾痛批
多次骂新能源!丰田再度质疑汽车全面电动化:中国品牌弯道超车
35岁本泽马宣布从法国队退役:球迷唏嘘 祝福俱乐部继续精彩
Python单元测试框架unittest
环球播报:北京等多地天空疑现震撼的火箭夜光云:原理科普
年出货3亿只、逛店必买的一次性碱性电池:被宜家正式停售了
环球新资讯:抖音在世界杯上下的功夫 远不止撒币10亿买版权这么简单
差评如潮!《三体》动画评分暴跌至6.4:网友"口吐芬芳"
快讯:Epic与美国FTC和解:36.6亿元摆平两起官司
Spring IOC官方文档学习笔记(二)之Bean概述
焦点观察:FreeSWITCH学习笔记:通道变量
焦点关注:32开书本大小!华硕新款12代酷睿i7迷你机PC发布:零噪音
环球即时:内蒙古上空巨大发光体划破天际 网友:像手电筒一样
192个框框的怪兽!AMD Zen4线程撕裂者7000来了
世界快报:Django框架:9、Ajax简介、基本语法、数据编码格式、携带文件数据
马斯克现身世界杯观战阿根廷对法国:赛后发出灵魂拷问
【环球播资讯】梅西夺冠穿的黑纱是什么登上热搜:官方科普涨知识 意义非凡
今日快讯:小米13 Pro 8.38mm机身塞入太多强悍功能!雷军:相当不容易
当前快播:明年初亮相 全新东风标致408X即将发布:最美法系车来了
被裁员工报仇?近60%人赞成!马斯克将卸任推特CEO 没继承者还是我掌权
今日快讯:真值200+一张票价吗?《阿凡达2》用户评分:特效很棒 剧情稀烂
观察:小姐姐最爱!小米米家首款无线直板夹上架:30秒速热 369元
环球速看:Java关键词final解读
环球视点!简单排序
全球观焦点:数据结构与算法概念
AMD/Intel CES 2023新品发布会官宣:5大CPU齐飞
《阿凡达2:水之道》若大卖 《阿丽塔:战斗天使》续作可能有戏了!
OPPO首款竖向折叠屏Find N2 Flip评测:电池不再是遗憾 媲美传统直板手机
【环球播资讯】你能接受么?微软计划推出更廉价XGP:广告是代价
确认了!小米13系列没有砍掉Wi-Fi 7:将择机打开功能
安装VScode
linux设备树实现多个中断父(interrupt-parent)节点
当前观点:阿根廷夺冠 花16万现场看世界杯决赛的男子哭着说值了