表治理-Iceberg元数据合并-metadata.json文件
一、背景描述
元数据文件随时间增多,导致查询变慢。通过如下方式可以指定metadata个数,超过指定数量自动清理。
metadata文件对应Iceberg概念是Snapshots
二、解决方案
1、在建表时增加参数
‘write.metadata.delete-after-commit.enabled’=‘true’,
‘write.metadata.previous-versions-max’=‘5’
2、建表语句
自动清理metadata文件
CREATE TABLE iceberg_test.autoclean_usql_test(
`id` BIGINT,
`name_cn` STRING,
`description` STRING,
`status` INT
)USING iceberg
TBLPROPERTIES(
'format-version'='2'
,'property-version'='2'
,'write.upsert.enabled'='true'
,'write.metadata.delete-after-commit.enabled'='true'
,'write.metadata.previous-versions-max'='5'
)
不带metadata自动清理
CREATE TABLE iceberg_test.notclean_usql_test(
`id` BIGINT,
`name_cn` STRING,
`description` STRING,
`status` INT
)USING iceberg
TBLPROPERTIES(
'format-version'='2'
,'property-version'='2'
,'write.upsert.enabled'='true')
|
|
3、存储路径
/user/hive/warehouse/iceberg_test.db/autoclean_usql_test
三、插入数据测试
1、带metadata清理测试,因保留5个,第六次插入才清理
插入数据,查看生成的文件数量。查看命令如下
hdfs dfs -ls /user/hive/warehouse/iceberg_test.db/autoclean_usql_test/metadata |grep 'Found'
insert into iceberg_test.autoclean_usql_test values(1,'name1','desc',1); Found 4 items 2个metadata.json 1个*m0.avro 1个***.avro
insert into iceberg_test.autoclean_usql_test values(2,'name2','desc',1); Found 7 items 3个metadata.json 2个*m0.avro 2个***.avro
insert into iceberg_test.autoclean_usql_test values(3,'name3','desc',1); Found 10 items 4个metadata.json 3个*m0.avro 3个***.avro
insert into iceberg_test.autoclean_usql_test values(4,'name4','desc',1); Found 13 items 5个metadata.json 4个*m0.avro 4个***.avro
insert into iceberg_test.autoclean_usql_test values(5,'name5','desc',1); Found 16 items 6个metadata.json 5个*m0.avro 5个***.avro
---开始清理生效
insert into iceberg_test.autoclean_usql_test values(6,'name6','desc',1); Found 18 items 6个metadata.json 6个*m0.avro 6个***.avro
insert into iceberg_test.autoclean_usql_test values(7,'name7','desc',1); Found 20 items 6个metadata.json 7个*m0.avro 7个***.avro
2、不带metadata清理,每次增加三个,一直增加。
hdfs dfs -ls /user/hive/warehouse/iceberg_test.db/notclean_usql_test/metadata
insert into iceberg_test.notclean_usql_test values(1,'name1','desc',1); Found 4 items 2个metadata.json 1个*m0.avro 1个***.avro
insert into iceberg_test.notclean_usql_test values(2,'name2','desc',1); Found 7 items 3个metadata.json 2个*m0.avro 2个***.avro
insert into iceberg_test.notclean_usql_test values(3,'name3','desc',1); Found 10 items 4个metadata.json 3个*m0.avro 3个***.avro
insert into iceberg_test.notclean_usql_test values(4,'name4','desc',1); Found 13 items 5个metadata.json 4个*m0.avro 4个***.avro
insert into iceberg_test.notclean_usql_test values(5,'name5','desc',1); Found 16 items 6个metadata.json 5个*m0.avro 5个***.avro
insert into iceberg_test.notclean_usql_test values(6,'name6','desc',1); Found 19 items 7个metadata.json 6个*m0.avro 6个***.avro
insert into iceberg_test.notclean_usql_test values(7,'name7','desc',1); Found 22 items 8个metadata.json 7个*m0.avro 7个***.avro
四、参考文章
1、实践数据湖iceberg 元数据合并
https://blog.csdn.net/spark_dev/article/details/122876819
表治理-Iceberg元数据合并-metadata.json文件的更多相关文章
- 第九篇 数据表设计和保存item到json文件
上节说到Pipeline会拦截item,根据设置的优先级,item会依次经过这些Pipeline,所以可以通过Pipeline来保存文件到json.数据库等等. 下面是自定义json #存储item到 ...
- asp.net core2.1 bundleconfig.json合并压缩资源文件
在asp.net core中则可以使用BuildBundlerMinifier来进行css,js的压缩合并 1.使用NuGet安装 BuildBundlerMinifier(也可以在vs中下载安装扩展 ...
- Python实现读取json文件到excel表
一.需求 1.'score.json' 文件内容: { "1":["小花",99,100,98.5], "2":["小王" ...
- JavaScript自学笔记(1)---表单验证,let和const,JSON文件
今天开个JS自学笔记,本身JS的语法很简单,如果学过Java或者C系的都很容易,就不讨论了.主要是讨论实际应用的问题. 1.表单验证: a.html自动验证: HTML 表单验证可以通过浏览器来自动完 ...
- 数据治理之元数据管理的利器——Atlas入门宝典
随着数字化转型的工作推进,数据治理的工作已经被越来越多的公司提上了日程.作为Hadoop生态最紧密的元数据管理与发现工具,Atlas在其中扮演着重要的位置.但是其官方文档不是很丰富,也不够详细.所以整 ...
- ios项目里扒出来的json文件
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...
- 让EFCore更疯狂些的扩展类库(一):通过json文件配置sql语句
前言 EF通过linq和各种扩展方法,再加上实体模型,编写数据库的访问代码确实是优美.舒服,但是生成的sql不尽如意.性能低下,尤其是复杂些的逻辑关系,最终大家还是会回归自然,选择能够友好执行sql语 ...
- Angular Npm Package.Json文件详解
Angular7 Npm Package.Json文件详解 近期时间比较充裕,正好想了解下Angular Project相关内容.于是将Npm官网上关于Package.json的官方说明文档进行了 ...
- java实现服务端守护进程来监听客户端通过上传json文件写数据到hbase中
1.项目介绍: 由于大数据部门涉及到其他部门将数据传到数据中心,大部分公司采用的方式是用json文件的方式传输,因此就需要编写服务端和客户端的小程序了.而我主要实现服务端的代码,也有相应的客户端的测试 ...
- 直接请求json文件爬取天眼查企业信息(未解决验证码问题)——python3实现
几个月前...省略一堆剧情...直接请求json文件爬取企业信息未成功,在知乎提问后,得到解决,有大佬说带上全部headers和cookie是可以的,我就又去试了下,果然可以(之前自己试的时候不行,没 ...
随机推荐
- 从零打造基础HTTP服务器:揭秘背后的技术魔法-MiniTomcat
<从零打造基础HTTP服务器:揭秘背后的技术魔法-MiniTomcat> 嘿,各位技术发烧友们!今天咱们要一起踏上一段超级刺激的技术之旅,去揭开从零实现一个基础HTTP服务器的神秘面纱.这 ...
- ZCMU-1038
其实感觉不太难,读懂题意就行,我一开始没有仔细去读感觉就很懵.其题目意思就是一段字符串含有数字和'<'或者'>',一开始从左开始遍历,遇到'>'这类东西换方向,如果有多次遇到就删之前 ...
- S2P销讯通-SFE人才对企业管理层至关重要
SFE这一概念,最初由外资企业引入,如今已逐渐被内资企业所采纳并融入其组织结构中,不少企业正积极构建这一部门. 1 我们观察到,近两年企业内对于SFE部门所需的人才需求急剧上升.这一部门,在外资企业中 ...
- 正也科技案例 | 药企使用S2P深入营销管理数据化建设
为了获取更*的市场空间,医药健康行业正迎来一波前所未有的产业升级.尽管不少企业取得了许多成绩,但仍面临诸多挑战. 浙江某知名医药公司,在泌尿系统.心脑血管系统及眼科用药领域均拥有强势品牌.其产品更是荣 ...
- DA14531芯片固件逆向系列(3)- BLE收包流程分析及漏洞挖掘思路分享
文章首发于 https://xz.aliyun.com/t/9194 前言 本文介绍定位和分析DA14531收包流程的方法,并提供简单的BLE协议漏洞挖掘思路. 定位收包函数 通过查看DA14531的 ...
- 08C++选择结构(2)
一.逻辑变量 教学视频 存储类似灯亮或灯灭.是男还是女等结果只有两种可能的数据时,可以使用逻辑型变量. 逻辑型变量用关键字bool定义,所以又称为布尔变量,其值只有两个false(假)和true(真) ...
- js 进制转换:十六进制转十进制、十进制转十六进制、十六进制转ASCII码、
因为近期做小程序,蓝牙连接硬件,需要根据module bus通信协议解析数据,用到了很多标题的算法转换,借此总结一下. 十六进制 转 十进制 function hex2dec(hex) { var l ...
- IOS跳转到系统相册及一些其他的URL Scheme
IOS跳转到系统相册及一些其他的URL Scheme APP 间的跳转主要通过 UIApplication.shared.openURL(url) 这种方法来实现的,但iOS10 后又稍加不同,iOS ...
- FineReport模板性能问题排查方法
1. 概述 模板的加载速度受到很多因素影响,如果一个模板预览的时候,加载较慢,该如何去分析问题原因呢? 2. 排查步骤 2.1 查看数据集查询速度 大部分模板加载慢,都是因为 sql 执行速度比较慢. ...
- rabbitmq3.7.3 发布了一个新的 exchange x-random
direct exchange 同一个 routing key 可以绑定多个 queue,当给这个routing key发消息时,所有 queue 都会投递.这个行为对于一些场景不适用,有时我们希望只 ...