mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-30 20:56:03 +00:00
40 lines
1.4 KiB
Python
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}")
|