datahub/metadata-ingestion/examples/library/platform_instance_create.py

40 lines
1.4 KiB
Python

# metadata-ingestion/examples/library/platform_instance_create.py
import os
import datahub.emitter.mce_builder as builder
from datahub.emitter.mcp import MetadataChangeProposalWrapper
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.metadata.schema_classes import DataPlatformInstancePropertiesClass
# Create the platform instance URN
platform_instance_urn = builder.make_dataplatform_instance_urn(
platform="mysql", instance="production-mysql-cluster"
)
# Define properties for the platform instance
platform_properties = DataPlatformInstancePropertiesClass(
name="Production MySQL Cluster",
description="Primary MySQL database cluster serving production workloads in US West region",
customProperties={
"region": "us-west-2",
"environment": "production",
"cluster_size": "3-node",
"version": "8.0.35",
},
externalUrl="https://cloud.mysql.com/console/clusters/prod-cluster",
)
# Create metadata change proposal
platform_instance_mcp = MetadataChangeProposalWrapper(
entityUrn=platform_instance_urn,
aspect=platform_properties,
)
# Emit metadata to DataHub
gms_server = os.getenv("DATAHUB_GMS_URL", "http://localhost:8080")
token = os.getenv("DATAHUB_GMS_TOKEN")
emitter = DatahubRestEmitter(gms_server=gms_server, token=token)
emitter.emit_mcp(platform_instance_mcp)
print(f"Created platform instance: {platform_instance_urn}")