首页 > 其他分享 >Iceberg Spark存储过程-表治理工具

Iceberg Spark存储过程-表治理工具

时间:2023-12-08 16:23:35浏览次数:26  
标签:存储 快照 name snapshot arg Iceberg Spark table string

一、简介

存储过程(Procedure)是数据库领域的概念,类似于编程语言中的方法或函数,是对实现特定操作的封装,原生的 Spark SQL 中是不支持存储过程的,Iceberg 0.11.0版本之后对其进行了扩展,并提供了部分存储过程的实现。Iceberg 中提供的所有存储过程都在system namespace 下,分快照管理、元数据管理、表迁移三种。如果需要使用则spark新增如下配置项

spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions

二、存储过程使用

1、语法简介

-- 基于参数位置
call catalog_name.system.procedure_name(arg_1, arg_2, ... arg_n);
-- 基于参数名称
call catalog_name.system.procedure_name(arg_name_2 => arg_2, arg_name_1 => arg_1);

三、Iceberg快照管理

1、回滚表到特定的快照ID(rollback_to_snapshot)

(1)参数

table(必须):string,表名

snapshot_id(必须):long,快照 ID

(2)示例

call catalog_name.system.rollback_to_snapshot('db.sample', 1);

2、回滚表到特定时间(rollback_to_timestamp)

(1)参数

table(必须):string,表名

timestamp(必须):long,回滚的时间戳

(2)示例

call catalog_name.system.rollback_to_timestamp('db.sample', TIMESTAMP '2023-12-08 00:00:00.000');

3、设置表的当前快照ID(set_current_snapshot)

与回滚不同,该参数可以在各个快照之间任意穿梭

(1)参数

table(必须):string,表名

snapshot_id(必须):long,快照 ID

(2)示例

call catalog_name.system.set_current_snapshot('db.sample', 1);

4、从现有快照创建新快照(cherrypick_snapshot)

(1)参数

table(必须):string,表名

snapshot_id(必须):long,快照 ID

四、元数据管理

1、删除过期快照和相关数据文件(expire_snapshots)

(1)参数

table(必须):string,表名
older_than:timestamp,该时间戳之前的快照将被删除,默认为 5 天前
retain_last:int,和 older_than 同时存在的时候,要保留的快照数(默认为 1)
max_concurrent_deletes:int,用于删除文件操作的线程池大小(默认不使用线程池)

(2)示例

CALL spark_catalog.system.expire_snapshots(table => 'db.sample', older_than => TIMESTAMP '2023-12-07 10:40:00.000');

2、删除Iceberg元数据中未被引用的文件(remove_orphan_files)

(1)参数

table(必须):string,表名。
older_than:timestamp,删除在此时间戳之前创建的孤立文件(默认为 3 天前)。
location:string,查找文件的目录(默认为表的位置)。
dry_run:boolean,当为 true 时,实际上不删除文件(默认为 false)。
max_concurrent_deletes:int,用于删除文件操作的线程池大小(默认不使用线程池)。

(2)示例

 

标签:存储,快照,name,snapshot,arg,Iceberg,Spark,table,string
From: https://www.cnblogs.com/robots2/p/17888372.html

相关文章

  • 最强无缓存PCIe 4.0 SSD之一!长江存储致态TiPlus7100 4TB评测:满盘写入缓外2.3GB/s
    一、前言:长江存储首款自有品牌致态4TBSSD其实早在年初,就有不少搭载长江存储闪存颗粒的国产4TBSSD,不过长江存储的自有品牌致态,直到现在才推出这款致态TiPlus71004TB。当然有句话叫好货不怕晚,致态TiPlus71004TB是一款非常优秀的PCIe4.0SSD。致态TiPlus71004TB采用了长江......
  • 【Docker】更改docker镜像的存储路径
    1.查看Docker存储路径dockerinfo|grep"DockerRootDir"2.关闭所有运行的容器···dockerps|awk'{print$1}'|xargsdockerstop···3.停止docker服务systemctlstopdocker4.新增的磁盘挂载点上新建目录,并将原有的docker容器和镜像全部拷贝过来,比如这里新增......
  • 05_实验五_物理存储器与进程逻辑地址空间管理
    物理存储器与进程逻辑地址空间管理实验目的通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法。通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。预备知识物理存储器的管理方式EOS......
  • 如果把设计的png图片在保证效果的前题下存储空间尽量减少?
    要在保证效果的前提下减少存储空间,可以尝试以下几种方法:压缩图片:可以使用专业的图片压缩工具,如TinyPNG、JPEGmini等,对PNG图片进行压缩,减小文件大小,同时尽量保持图像质量。减少颜色深度:降低图片的颜色深度可以减小文件大小,但会导致部分细节的丢失。可以将图像转换为索引色图像,减少颜......
  • MySQL存储过程
    一、什么是存储过程?MySQL5.0版本开始支持存储过程。简单的说,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;存储过就是数据库SQL语言层面的代码封装与重用。二、有哪些特性?有输入输出参数,可以声明变量,有if/else,case,whi......
  • 【Kubernetes存储篇】StorageClass存储类动态生成PV详解
    一、StorageClass存储类理论StorageClass的作用主要有以下几个方面:动态存储卷分配:StorageClass可以根据定义的属性动态地创建存储卷,无需手动创建和管理存储卷。存储卷的属性管理:StorageClass可以定义存储卷的属性,如存储类型、存储容量、访问模式等,从而更好地满足应用程序的存储需......
  • linux存储管理
    linux存储管理 Linux存储管理在系统维护中至关重要。其核心是文件系统的管理和存储资源的有效利用。通过命令行或图形化工具,Linux提供了多种方式管理存储。分区、格式化和挂载是基础步骤,可以使用fdisk、mkfs和mount等命令进行。同时,LVM(逻辑卷管理)允许动态调整分区大小。定期清......
  • Linux存储管理心得
    在Linux系统下,系统识别到硬盘后,会为其创建一份初始分区表。硬盘在分区后才可以使用,系统通过分区表来管理硬盘的使用。储存方式:本地储存、外部储存、网路储存。硬盘分区方式:分区类型:MBR、GPT、磁盘容量:<2TB(MBR)、不限(GPT)分区软件:fdisk、gdisk分散区:14个分区、128个主要分区基......
  • k8s持久化存储
    1、存储卷介绍存储卷的分类#kubectlexplainpod.spec.volumes存储卷的选择文件存储,如nfs、glusterfs、cephfs等,数据共享,但是性能较差块存储,如iscsi、rbd等,性能较好,不能实现数据共享(部分)对象存储,如ceph对象存储,性能好,数据共享,但是使用方式特殊,支持较少。2、本地......
  • 记一次 .NET 某零售管理系统 存储不足分析
    一:背景1.讲故事前几天有位朋友找到我,说他的程序会偶发性的报存储空间不足,无法处理此命令的错误,让我帮忙看下到底怎么回事,哈哈,人家是有备而来,dump都准备好了,话不多说,直接分析开干。二:WinDbg分析1.捕获dump中的异常一般来讲别人说的只是一个参考,我们需要自己到dump中去验......