mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-12 09:23:52 +00:00
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
|
|
import logging
|
||
|
|
|
||
|
|
from datahub.emitter.mce_builder import make_dataset_urn, make_domain_urn
|
||
|
|
from datahub.emitter.mcp import MetadataChangeProposalWrapper
|
||
|
|
from datahub.emitter.rest_emitter import DatahubRestEmitter
|
||
|
|
from datahub.metadata.schema_classes import DomainsClass
|
||
|
|
|
||
|
|
log = logging.getLogger(__name__)
|
||
|
|
logging.basicConfig(level=logging.INFO)
|
||
|
|
|
||
|
|
# Batch assign multiple datasets to the same domain
|
||
|
|
domain_urn = make_domain_urn("marketing")
|
||
|
|
|
||
|
|
# List of datasets to assign
|
||
|
|
datasets = [
|
||
|
|
"snowflake.marketing_db.campaigns",
|
||
|
|
"snowflake.marketing_db.leads",
|
||
|
|
"snowflake.marketing_db.opportunities",
|
||
|
|
]
|
||
|
|
|
||
|
|
rest_emitter = DatahubRestEmitter(gms_server="http://localhost:8080")
|
||
|
|
|
||
|
|
for dataset_name in datasets:
|
||
|
|
dataset_urn = make_dataset_urn(platform="snowflake", name=dataset_name, env="PROD")
|
||
|
|
|
||
|
|
# Create the domains aspect with the target domain
|
||
|
|
domains_aspect = DomainsClass(domains=[domain_urn])
|
||
|
|
|
||
|
|
event: MetadataChangeProposalWrapper = MetadataChangeProposalWrapper(
|
||
|
|
entityUrn=dataset_urn,
|
||
|
|
aspect=domains_aspect,
|
||
|
|
)
|
||
|
|
|
||
|
|
rest_emitter.emit(event)
|
||
|
|
log.info(f"Assigned {dataset_urn} to domain {domain_urn}")
|
||
|
|
|
||
|
|
log.info(f"Successfully assigned {len(datasets)} datasets to domain {domain_urn}")
|