首页 > 其他分享 >Iceberg metrics导致的问题

Iceberg metrics导致的问题

时间:2024-07-12 18:19:09浏览次数:13  
标签:导致 Iceberg 路径 DataFile alter metrics table DeleteFile

一、问题描述

在iceberg rewrite时报错:org.apache.iceberg.exceptions.ValidationException: Cannot commit, found new delete for replaced data file

看信息像是对于要删除的DataFile,有新的DeleteFile作用于它,不应该直接删除DataFile。但是我们很明确并没有DeleteFile作用于其上。

排查后发现问题所在,针对Position-delete File是否作用于DataFile的判断如下。可以看出是根据DeleteFile的metrics中的lowBounds和upperBounds来确定DataFile的文件路径是否在该DeleteFile

在配置中metrics的默认长度是16,当我们仓库的路径较长时,所存的文件路径不是完整的路径,那么metrics里面的信息就失去了作用,就会出现判断出错的情况。

 因此我们可以改变表的这个属性,以达到保存的metrics信息完整,下面有两种方式

--全表
alter table table set tblproperties ( 'write.metadata.metrics.default'='full' );//修改所有metrics的长度都不作限制
--某个字段
alter table table set tblproperties ( 'write.metadata.metrics.column.col123'='full' );//只针对col123这个字段统计值不做限制

 

原文链接:https://blog.csdn.net/qq_20834437/article/details/126359925

标签:导致,Iceberg,路径,DataFile,alter,metrics,table,DeleteFile
From: https://www.cnblogs.com/robots2/p/18299174

相关文章

  • 什么原因会导致raid掉阵
    RAID掉阵,即RAID磁盘阵列失效或无法正常工作,可能由多种原因引起。一、硬件故障硬盘故障:阵列中的硬盘出现物理故障,如电路板损坏、磁头损坏、盘面损坏、坏扇区等,会导致RAID无法正常工作。这些故障可能是由于硬盘老化、使用环境恶劣(如温度过高、湿度过大)、意外碰撞等原因造成的。R......
  • 多线程中自定义线程池与shiro导致的权限错乱问题解决
    importorg.apache.shiro.SecurityUtils;importorg.apache.shiro.subject.Subject;importorg.apache.shiro.util.ThreadContext;importjava.util.concurrent.*;publicclassShiroAwareThreadPoolExecutorextendsThreadPoolExecutor{publicShiroAwareThread......
  • 服务器意外断电导致无法重启数据恢复
    一、初步诊断与评估检查电源系统:确认服务器电源和断路器是否正常工作,检查电源线是否松动或损坏。如果有备份电源(如UPS),检查其是否也受到影响。评估硬件状态:在尝试重启之前,检查服务器的其他硬件组件(如主板、内存、硬盘等)是否有明显的物理损坏或异常。查看报错信息:如果服务器......
  • 关于Qt模型插入最后一行数据中存在未填满的项,点击导致崩溃的解决办法
    在使用Qt模型视图框架的时候,你可能会遇见这种情况:给QTableView设置设置模型的时候,网模型里面插入数据,因为数据是一行一行插入的,即要使用model的appandRow函数,但有时候最后一行数据没有填满一行,但是没有填满的那一部分仍然可以点击,如下代码:while(query.next()){ProductInf......
  • c++临时对象导致的生命周期问题
    对象的生命周期是c++中非常重要的概念,它直接决定了你的程序是否正确以及是否存在安全问题。今天要说的临时变量导致的生命周期问题是非常常见的,很多时候没有一定经验甚至没法识别出来。光是我自己写、review、回答别人的问题就犯了或者看到了许许多多这类问题,所以我想有必要做个......
  • 应用程序会不会导致linux内核崩溃?
    应用程序有可能导致Linux内核崩溃,但这种情况并不是绝对的,它取决于多种因素。应用程序或Linux内核本身都可能存在bug。当应用程序的某部分逻辑与内核的某部分逻辑发生冲突时,有可能导致内核崩溃。例如,应用程序可能尝试访问非法的内存地址,或者触发内核中的某个未修复的错误。这......
  • 为啥 两个线程同时执行 ++i,可能会导致其中一个线程的自增操作被覆盖
    这是一个典型的并发编程问题,涉及到线程的同步和共享资源的访问问题。让我们详细来看一下为什么会这样:自增操作的细节++i 看起来是一个简单的操作,但实际上它包含了多个步骤:读取变量 i 的当前值。将读取到的值加1。将结果写回变量 i。在单线程环境中,这些步骤会顺序执......
  • Nonlinear econometrics for finance
    NonlineareconometricsforfinanceHOMEWORK2(LIE,NLSandGMM)Problem1(LawofIteratedExpectations.)(6points) Afinancialanalystwantstopredictthereturnonaportfolio.Theportfoliogiveseitherareturnof1or2percentineachperiod.She......
  • GCC8 编译优化 BUG 导致的内存泄漏
    1.背景1.1.接手老系统最近我们又接手了一套老系统,老系统的迭代效率和稳定性较差,我们打算做重构改造,但重构周期较长,在改造完成之前还有大量的需求迭代。因此我们打算先从稳定性和迭代效率出发做一些微小的升级,其中一项效率提升便是升级编译工具和GCC版本。老系统使用Autot......
  • MSAMRNBSource.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个MSAMRNBSource.dll文件(挑选合适的版本文件)......