使用存储过程维护表

要在Spark中使用Iceberg,首先需要配置Spark catalog。只有在Spark 3.x中使用Iceberg SQL扩展时,存储过程才可用。

1.用法

可以通过CALL从任何配置的Iceberg catalog中使用存储过程。所有存储过程都位于命名空间system中。CALL支持通过名称或位置传递参数,推荐通过名称传递参数。不支持混合位置参数和命名参数。

(1) 命名参数。

所有过程参数都被命名。当通过名称传递参数时,参数可以按任意顺序传递,任何可选参数都可以省略,代码如下:

CALL catalog_name.system.procedure_name(arg_name_2 => arg_2, arg_name_1 => arg_1)

(2) 位置参数。

当按位置传递参数时,如果结尾参数是可选的,则只能省略它们,代码如下:

CALL catalog_name.system.procedure_name(arg_1, arg_2, ... arg_n)

2.快照管理

(1) rollback_to_snapshot()。

将表回滚到指定的快照ID。

要回滚到特定的时间,使用rollback_to_timestamp()方法。此过程将使所有引用受影响表的缓存Spark计划失效。

例如,将表db.sample回滚到快照ID 1,执行语句如下:

CALL catalog_name.system.rollback_to_snapshot('db.s ......
          

......

抱歉,只有登录会员才可浏览!会员登录


《PySpark原理深入与编程实战》