【DataHub】 现代数据栈的元数据平台--如何删除元数据?

本文详细介绍了如何在DataHub中删除元数据,包括通过Rest.li API进行软删除和硬删除的操作步骤,以及使用DataHub CLI进行删除的多种方式,如按URN、过滤条件和回滚摄取批次。
摘要由CSDN通过智能技术生成

为了保证DataHub中的元数据的有效性、正确性,需要及时将不正确的、废弃的元数据进行删除。

本文主要讲解在DataHub中如何删除元数据?

1.DataHub如何删除元数据

1.1.通过Rest.li API 删除

1.1.1. 软删除 soft delete

DataHub针对每个实体都关联一个特殊的方面Aspect com.linkedin.common.Status,来表示实体的生命周期状态。

要使一个实体不能在DataHub UI中查看、搜索,只需要将com.linkedin.common.Status Aspect的removed属性设置为true即可。
其实这和关系数据库中,通过一个字段标识一条记录是否被删除是一样的,即通过打标记对实体对象进行软删除。

注意:通过Rest.li API,只能针对实体进行软删除

使用示例如下:
删除数据流urn:li:dataFlow:(airflow,datahub_lineage_backend_demo,prod)

{
    "entity": {
        "value": {
            "com.linkedin.metadata.snapshot.DataFlowSnapshot": {
                "aspects": [
                    {
                        "com.linkedin.common.Status": {
                            "removed": true
                        }
                    }
                ],
                "urn": "urn:li:dataFlow:(airflow,datahub_lineage_backend_demo,prod)"
            }
        }
    }
}
  • 将删除的实体恢复
    在这里插入图片描述

1.1.2. 硬删除 hard delete

curl --location --request POST 'http://172.25.21.188:8080/entities?action=delete' \
--header 'Content-Type: application/json' \
--data-raw '{
    "urn": "urn:li:dataFlow:(airflow,datahub_lineage_backend_demo,prod)"
}'

在这里插入图片描述

1.2.通过 DataHub CLI命令删除

1.2.1. Delete By Urn

  • 默认行为是软删除 Soft Delete
    以下命令是针对实体进行软删除,达到的效果 和 通过Rest.li API针对实体进行软删除 一样。
    这将实体的Status方面设置为Removed,这将隐藏实体及其所有方面,不让UI返回。
datahub delete --urn "<my urn>"
datahub delete --urn "<my urn>" --soft
  • 硬删除 Hard Delete
    在物理上删除实体所有方面的的信息,且操作无法撤消,
    因此操作时需要谨慎,只有在确定要删除与此实体关联的所有数据后才执行此操作。
    • 添加-n--dry-run参数:在发出最终的delete命令之前执行一次演练
    • 添加-f--force参数:跳过确认

注意:确保urn放在""中,以避免命令行终端针对命令进行了错误的解读,如datahub delete --urn "urn:li:dataFlow:(airflow,datahub_lineage_backend_demo,prod)"

1.2.2. Delete using Broader Filters 过滤删除

  • 删除DEV环境中的所有数据集 datahub delete --env DEV --entity_type dataset
  • 删除PROD环境中的所有hive数据集 datahub delete --env PROD --entity_type dataset --platform hive
  • 删除匹配查询的所有dataJob datahub delete --entity_type dataJob --query "test" -n

目前功能存在BUG,有时删除会报错。

1.2.3. Rollback Ingestion Batch Run

删除元数据的第二种方法是使用一个摄取run-id来标识实体(以及受影响的方面)。每当你运行datahub ingest -c…,该运行所接收的所有元数据将具有相同的run-id。 详见解释参见官网

# 查看最近一段时间运行的元数据摄取
datahub ingest list-runs
# 查看某一次元数据摄取操作的数据
datahub ingest show --run-id <run-id>
datahub ingest rollback --dry-run --run-id <run-id>
# to rollback all aspects added with this run and all entities created by this run
datahub ingest rollback --run-id <run-id>

参考

datahub how to delete-metadata
datahub gms metadata-service

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值