mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-11 17:03:33 +00:00
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
# metadata-ingestion/examples/library/query_add_term.py
|
|
import logging
|
|
|
|
from datahub.emitter.mce_builder import make_term_urn
|
|
from datahub.emitter.mcp import MetadataChangeProposalWrapper
|
|
from datahub.emitter.rest_emitter import DatahubRestEmitter
|
|
from datahub.ingestion.graph.client import DataHubGraph, DataHubGraphConfig
|
|
from datahub.metadata.schema_classes import (
|
|
AuditStampClass,
|
|
GlossaryTermAssociationClass,
|
|
GlossaryTermsClass,
|
|
)
|
|
from datahub.metadata.urns import QueryUrn
|
|
|
|
log = logging.getLogger(__name__)
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
query_urn = QueryUrn("my-unique-query-id")
|
|
|
|
graph = DataHubGraph(DataHubGraphConfig(server="http://localhost:8080"))
|
|
emitter = DatahubRestEmitter(gms_server="http://localhost:8080")
|
|
|
|
existing_terms = graph.get_aspect(
|
|
entity_urn=query_urn.urn(),
|
|
aspect_type=GlossaryTermsClass,
|
|
)
|
|
|
|
terms_to_add = existing_terms.terms if existing_terms else []
|
|
|
|
terms_to_add.append(
|
|
GlossaryTermAssociationClass(
|
|
urn=make_term_urn("CustomerData"), context="Query subject area"
|
|
)
|
|
)
|
|
|
|
glossary_terms_aspect = GlossaryTermsClass(
|
|
terms=terms_to_add,
|
|
auditStamp=AuditStampClass(time=0, actor="urn:li:corpuser:datahub"),
|
|
)
|
|
|
|
event = MetadataChangeProposalWrapper(
|
|
entityUrn=query_urn.urn(),
|
|
aspect=glossary_terms_aspect,
|
|
)
|
|
|
|
emitter.emit(event)
|
|
log.info(f"Added glossary term to query {query_urn}")
|