表治理-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是可以的,我就又去试了下,果然可以(之前自己试的时候不行,没 ...
随机推荐
- java——棋牌类游戏五子棋(webwzq1.0)之一(基础)
这是本人最近一段时间写的斗地主的java代码,大体框架都实现了,一些细节还需要后续优化. package basegame; import java.awt.Button; import java.a ...
- dotnet core微服务框架Jimu ~部署和调用演示
首先运行 consul 下载 consul 以开发模式运行 consul agent -dev 2. 调试 用 Visual Studio 2022 IDE 打开项目: 右击解决方案-选择" ...
- opencv imshow 大图片显示,拖动显示
用imshow显示大图片,不能完整显示,不方便.结合网友的代码,修改成现在的代码,可以拖动图片,方便查看完整图片.而且方便调试,只需要用MatShow替换imshow. struct MousePar ...
- 洛谷P7911 [CSP-J 2021] 网络连接题解
普通的模拟题,数据很小,基本排除超时超空间的可能 上代码: #include<bits/stdc++.h> #define LL long long using namespace std ...
- 哪里有 class 告诉我?
说明 本文中的 JVM 参数和代码在 JDK 8 版本生效. 哪里有用户类? 用户类是由开发者和第三方定义的类,它是由应用程序类加载器加载的. Java 程序可以通过CLASSPATH 环境变量,JV ...
- Qt数据库应用17-通用数据库请求
一.前言 数据库请求是在数据库采集的基础上,换成http请求的形式来获取数据,这样就脱离了数据库组件,而采用的通用的http请求的形式从数据库拿数据库,这个通用性就非常广泛了,比如对方用java采集到 ...
- Qt编写可视化大屏电子看板系统21-数据转曲线
一.前言 数据转曲线,这个用的非常多,比如串口或者网络收到的数据,对特定的字节数据绘制实时的曲线,或者对历史记录存储的数据进行曲线绘制,按照约定的规则,数据转曲线绘制必须提供规则,没有规则只能对所有数 ...
- 即时通讯技术文集(第19期):IM架构设计基础知识合集 [共13篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第19 期. [-1-] 微信后台基于时间序的新一代海量数据存储架构的设计实践 [链接] htt ...
- 《深入理解Mybatis原理》MyBatis初始化机制详解
主要构件及其相互关系 主要构件: 主要的核心部件解释如下: SqlSession: 作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能 Executor:MyB ...
- 《深入理解Mybatis原理》MyBatis动态SQL原理
引入 我们在使用mybatis的时候,会在xml中编写sql语句.比如这段动态sql代码: <update id="update" parameterType="o ...