1. Create a Glossary at OpenMetadata or Select a previously added glossary
A Glossary Term is a preferred terminology for a concept. In a Glossary term, you can add tags, synonyms, related terms to build a conceptual semantic graph, and also add reference links.For details on creating glossary terms, refer to the OpenMetadata documentationTo view created Glossary Terms, navigate to the Glossary section within OpenMetadata govern->glossary->glossary_name->glossary_term_nameOpenMetadata also supports creating nested Glossary Terms, allowing you to organize them hierarchically and seamlessly ingest them into dbt.
Navigate to the desired glossary term in OpenMetadata’s glossary section.
The glossary term’s details page will display its FQN e.g. Glossary_name.glossary_term in the url like your-uri/glossary/Glossary_name.glossary_term.
Suppose you want to add the glossary terms term_one (FQN: Test_Glossary.term_one) and more_nested_term (FQN: Test_Glossary.term_two.nested_term.more_nested_term) to the customers table in your dbt model.To get FQN for term_one (Test_Glossary.term_one), navigate to govern->glossary->Test_Glossary->term_one.And for more_nested_term (Test_Glossary.term_two.nested_term.more_nested_term), navigate to govern->glossary->Test_Glossary->term_two->nested_term->more_nested_term.You can view the glossary term FQNs in the current URL: https://localhost:8585/glossary/Test_Glossary.term_two.nested_term.more_nested_term.In your dbt schema.yml file for the customers table model, add the Glossary Term FQNs under model->name->meta->openmetadata->glossary
The format should be a list of strings, like this: [ 'Test_Glossary.term_one', 'Test_Glossary.term_two.nested_term.more_nested_term' ].For details on dbt meta follow the link here
models: - name: customers meta: openmetadata: glossary: [ 'Test_Glossary.term_one', 'Test_Glossary.term_two.nested_term.more_nested_term', ] description: This table has basic information about a customer, as well as some derived facts based on a customer's orders columns: - name: customer_id description: This is a unique identifier for a customer tests: - unique - not_null
After adding the Glossary term information to your schema.yml file, run your dbt workflow.
The generated manifest.json file will then include the FQNs under node_name->meta->openmetadata->glossary as [ 'Test_Glossary.term_one', 'Test_Glossary.term_two.nested_term.more_nested_term' ]
3. Add Column-Level Glossary term information in schema.yml file
To associate a glossary term with a specific column in your dbt model, follow these steps:
Locate the customer_id column within the customers table model in your schema.yml file.
Under the customer_id column definition, add the glossary term FQNs under model->name->columns->column_name->meta->openmetadata->glossary as [ 'Test_Glossary.term_two.nested_term' ].
models: - name: customers meta: openmetadata: glossary: [ 'Test_Glossary.term_one', 'Test_Glossary.term_two.nested_term.more_nested_term', ] description: This table has basic information about a customer, as well as some derived facts based on a customer's orders columns: - name: customer_id description: This is a unique identifier for a customer meta: openmetadata: glossary: [ 'Test_Glossary.term_two.nested_term' ] tests: - unique - not_null
After adding the Glossary term information to your schema.yml file, run your dbt workflow.
The generated manifest.json file will then include the FQNs under node_name->columns->column_name->meta->openmetadata->glossary as [ 'Test_Glossary.term_two.nested_term' ]