Area: Product
Sub-Area: Governance
Issue
Owner information for datasets is not updating when added through the UI or API, or owners are being overwritten by subsequent ingestion runs. This typically occurs due to ingestion configuration overriding manual ownership assignments or incorrect owner URN formats.
You Might Be Asking:
- How do I add an owner to a dataset?
- Why do my owner assignments keep disappearing?
- Can I bulk assign owners during ingestion?
Solution
- Add owners via GraphQL API:
mutation addOwners {
addOwners(
input: {
ownerUrns: ["urn:li:corpuser:john.doe", "urn:li:corpGroup:data-engineering"],
resourceUrn: "urn:li:dataset:(urn:li:dataPlatform:snowflake,db.schema.table,PROD)"
}
)
}
- Configure ingestion to preserve manual owners:
Example for Snowflake. This can be adapted for other data sources/connectors.
source:
type: snowflake
config:
# Extract owners from source system
extract_owners: true
- Use transformers to add owners based on patterns:
transformers:
- type: "pattern_add_dataset_ownership"
config:
owner_urns:
- "urn:li:corpuser:data.steward"
ownership_type: "TECHNICAL_OWNER"
owner_pattern:
rules:
"finance.*": ["urn:li:corpGroup:finance-team"]
"marketing.*": ["urn:li:corpGroup:marketing-team"]
- Ensure owner entities exist in DataHub:
# Create user if needed
curl -X POST http://localhost:8080/api/graphql \
-H 'Content-Type: application/json' \
-d '{"query": "mutation { createCorpUser(input: {username: \"john.doe\", name: \"John Doe\"}) }"}'
- For LDAP/AD integration, sync users automatically:
Example for LDAP. This can be adapted for other identity providers.
source:
type: ldap
config:
ldap_server: "ldap://your-server"
ldap_user: "cn=admin,dc=example,dc=com"
base_dn: "dc=example,dc=com"
Additional Notes
DataHub supports multiple owner types: Technical Owner, Business Owner, Data Steward, and None (delegated ownership). Use appropriate types to clarify responsibilities.
Related Documentation
Tags:
ownership, owners, governance, technical-owner, business-owner, data-steward, transformers, ldap