迁移元数据任务运行成功,仅删除冗余元数据失败如何处理?
问题现象
在LakeFormation管理控制台配置元数据迁移任务时,元数据删除策略配置为“删除冗余元数据”后,运行迁移任务显示部分成功。查看日志发现迁移任务运行成功,删除冗余元数据失败,日志报错内容如下:

处理思路
准备自定义过滤策略文件,修改元数据迁移任务,使用自定义过滤策略运行迁移任务。
处理步骤
- 准备自定义过滤策略文件test.json,例如文件内容如下,表示删除数据库db_1下的表tbl_1、数据库db_1下的函数func_1、数据库db_2:
{ "metadataPattern": [ { "databasePattern": "db_1", "tablePatterns": [ "tbl_1" ], "functionPatterns": [ "func_1" ], "action": "DELETE" }, { "databasePattern": "db_2", "action": "DELETE" } ], "partitionEnable": true }
- “action”设置为“DELETE”,表明执行删除任务。
- 需要删除数据库时,只指定数据库名,不指定表和函数。
- 需要删除表时,同时指定数据库名和表名,一个数据库下可指定多个表名。
- 需要删除函数时,同时指定数据库名和函数名,一个数据库下可指定多个函数名。
注:迁移和删除对象均为元数据。
- 登录管理控制台。
- 在左上角单击“
”,选择“存储 > 对象存储服务 OBS,进入对象存储服务页面。
将1已准备的test.json文件上传至OBS系统中,例如上传路径为“obs://lakeformation/test”。
- 在左上角单击“
”,选择“大数据 > 湖仓构建 LakeFormation”进入LakeFormation控制台。 - 在左侧下拉框中选择待操作的LakeFormation实例,在左侧导航栏选择“任务管理 > 元数据迁移”。
- 单击待操作任务所在行“编辑”,配置以下参数后单击“提交”。
- 元数据过滤策略:按自定义规则
- 过滤策略存储位置:obs://lakeformation/test
- 过滤策略文件名:test.json
- 重新运行迁移任务,任务运行成功。