Databricks Unity Catalog Edge Deployment —

Unity Catalog Edge

Databricks Unity Catalog Edge Deployment Data Governance Catalog Schema Access Control Lineage Audit Model Registry MLflow Delta Lake IoT Factory Retail
| Component | Purpose | Scope | Key Feature |
|---|---|---|---|
| Metastore | Top-level Container | Account-level | Workspace Binding |
| Catalog | First Namespace | Environment | production staging |
| Schema | Second Namespace | Domain | sales analytics ml |
| Table/View | Data Objects | Object-level | Delta Lake Format |
| Model | ML Models | Object-level | Version Alias |
Unity Catalog Setup
=== Unity Catalog Configuration ===
SQL — Create Catalog and Schema
CREATE CATALOG IF NOT EXISTS production;
CREATE SCHEMA IF NOT EXISTS production.ml_models;
CREATE SCHEMA IF NOT EXISTS production.feature_store;
CREATE SCHEMA IF NOT EXISTS production.edge_metrics;
-- Grant permissions
GRANT USE CATALOG ON CATALOG production TO `data-engineers`;
GRANT USE SCHEMA ON SCHEMA production.ml_models TO `ml-engineers`;
GRANT SELECT ON SCHEMA production.feature_store TO `ml-engineers`;
GRANT CREATE TABLE ON SCHEMA production.edge_metrics TO `edge-devices`;
-- Row-level security
CREATE FUNCTION production.ml_models.region_filter(region STRING)
RETURN IF(IS_ACCOUNT_GROUP_MEMBER('global-admin'), true, region = current_user_region());
ALTER TABLE production.ml_models.predictions
SET ROW FILTER production.ml_models.region_filter ON (region);
-- Column masking
CREATE FUNCTION production.ml_models.mask_pii(val STRING)
RETURN IF(IS_ACCOUNT_GROUP_MEMBER('pii-access'), val, '***MASKED***');
ALTER TABLE production.feature_store.customers
ALTER COLUMN email SET MASK production.ml_models.mask_pii;
Python — Unity Catalog with MLflow
import mlflow
เนื้อหาเกี่ยวข้อง — ดูเพิ่มเติมเรื่อง Tailscale Mesh Stream Processing
from mlflow.models import infer_signature
mlflow.set_registry_uri("databricks-uc")
# Register model in Unity Catalog
with mlflow.start_run():
model = train_model(X_train, y_train)
signature = infer_signature(X_train, model.predict(X_train))
mlflow.sklearn.log_model(
แนะนำเพิ่มเติม — สัญญาณเทรดรายวัน XM Signal
model,
artifact_path="model",
registered_model_name="production.ml_models.edge_detector",
signature=signature,
input_example=X_train[:5],
)
# Set model alias
from mlflow import MlflowClient
client = MlflowClient()
client.set_registered_model_alias(
name="production.ml_models.edge_detector",
alias="champion",
version=3
)
from dataclasses import dataclass
@dataclass
class CatalogObject:
full_name: str
เนื้อหาเกี่ยวข้อง — ดูเพิ่มเติมเรื่อง Several การใช — คู่มือฉบับสมบูรณ์ 2026
object_type: str
owner: str
access: str
lineage: str
objects = [
CatalogObject("production.ml_models.edge_detector", "Model", "ml-team", "ml-engineers: USE", "training_data → model"),
CatalogObject("production.feature_store.user_features", "Table", "data-team", "ml-engineers: SELECT", "raw_events → features"),
CatalogObject("production.edge_metrics.predictions", "Table", "edge-service", "analysts: SELECT", "edge_device → metrics"),
CatalogObject("production.ml_models.preprocessing", "Function", "ml-team", "ml-engineers: EXECUTE", "feature_store → transform"),
]
แนะนำเพิ่มเติม — ระบบเทรดของ iCafeForex
Edge Deployment Pipeline
=== Edge Model Deployment ===
Deployment Pipeline
1. Train model in Databricks
2. Register in Unity Catalog
3. Set alias "champion"
4. Export to ONNX/TensorRT
5. Push to Edge Registry (Harbor/ECR)
6. Deploy to Edge devices via GitOps
7. Monitor metrics → send back to Unity Catalog
เนื้อหาเกี่ยวข้อง — ดูเพิ่มเติมเรื่อง Java Micronaut DNS Management — คู่มือฉบับสมบูรณ์ 2026
Edge Deployment Script
import mlflow
import onnx
import docker

client = MlflowClient()
model_version = client.get_model_version_by_alias(model_name, alias)
model_uri = f"models:/{model_name}@{alias}"
# Export to ONNX
model = mlflow.pyfunc.load_model(model_uri)
onnx_path = export_to_onnx(model, "model.onnx")
# Build edge container
docker_client = docker.from_env()
image = docker_client.images.build(
path="./edge-container",
tag=f"edge-model:{model_version.version}",
buildargs={"MODEL_PATH": onnx_path}
)
# Push to registry
docker_client.images.push(f"registry/edge-model:{model_version.version}")
# Deploy to edge devices
deploy_to_device(device, f"edge-model:{model_version.version}")
log_deployment(model_name, model_version.version, device)
@dataclass
เนื้อหาเกี่ยวข้อง — แนะนำให้อ่าน Snyk Code Security Identity Access Management
class EdgeDevice:
device_id: str
location: str
model_version: str
status: str
latency_ms: float
accuracy: float
last_sync: str
devices = [
EdgeDevice("edge-001", "Factory A - Line 1", "v3.2", "Running", 12.5, 0.965, "2 min ago"),
EdgeDevice("edge-002", "Factory A - Line 2", "v3.2", "Running", 14.2, 0.958, "1 min ago"),
EdgeDevice("edge-003", "Factory B - Line 1", "v3.1", "Updating", 0, 0, "Deploying v3.2"),
EdgeDevice("edge-004", "Retail Store 1", "v3.2", "Running", 18.7, 0.942, "5 min ago"),
EdgeDevice("edge-005", "Retail Store 2", "v3.2", "Offline", 0, 0, "Last seen 2h ago"),
]
if d.status == "Running":
เคล็ดลับ
- Namespace: ใช้ Catalog.Schema.Object จัดระเบียบ Data
- Alias: ใช้ Model Alias champion/challenger แทน Version Number
- Lineage: เปิด Lineage ติดตามที่มาข้อมูลอัตโนมัติ
- Monitor: ส่ง Edge Metrics กลับ Unity Catalog ทุก Inference
- Rollback: เตรียม Rollback Plan เสมอเมื่อ Deploy Model ใหม่
Unity Catalog คืออะไร
Unified Governance Databricks Data Assets Tables Views Functions Models Catalog Schema Object GRANT REVOKE Lineage Audit Delta Lake Sharing





