更新时间:2026-10-16 GMT+08:00
分享

删除函数

删除LakeFormation中的函数记录,并清理其在OBS上的UDF包。删除流程如下:

  1. 获取函数元数据(用于定位resource_uris)。
  2. 删除对应的OBS包(函数已部分删除时按前缀清理以避免泄漏)。
  3. 从LakeFormation删除函数记录。
  4. 若OBS清理失败但LakeFormation删除成功,抛出异常以提示存在孤儿包。

前提条件

  • 已完成SDK安装。具体操作,请参见Catalog SDK获取与安装。
  • 目标数据库与函数名已知(若函数元数据不可用,SDK将按{database}/{name}/前缀清理OBS)。

函数签名

client.delete_function(*, database=None, name) -> None

参数说明

参数

是否必选

类型

默认值

说明

database

否

str | None

default_database

数据库名;为None时使用默认数据库。

name

是

str

-

函数名。

返回值

无返回值(None)。

异常说明

异常

触发条件

FunctionNotFoundError

函数不存在(此异常在删除流程中被安全忽略,SDK改用前缀清理OBS)。

LakeFormationAPIError

LakeFormation API调用失败(网络、鉴权、5xx 等),需向上传播以告知调用方清理未完成。

OBSOperationError

OBS清理失败,但LakeFormation删除已成功时抛出,提示存在孤儿OBS包。

示例代码

client.delete_function(name="to_celsius")
print("Function deleted and OBS package cleaned")
  • 当函数元数据不可用时,SDK会按数据库/函数名/前缀清理OBS对象,避免遗留孤儿包。
  • 若OBS删除失败但LakeFormation记录已删除,SDK会抛出OBSOperationError,调用方需据此排查孤儿包。

相关文档