datahub/metadata-ingestion/examples/library/form_remove_from_entities.py

42 lines
1.3 KiB
Python
Raw Normal View History

import logging
from datahub.emitter.mcp import MetadataChangeProposalWrapper
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.metadata.schema_classes import FormsClass
from datahub.metadata.urns import DatasetUrn, FormUrn
log = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
# Form to remove
form_urn = FormUrn("metadata_initiative_2024")
# Entities to remove the form from
dataset_urns = [
DatasetUrn(platform="snowflake", name="prod.analytics.customer_data", env="PROD"),
DatasetUrn(platform="snowflake", name="prod.analytics.sales_data", env="PROD"),
]
# Create rest emitter
rest_emitter = DatahubRestEmitter(gms_server="http://localhost:8080")
# Remove the form from each entity by setting empty forms aspect
for dataset_urn in dataset_urns:
# Create an empty forms aspect
# This will remove all form assignments from the entity
forms_aspect = FormsClass(
incompleteForms=[],
completedForms=[],
verifications=[],
)
# Emit the forms aspect for the entity
event = MetadataChangeProposalWrapper(
entityUrn=str(dataset_urn),
aspect=forms_aspect,
)
rest_emitter.emit(event)
log.info(f"Removed forms from entity {dataset_urn}")
log.info(f"Successfully removed forms from {len(dataset_urns)} entities")