flink 集成 iceberg问题 持续更新

本文分享了Flink集成Iceberg的实际经验,包括不同版本间的兼容性问题、使用过程中的常见错误及其解决方案。重点关注小文件合并导致的问题及解决办法。

调研iceberg的使用,记录下flink 集成iceberg的坑(持续更新)
简单来说 iceberg可以看作hdfs的一个文件格式,hive的升级版,提供sql操作的kafka升级版,可以用来做实时数仓,分钟级别

flink和iceberg集成以及hive的版本不兼容问题,暂为解决

目前测试1.3x flink with 0.13.x iceberg,stream api 可以正常读kafka数据源 写/读iceberg(hive/hadoop catalog)
目前测试1.11x flink with 0.11.x iceberg,stream/table api 均可正常读kafka数据源 写/读iceberg(hive/hadoop catalog)
目前测试1.3x 和1.11 数据可以互通,即使用1.13版本的stream 插入数据,如需使用sql则可以使用1.1x版本

flink stream读取iceberg时,小文件合并程序运行后导致flink 程序挂掉,报snapshot 不存在

前提:在小文件合并程序中,对data文件进行合并,并且只保留一个快照,flink 读取iceberg报错
原因:iceberg对数据的每一次写,都会产生快照,在程序中对data文件进行合并后,快照时间戳为最新,但是其他data还被其他的快照所引用,元数据找不到快照报错
解决:删除一段时间前即可

		Snapshot snapshot = table.currentSnapshot();
        // 删除一个小时前的
        long l = snapshot.timestampMillis() - 3600000;
        table.expireSnapshots().expireOlderThan(l).commit();

待续

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值