mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-14 18:31:59 +00:00
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
|
|
import logging
|
||
|
|
|
||
|
|
from datahub.emitter.mcp import MetadataChangeProposalWrapper
|
||
|
|
from datahub.emitter.rest_emitter import DatahubRestEmitter
|
||
|
|
from datahub.metadata.schema_classes import FormAssociationClass, FormsClass
|
||
|
|
from datahub.metadata.urns import DatasetUrn, FormUrn
|
||
|
|
|
||
|
|
log = logging.getLogger(__name__)
|
||
|
|
logging.basicConfig(level=logging.INFO)
|
||
|
|
|
||
|
|
# Form to assign
|
||
|
|
form_urn = FormUrn("metadata_initiative_2024")
|
||
|
|
|
||
|
|
# Entities to assign the form to
|
||
|
|
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")
|
||
|
|
|
||
|
|
# Assign the form to each entity by updating the forms aspect
|
||
|
|
for dataset_urn in dataset_urns:
|
||
|
|
# Create a forms aspect with the form marked as incomplete
|
||
|
|
forms_aspect = FormsClass(
|
||
|
|
incompleteForms=[FormAssociationClass(urn=str(form_urn))],
|
||
|
|
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"Assigned form {form_urn} to entity {dataset_urn}")
|
||
|
|
|
||
|
|
log.info(f"Successfully assigned form to {len(dataset_urns)} entities")
|