Area: Product
Sub-Area: Governance
Issue
Glossary terms created in DataHub are not properly linking to datasets or columns, or the links disappear after ingestion runs. This typically happens due to incorrect term URN format or conflicts with ingestion that doesn't preserve manual term assignments.
You Might Be Asking:
- How do I link a glossary term to a dataset or column?
- Why are my glossary term associations disappearing?
- Can I bulk-assign glossary terms?
Solution
- Create a glossary term:
mutation createGlossaryTerm {
createGlossaryTerm(
input: {
id: "revenue",
name: "Revenue",
description: "Total revenue from all sources"
}
)
}
- Link term to a dataset:
mutation addTerms {
addTerms(
input: {
termUrns: ["urn:li:glossaryTerm:revenue"],
resourceUrn: "urn:li:dataset:(urn:li:dataPlatform:snowflake,db.schema.sales,PROD)"
}
)
}
- Add glossary terms to columns via API:
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.metadata.schema_classes import GlossaryTermsClass, GlossaryTermAssociationClass
emitter = DatahubRestEmitter("http://localhost:8080")
glossary_terms = GlossaryTermsClass(
terms=[
GlossaryTermAssociationClass(
urn="urn:li:glossaryTerm:revenue"
)
],
auditStamp=AuditStampClass(...)
)
- Use transformers to preserve manual glossary term assignments:
source:
config:
transformers:
- type: "pattern_add_dataset_terms"
config:
term_pattern:
rules:
".*revenue.*": ["urn:li:glossaryTerm:revenue"]
".*customer.*": ["urn:li:glossaryTerm:customer"]
Additional Notes
Glossary terms help standardize business terminology across your organization. Consider organizing terms into glossary nodes (hierarchies) for better discoverability.
Related Documentation
Tags:
glossary, glossary-terms, business-glossary, governance, metadata, columns, datasets, semantic-layer