ai

Databricks Unity Catalog กับ Automation Script —

databricks unity catalog automation script
Databricks Unity Catalog กับ Automation Script —

Databricks Unity Catalog

Databricks Unity Catalog กับ Automation Script —

Unity Catalog เป็น Data Governance Solution ที่จัดการ Data Assets ทั้งหมดจากจุดเดียว ใช้ 3-level Namespace มี Fine-grained Access Control, Data Lineage และ Audit Logging

Automation Scripts ช่วยให้จัดการ Unity Catalog ได้อัตโนมัติ สร้าง Catalogs, Schemas, Grant Permissions, Monitor Quality ผ่าน API และ SDK

Unity Catalog Setup

# === Unity Catalog Setup ด้วย SQL ===



-- 1. สร้าง Catalog

CREATE CATALOG IF NOT EXISTS production

COMMENT 'Production data catalog';



CREATE CATALOG IF NOT EXISTS development

COMMENT 'Development data catalog';



CREATE CATALOG IF NOT EXISTS staging

COMMENT 'Staging data catalog';



-- 2. สร้าง Schema

CREATE SCHEMA IF NOT EXISTS production.sales

COMMENT 'Sales domain data';



CREATE SCHEMA IF NOT EXISTS production.marketing

COMMENT 'Marketing domain data';



CREATE SCHEMA IF NOT EXISTS production.finance

COMMENT 'Finance domain data';



-- 3. สร้าง Table

CREATE TABLE IF NOT EXISTS production.sales.orders (

    order_id BIGINT NOT NULL,

    customer_id BIGINT NOT NULL,

    product_id BIGINT NOT NULL,

    amount DECIMAL(10, 2) NOT NULL,

    status STRING NOT NULL,

    created_at TIMESTAMP NOT NULL,

    updated_at TIMESTAMP

)

USING DELTA

COMMENT 'Customer orders'

TBLPROPERTIES (

    'delta.autoOptimize.optimizeWrite' = 'true',

    'delta.autoOptimize.autoCompact' = 'true',

    'quality' = 'gold'

);



-- 4. Grant Permissions

-- Data Engineers: full access

GRANT USE CATALOG ON CATALOG production TO `data-engineers`;

GRANT USE SCHEMA ON SCHEMA production.sales TO `data-engineers`;

GRANT ALL PRIVILEGES ON SCHEMA production.sales TO `data-engineers`;



-- Data Analysts: read-only

GRANT USE CATALOG ON CATALOG production TO `data-analysts`;

GRANT USE SCHEMA ON SCHEMA production.sales TO `data-analysts`;

GRANT SELECT ON SCHEMA production.sales TO `data-analysts`;



-- Data Scientists: read + create models

GRANT USE CATALOG ON CATALOG production TO `data-scientists`;

GRANT USE SCHEMA ON SCHEMA production.sales TO `data-scientists`;

GRANT SELECT ON SCHEMA production.sales TO `data-scientists`;



-- 5. Tags and Classification

ALTER TABLE production.sales.orders

SET TAGS ('domain' = 'sales', 'pii' = 'false', 'tier' = 'gold');



ALTER TABLE production.sales.orders

ALTER COLUMN customer_id SET TAGS ('pii' = 'true');



-- 6. Row-level Security

CREATE FUNCTION production.sales.region_filter(region STRING)

RETURN IF(IS_ACCOUNT_GROUP_MEMBER('global-access'), true, region = current_user_region());



ALTER TABLE production.sales.orders

SET ROW FILTER production.sales.region_filter ON (region);



-- 7. Column Masking

CREATE FUNCTION production.sales.mask_email(email STRING)

RETURN IF(IS_ACCOUNT_GROUP_MEMBER('pii-access'), email, regexp_replace(email, '(.).*@', '$1***@'));



ALTER TABLE production.sales.customers

ALTER COLUMN email SET MASK production.sales.mask_email;

Best Practices

  • 3-level Namespace: ใช้ Catalog แยกตาม Environment (prod/dev/staging) Schema แยกตาม Domain
  • Least Privilege: ให้สิทธิ์น้อยที่สุดที่จำเป็น ใช้ Groups แทน Users
  • PII Protection: ใช้ Column Masking และ Row-level Security สำหรับข้อมูล PII
  • Automation: ใช้ Terraform หรือ Databricks Asset Bundles จัดการ Infrastructure as Code
  • Audit Logging: เปิด Audit Logging ตรวจสอบการเข้าถึงข้อมูลทุกครั้ง
  • Data Classification: ใช้ Tags จัดประเภทข้อมูล (PII, Confidential, Public)

การนำไปใช้งานจริงในองค์กร

Databricks Unity Catalog กับ Automation Script —

สำหรับองค์กรขนาดกลางถึงใหญ่ แนะนำให้ใช้หลัก Three-Tier Architecture คือ Core Layer ที่เป็นแกนกลางของระบบ Distribution Layer ที่ทำหน้าที่กระจาย Traffic และ Access Layer ที่เชื่อมต่อกับผู้ใช้โดยตรง การแบ่ง Layer ชัดเจนช่วยให้การ Troubleshoot ง่ายขึ้นและสามารถ Scale ระบบได้ตามความต้องการ

เรื่อง Network Security ก็สำคัญไม่แพ้กัน ควรติดตั้ง Next-Generation Firewall ที่สามารถ Deep Packet Inspection ได้ ใช้ Network Segmentation แยก VLAN สำหรับแต่ละแผนก ติดตั้ง IDS/IPS เพื่อตรวจจับการโจมตี และทำ Regular Security Audit อย่างน้อยปีละ 2 ครั้ง

Unity Catalog คืออะไร

Data Governance Solution ของ Databricks จัดการ Data Assets จากจุดเดียว Tables Views Volumes Models Functions 3-level Namespace Fine-grained Access Control Lineage Audit Multi-cloud

Data Governance คืออะไร

กระบวนการจัดการข้อมูลให้มีคุณภาพปลอดภัยตามกฎระเบียบ Access Control Data Quality Lineage Classification Audit Trail

3-level Namespace คืออะไร

Catalog.Schema.Table เช่น production.sales.orders Catalog ระดับสูงสุด Schema จัดกลุ่มตาม Domain Table เป็น Data Asset จัดระเบียบควบคุมสิทธิ์ง่าย

วิธี Automate Data Governance ทำอย่างไร

ใช้ Databricks REST API SDK สร้าง Scripts Create Catalogs Schemas Grant Permissions Monitor Quality Generate Reports CI/CD Pipeline Terraform Databricks Asset Bundles

สรุป

Databricks Unity Catalog ให้ Data Governance ที่ครบถ้วน 3-level Namespace จัดระเบียบ Fine-grained Access Control Least Privilege Column Masking Row-level Security PII Protection Automation ด้วย API SDK Terraform Audit Logging ตรวจสอบการเข้าถึง Data Lineage ติดตามข้อมูล

XM Legend · เทรดเดอร์ & ผู้สอน Forex 13 ปี

ผู้ก่อตั้ง SiamCafe ตั้งแต่ปี 1997 · เทรดเดอร์สาย Forex มากกว่า 13 ปี ได้รับการยกย่องเป็น XM Legend · แบ่งปันความรู้ Forex, ไอที, AI และการเทรด จากประสบการณ์จริงในตลาดจริง