การกำกับดูแลขั้นพื้นฐานด้วย Knowledge Catalog Universal Catalog: การเริ่มต้นใช้งาน

1. บทนำ

ในฐานะนักพัฒนาแอปและวิศวกรข้อมูล เรามักจะได้รับข้อมูลจำนวนมากที่ดูเหมือนเป็นบึงข้อมูล และต้องเผชิญกับปัญหาเดิมๆ ซ้ำแล้วซ้ำเล่า เช่น "คอลัมน์ 'amt' นี้มีคำจำกัดความที่แท้จริงว่าอย่างไร" "ใครจะเป็นผู้รับผิดชอบหากชุดข้อมูลนี้ใช้งานไม่ได้" หรือ "เราได้รับอนุญาตให้ใช้ตารางนี้ในเครื่องมือแนะนำที่ปรับเปลี่ยนตามโปรไฟล์ของผู้ใช้หรือไม่"

โดยทั่วไปแล้ว แคตตาล็อกข้อมูลเป็นเพียงรายการข้อมูลที่ไม่ได้ใช้งานซึ่งเต็มไปด้วยแท็กข้อความอิสระที่กลายเป็นข้อมูลที่ไม่สอดคล้องกันและล้าสมัยอย่างรวดเร็ว และไม่ได้บังคับใช้โครงสร้าง ทำให้การกำกับดูแลแบบเป็นโปรแกรมเป็นไปไม่ได้

เพื่อให้การกำกับดูแลข้อมูลเป็นไปได้จริง เราจะพิจารณาสถานการณ์ในแล็บนี้ นั่นคือ การสร้างการกำกับดูแลที่เข้มงวดสำหรับข้อมูลยอดขายปลีกดิบเพื่อให้แผนกการเงินเชื่อถือได้สำหรับการรายงานอย่างเป็นทางการ โดยคุณจะย้ายข้อมูลนี้จากสถานะ "บึง" ที่ไม่ชัดเจนไปยังผลิตภัณฑ์ที่มีการกำกับดูแล

Knowledge Catalog Universal Catalog เปลี่ยนแปลงสิ่งนี้ด้วยการมอบเฟรมเวิร์กการจัดการข้อมูลเมตาที่มีโครงสร้างและใช้งานได้ ซึ่งช่วยให้คุณแนบข้อมูลเมตาที่มีโครงสร้างซึ่งขับเคลื่อนด้วยสคีมา (Aspect) และคำจำกัดความทางธุรกิจที่ยอมรับ (Glossary) ลงในชิ้นงานข้อมูล (Entry) ได้โดยตรง

ก่อนที่จะเขียนสคริปต์ Python หรือโมดูล Terraform เพื่อทำให้กระบวนการนี้เป็นอัตโนมัติในระดับใหญ่ คุณต้องทำความเข้าใจโมเดลออบเจ็กต์พื้นฐาน

ใน Codelab นี้ เราจะดำเนินการตามขั้นตอนการกำกับดูแลด้วยตนเองในคอนโซล Google Cloud โดยเราจะเชื่อมโยง Entry, ประเภท Aspect, Aspect และ Glossary อย่างชัดเจนเพื่อให้คุณมีโมเดลความคิดที่ชัดเจนเกี่ยวกับวิธีทำให้ข้อมูลค้นพบได้ เข้าใจได้ และเชื่อถือได้

ข้อกำหนดเบื้องต้น

  • โปรเจ็กต์ Google Cloud ที่มีสิทธิ์เข้าถึงระดับเจ้าของหรือผู้แก้ไข
  • ความคุ้นเคยกับคอนโซล Google Cloud
  • ทักษะพื้นฐานในการใช้ gcloud และ bq CLI ใน Cloud Shell

สิ่งที่คุณจะได้เรียนรู้

  • ความแตกต่างที่สำคัญระหว่าง Knowledge Catalog Entry, ประเภท Aspect และ Aspect
  • วิธีสร้าง Business Glossary เพื่อแก้ไขความไม่ชัดเจนในคำศัพท์
  • วิธีออกแบบประเภท Aspect เพื่อบังคับใช้สคีมาที่เข้มงวดสำหรับข้อมูลเมตาทางเทคนิค (นอกเหนือจาก "แท็ก")
  • วิธีลิงก์คำใน Business Glossary กับคอลัมน์ BigQuery ที่เฉพาะเจาะจง
  • วิธีแนบ Aspect ที่มีโครงสร้างกับชิ้นงานข้อมูลและตรวจสอบข้อมูลที่ป้อน
  • วิธีเรียกใช้คำค้นหาที่แม่นยำกับข้อมูลเมตาที่มีโครงสร้างใหม่นี้

สิ่งที่คุณต้องมี

  • บัญชี Google Cloud และโปรเจ็กต์ Google Cloud
  • เว็บเบราว์เซอร์ เช่น Chrome

แนวคิดหลัก

  • Entry: การแสดงชิ้นงานข้อมูลในแคตตาล็อกในรูปแบบที่เป็นมาตรฐานและเป็นนามธรรม ให้คิดว่า Entry เป็น "ตัวชี้" หรือ "คำนาม" เมื่อคุณสร้างตาราง BigQuery, Knowledge Catalog จะสร้าง Entry สำหรับตารางนั้นโดยอัตโนมัติ เราไม่ได้กำกับดูแลตารางโดยตรง แต่กำกับดูแล Entry ของตาราง
  • Business Glossary: พจนานุกรมคำศัพท์ทางธุรกิจขององค์กรที่เก็บไว้ในที่เดียวและมีการควบคุมเวอร์ชัน ซึ่งเป็นแหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียว และช่วยป้องกันปัญหา "ฝ่ายขายกำหนด GMV แตกต่างจากฝ่ายการเงิน"
  • ประเภท Aspect: สคีมาหรือเทมเพลตสำหรับข้อมูลเมตาหมวดหมู่ที่เฉพาะเจาะจง ประเภท Aspect กำหนดฟิลด์ ประเภทข้อมูล (สตริง, Enum, Datetime ฯลฯ) และข้อจำกัด (ต้องระบุ/ไม่บังคับ) ซึ่งเป็นสัญญาที่ช่วยให้มั่นใจได้ถึงความสอดคล้องของข้อมูลเมตา
  • Aspect: ข้อมูลเมตาที่เฉพาะเจาะจงซึ่งแนบกับ Entry และเป็นไปตามโครงสร้างที่กำหนดโดยประเภท Aspect โดยมีข้อมูลจริงที่ตรงตามสคีมาของประเภท Aspect

2. การตั้งค่าและข้อกำหนด

เริ่มต้น Cloud Shell

แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลผ่านแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะได้ใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์

จาก คอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

เปิดใช้งาน Cloud Shell

การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมควรใช้เวลาไม่นาน เมื่อเสร็จแล้ว คุณควรเห็นข้อความคล้ายกับข้อความต่อไปนี้

ภาพหน้าจอของเทอร์มินัล Google Cloud Shell ที่แสดงว่าสภาพแวดล้อมเชื่อมต่อแล้ว

เครื่องเสมือนนี้มาพร้อมกับเครื่องมือการพัฒนาทั้งหมดที่คุณจะต้องใช้ โดยมีไดเรกทอรีหลักขนาด 5 GB ที่คงอยู่ และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ โดยไม่ต้องติดตั้งสิ่งใด

เปิดใช้ API ที่จำเป็นและกำหนดค่าสภาพแวดล้อม

เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่ารหัสโปรเจ็กต์ กำหนดภูมิภาค และเปิดใช้ API ของบริการที่จำเป็น

export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export LOCATION="us-central1"

gcloud services enable dataplex.googleapis.com \
                       bigquery.googleapis.com \
                       datacatalog.googleapis.com

สร้างชุดข้อมูล BigQuery และเตรียมข้อมูลตัวอย่าง

เราต้องมีชิ้นงานข้อมูลที่เป็นรูปธรรมเพื่อกำกับดูแล โดยเราจะสร้างชุดข้อมูล BigQuery และโหลด CSV ตัวอย่างขนาดเล็กที่แสดงธุรกรรม Knowledge Catalog จะค้นพบตารางนี้โดยอัตโนมัติและสร้าง Entry สำหรับตาราง

# Create the BigQuery Dataset in the us-central1 region
bq --location=$LOCATION mk --dataset \
    --description "Retail data for governance codelab" \
    $PROJECT_ID:retail_data

# Create a temporary CSV file with the sample data
echo "transaction_id,user_email,gmv,transaction_date
1001,test@example.com,150.50,2025-08-28
1002,user@example.com,75.00,2025-08-28" > /tmp/transactions.csv

# Load the data from the temporary CSV file into BigQuery
bq load \
    --source_format=CSV \
    --autodetect \
    retail_data.transactions \
    /tmp/transactions.csv

# (Optional) Clean up the temporary file
rm /tmp/transactions.csv

ยืนยันการตั้งค่าโดยเรียกใช้การค้นหาอย่างรวดเร็ว

bq query --nouse_legacy_sql "SELECT * FROM retail_data.transactions"

3. สร้างภาษาที่ใช้ร่วมกันด้วย Business Glossary

การกำกับดูแลที่มีประสิทธิภาพเริ่มต้นด้วยคำจำกัดความที่ชัดเจน หากนักพัฒนาแอปเห็นคอลัมน์ชื่อ gmv ก็ไม่ควรต้องเดาว่าคอลัมน์นี้รวมภาษีหรือการคืนสินค้าหรือไม่ Business Glossary ช่วยแก้ปัญหานี้ด้วยการแยกคำจำกัดความทางธุรกิจจากการใช้งานทางเทคนิค

  1. ในคอนโซล Google Cloud ให้ไปที่ Knowledge Catalog Universal Catalog
  2. ในเมนูการนำทางด้านซ้าย ให้เลือก Glossary (ในส่วนจัดการข้อมูลเมตา)

96020207ba4bd128.png

  1. คลิกสร้าง Business Glossary
  2. ป้อนรายละเอียดต่อไปนี้
    • ชื่อ: Retail Business Glossary
    • สถานที่: us-central1 (หรือสถานที่ที่คุณกำหนดไว้ในการตั้งค่า)
  3. คลิกสร้าง

e3b146e5f3b57785.png

  1. คลิก Retail Business Glossary ที่สร้างขึ้นใหม่เพื่อเข้าสู่ Glossary

c98bdf049e946234.png

  1. คลิกสร้างหมวดหมู่ และตั้งชื่อเป็น Sales Metrics จากนั้นคลิกสร้าง หมวดหมู่ช่วยจัดกลุ่มคำที่เกี่ยวข้อง
  2. เลือกหมวดหมู่ Sales Metrics แล้วคลิกเพิ่มคำ จากนั้นตั้งชื่อเป็น Gross Merchandise Value แล้วคลิกสร้าง
  3. คลิกปุ่ม + เพิ่มในภาพรวม จากนั้นกรอกรายละเอียดต่อไปนี้
    • ภาพรวม: The total value of merchandise sold over a given period of time before the deduction of any fees or expenses. This is a key indicator of e-commerce business growth.
  4. คลิกบันทึก

3a642fd2a41c040e.png

ตอนนี้คุณได้สร้างคำจำกัดความที่ชัดเจนซึ่งสามารถลิงก์กับชิ้นงานทางเทคนิคทั่วทั้งองค์กรได้แล้ว

4. กำหนดข้อมูลเมตาทางเทคนิคที่มีโครงสร้างด้วยประเภท Aspect

แท็ก "คีย์:ค่า" อย่างง่ายไม่เพียงพอสำหรับการกำกับดูแลข้อมูลอย่างเข้มงวด หากคุณต้องการติดตาม "เจ้าของข้อมูล" คุณไม่ต้องการให้ตารางหนึ่งมีแท็ก owner:bob และอีกตารางหนึ่งมีแท็ก contact:alice@example.com คุณต้องมีสคีมาเพื่อบังคับใช้ว่าต้องระบุเจ้าของและเจ้าของต้องมีรูปแบบอีเมลที่ถูกต้อง

เราจะใช้ประเภท Aspect เพื่อกำหนดสัญญานี้

  1. ในการนำทางด้านซ้ายของ Knowledge Catalog ในส่วนแคตตาล็อก ให้เลือกประเภท Aspect และเทมเพลตแท็ก
  1. เลือกแท็บกำหนดเอง แล้วคลิกสร้างประเภท Aspect

a920c555d40425a.png

  1. ป้อนรายละเอียดต่อไปนี้
    • ชื่อที่แสดง: Data Asset Governance
    • สถานที่: us-central1
  2. ในส่วนเทมเพลต เราจะกำหนดสคีมาสำหรับ Aspect คลิกเพิ่มฟิลด์ เพื่อสร้างฟิลด์ 3 ฟิลด์ต่อไปนี้
    • ฟิลด์ที่ 1:
      • ชื่อที่แสดง: Data Steward
      • ประเภท: Text
      • ประเภทข้อความ: Plain text
      • จำนวน: ต้องระบุ (เลือกช่อง)
    • ฟิลด์ที่ 2 (คลิกเพิ่มฟิลด์ อีกครั้ง)
      • ชื่อที่แสดง: Data Sensitivity
      • ประเภท: Enum
      • ค่า: เพิ่ม Public, Internal และ Confidential
      • จำนวน: ไม่บังคับ
    • ฟิลด์ที่ 3 (คลิกเพิ่มฟิลด์ อีกครั้ง)
      • ชื่อที่แสดง: Last Review Date
      • ประเภท: Date and time
      • จำนวน: ไม่บังคับ
  3. คลิกบันทึก

20babd75c2b8dce6.png

คุณได้สร้างสัญญาข้อมูลเมตาที่ใช้ซ้ำได้แล้ว แม้ว่าตอนนี้จะยังไม่มีการใช้สัญญา แต่โครงสร้างก็มีอยู่แล้ว

5. เชื่อมโยงการกำกับดูแลกับชิ้นงาน

ตอนนี้เราจะนำทุกอย่างมารวมกัน เรามีตาราง BigQuery (retail_data.transactions), คำจำกัดความทางธุรกิจ (Gross Merchandise Value) และสคีมาการกำกับดูแล (Data Asset Governance)

เราจะเพิ่มข้อมูลลงใน Entry ของ Knowledge Catalog สำหรับตาราง BigQuery

เพิ่มข้อมูลบริบททางธุรกิจลงในสคีมา (ระดับคอลัมน์)

บอกให้ผู้ใช้ทราบว่าคอลัมน์ gmv หมายถึงอะไรโดยลิงก์คอลัมน์กับ Glossary

  1. ในการนำทางด้านซ้ายของ Knowledge Catalog ให้คลิกค้นหา
  2. ที่ด้านขวาบน ให้คลิกแท็บ Knowledge Catalog Universal Catalog หากยังไม่ได้เปิดใช้งาน

849a24e7b1a86a19.png

  1. ค้นหา retail_data.transactions คลิกผลการค้นหาสำหรับตาราง BigQuery

54d3edd1520593a9.png

  1. คลิกแท็บสคีมา ในรายละเอียด Entry
  2. เลือกช่องทำเครื่องหมายของแถวคอลัมน์ gmv แล้วคลิกเพิ่มคำทางธุรกิจ
  3. เลือกคำ Gross Merchandise Value

64768eecf630c90b.png

คอลัมน์ gmv ไม่ได้เป็นเพียง "FLOAT" อีกต่อไป แต่ลิงก์กับคำจำกัดความของ Gross Merchandise Value ของบริษัทแล้ว

เพิ่มข้อมูลเมตาทางเทคนิคที่มีโครงสร้างลงใน Entry (ระดับตาราง)

จากนั้นเราจะแนบ Aspect Data Asset Governance กับตารางเพื่อกำหนดความเป็นเจ้าของและความละเอียดอ่อน

  1. อยู่ในหน้า Entry retail_data.transactions
  2. คลิกแท็บเพิ่มแท็กหรือ Aspect แล้วเลือกประเภท Data Asset Governance จากเมนูแบบเลื่อนลง

4b770307159a28d8.png

  1. ตอนนี้แบบฟอร์มจะแสดงฟิลด์ที่กำหนดไว้ในสคีมาประเภท Aspect กรอกข้อมูลในฟิลด์ดังนี้
    • Data Steward: finance-team@example.com
    • Data Sensitivity: เลือก Internal
    • Last Review Date: เลือกวันที่ปัจจุบัน
  2. คลิกบันทึก

f953c5569520d42a.png

คุณแนบ Aspect ที่มีโครงสร้างกับ Entry ได้สำเร็จแล้ว ข้อมูลนี้จะได้รับการตรวจสอบกับสคีมาที่คุณสร้างขึ้น ซึ่งแตกต่างจากแท็กอย่างง่าย

6. การค้นพบและการยืนยันแบบรวม

เราไม่ได้ดำเนินการนี้เพียงเพื่อกรอกแบบฟอร์ม แต่ทำเพื่อให้ข้อมูลค้นพบได้และเชื่อถือได้ มาดูกันว่าข้อมูลเมตานี้จะเปลี่ยนประสบการณ์การใช้งานของนักพัฒนาแอปในการค้นหาและการค้นพบอย่างไร

กลับไปที่หน้าค้นหา หลักใน Knowledge Catalog Universal Catalog

สมมติว่าคุณเป็นวิศวกรแพลตฟอร์มที่บังคับใช้การกำกับดูแล คุณต้องค้นหาชิ้นงานทั้งหมดที่ทำเครื่องหมายเป็น "Internal" ซึ่งอยู่ในบังคับของประเภท Aspect ที่เฉพาะเจาะจง คุณต้องใช้เพรดิเคตที่แม่นยำตามสคีมา

คุณสามารถยืนยันได้ 2 วิธี ได้แก่ การใช้ไวยากรณ์การค้นหาที่แม่นยำ (จำเป็นสำหรับการทำงานอัตโนมัติ) หรือการใช้ตัวกรอง UI แบบโต้ตอบ

วิธีที่ 1: ยืนยันผ่านการค้นหาที่มีโครงสร้าง

  1. ในแถบค้นหา (ในโหมดการค้นหาคีย์เวิร์ด) ให้ป้อนคำค้นหาที่มีโครงสร้างต่อไปนี้
aspect:data-asset-governance.data-sensitivity=Internal
  1. คุณควรเห็นตาราง retail_data.transactions

49120fe4ea224359.png

วิธีที่ 2: ยืนยันผ่านแง่มุมตัวกรอง UI

  1. ล้างแถบค้นหาเพื่อรีเซ็ตมุมมอง
  2. ดูแผงกรองตามพร็อพเพอร์ตี้ ทางด้านซ้ายของหน้าจอ
  3. เลื่อนลงและขยายส่วนการกำกับดูแลชิ้นงานข้อมูล (ส่วนนี้แสดงถึงประเภท Aspect ที่คุณสร้างขึ้น)
  4. ในส่วนData Sensitivity ให้เลือกช่อง Internal
  5. ผลการค้นหาจะอัปเดตเพื่อแสดงตาราง retail_data.transactions

4df224cb06720ec4.png

ไม่ว่าคุณจะใช้คำค้นหาที่พิมพ์หรือตัวกรอง UI กลไกพื้นฐานก็เหมือนกัน

ซึ่งแสดงให้เห็นถึงความแตกต่างพื้นฐานระหว่าง Knowledge Catalog กับ Wiki อย่างง่าย นั่นคือ ข้อมูลเมตาของคุณเป็นโครงสร้างที่ค้นหาได้ ตอนนี้คุณสามารถสร้างการตรวจสอบอัตโนมัติ (เช่น "ค้นหาตารางทั้งหมดที่ last_review_date เกิน 1 ปีที่ผ่านมา") โดยอาศัยโครงสร้างที่คาดการณ์ได้นี้

7. ล้างข้อมูลสภาพแวดล้อม

หากต้องการหลีกเลี่ยงการเรียกเก็บเงินอย่างต่อเนื่อง ให้ลบทรัพยากรที่สร้างขึ้นใน Codelab นี้

ลบชุดข้อมูล BigQuery

คำสั่งนี้ไม่สามารถย้อนกลับได้และใช้แฟล็ก -f (บังคับ) เพื่อนำชุดข้อมูลและตารางทั้งหมดออกโดยไม่ต้องยืนยัน

# Re-run these exports if your Cloud Shell session timed out
export PROJECT_ID=$(gcloud config get-value project)

# Manually type this command to confirm you are deleting the correct dataset
bq rm -r -f --dataset $PROJECT_ID:retail_data

ลบอาร์ติแฟกต์ Knowledge Catalog

  1. ไปที่ Knowledge Catalog Universal Catalog UI > จัดการข้อมูลเมตา > แคตตาล็อก
  2. ในส่วนประเภท Aspect และเทมเพลตแท็ก ให้เลือกประเภท Aspect data_asset_governance แล้วลบ
  3. ไปที่จัดการข้อมูลเมตา > Glossary เลือก Retail Business Glossary แล้วลบ ตรวจสอบว่าได้ลบคำ Gross Merchandise Value ก่อน แล้วจึงลบ Glossary ในภายหลัง

8. ยินดีด้วย

คุณได้ก้าวข้ามการติดแท็กข้อมูลอย่างง่ายและสร้างโมเดลการกำกับดูแลที่มีโครงสร้างพื้นฐานใน Knowledge Catalog แล้ว

สิ่งที่คุณได้เรียนรู้มีดังนี้

  • Glossary ช่วยแก้ไขความไม่ชัดเจนทางธุรกิจ
  • ประเภท Aspect มีสัญญาข้อมูลเมตาทางเทคนิค
  • Aspect ใช้สคีมาดังกล่าวกับ Data Entry จริง
  • การค้นหา Knowledge Catalog ใช้ข้อมูลเมตาที่มีโครงสร้างนี้เพื่อการค้นพบที่แม่นยำ

ขั้นตอนถัดไป

  • การกำกับดูแลเป็นโค้ด: ใช้ ผู้ให้บริการ Google Cloud Terraform เพื่อกำหนดประเภท Aspect และ Glossary ในการควบคุมเวอร์ชัน ซึ่งจะช่วยให้มั่นใจได้ว่าสคีมาจะสอดคล้องกันในสภาพแวดล้อมการพัฒนา/การทดสอบ/การใช้งานจริง
  • การติดแท็กอัตโนมัติ: เขียนฟังก์ชัน Cloud หรือขั้นตอน Cloud Build ที่ทริกเกอร์โดยการสร้างชุดข้อมูลใหม่ ซึ่งจะแนบ Aspect "การกำกับดูแลชิ้นงานข้อมูล" โดยอัตโนมัติพร้อมค่าเริ่มต้น (เช่น sensitivity=Internal, steward=TBD) และทำเครื่องหมายเพื่อตรวจสอบ