1. บทนำ
ในฐานะนักพัฒนาแอปและวิศวกรข้อมูล เรามักจะได้รับคอลเล็กชันข้อมูลขนาดใหญ่ที่ดูเหมือนบึงข้อมูล และต้องเผชิญกับจุดที่ทำให้เกิดความขัดแย้งซ้ำๆ เช่น "คอลัมน์ 'amt' นี้มีคำจำกัดความที่แท้จริงว่าอย่างไร" "ใครจะเป็นผู้รับผิดชอบหากชุดข้อมูลนี้ใช้งานไม่ได้" หรือ "เราได้รับอนุญาตให้ใช้ตารางนี้ในเครื่องมือแนะนำที่ปรับเปลี่ยนตามโปรไฟล์ของผู้ใช้ได้หรือไม่"
โดยทั่วไปแล้ว แคตตาล็อกข้อมูลจะเป็นคลังข้อมูลแบบพาสซีฟที่เต็มไปด้วยแท็กข้อความอิสระซึ่งจะกลายเป็นข้อมูลที่ไม่สอดคล้องกันและล้าสมัยอย่างรวดเร็ว เนื่องจากไม่มีการบังคับใช้โครงสร้าง จึงทำให้การกำกับดูแลแบบเป็นโปรแกรมเป็นไปไม่ได้
เพื่อให้การดำเนินการนี้เป็นไปได้จริง เราจะทำตามสถานการณ์ในแล็บนี้ นั่นคือ การสร้างการกำกับดูแลที่แข็งแกร่งสำหรับข้อมูลยอดขายปลีกดิบเพื่อให้แผนกการเงินเชื่อถือได้สำหรับการรายงานอย่างเป็นทางการ โดยคุณจะย้ายข้อมูลนี้จากสถานะ "บึง" ที่คลุมเครือไปยังผลิตภัณฑ์ที่มีการกำกับดูแล
Dataplex Universal Catalog จะเปลี่ยนแปลงสิ่งนี้ด้วยการมอบเฟรมเวิร์กการจัดการข้อมูลเมตาที่มีโครงสร้างและมีการใช้งาน ซึ่งช่วยให้คุณแนบข้อมูลเมตาที่มีโครงสร้างซึ่งขับเคลื่อนด้วยสคีมา (Aspect) และคำจำกัดความทางธุรกิจที่ยอมรับ (Glossary) กับชิ้นงานข้อมูล (Entry) ได้โดยตรง
ก่อนที่จะเขียนสคริปต์ Python หรือโมดูล Terraform เพื่อทำให้กระบวนการนี้เป็นอัตโนมัติในระดับใหญ่ คุณต้องทำความเข้าใจโมเดลออบเจ็กต์พื้นฐาน
ใน Codelab นี้ เราจะดำเนินการตามขั้นตอนการกำกับดูแลด้วยตนเองในคอนโซล Google Cloud โดยเราจะเชื่อมโยง Entry, ประเภท Aspect, Aspect และ Glossary อย่างชัดเจนเพื่อให้คุณมีโมเดลความคิดที่ชัดเจนเกี่ยวกับวิธีทำให้ข้อมูลค้นพบได้ เข้าใจได้ และเชื่อถือได้
ข้อกำหนดเบื้องต้น
- โปรเจ็กต์ Google Cloud ที่มีสิทธิ์เข้าถึงระดับเจ้าของหรือผู้แก้ไข
- ความคุ้นเคยกับคอนโซล Google Cloud
- ทักษะพื้นฐานในการใช้ gcloud และ bq CLI ใน Cloud Shell
สิ่งที่คุณจะได้เรียนรู้
- ความแตกต่างที่สำคัญระหว่าง Dataplex Entry, ประเภท Aspect และ Aspect
- วิธีสร้าง Business Glossary เพื่อแก้ไขความคลุมเครือในคำศัพท์
- วิธีออกแบบประเภท Aspect เพื่อบังคับใช้สคีมาที่เข้มงวดสำหรับข้อมูลเมตาทางเทคนิค (มากกว่า "แท็ก")
- วิธีลิงก์คำใน Business Glossary กับคอลัมน์ BigQuery ที่เฉพาะเจาะจง
- วิธีแนบ Aspect ที่มีโครงสร้างกับชิ้นงานข้อมูลและตรวจสอบอินพุต
- วิธีเรียกใช้คำค้นหาที่แม่นยำกับข้อมูลเมตาที่มีโครงสร้างใหม่นี้
สิ่งที่คุณต้องมี
- บัญชี Google Cloud และโปรเจ็กต์ Google Cloud
- เว็บเบราว์เซอร์ เช่น Chrome
แนวคิดหลัก
- Entry: การแสดงชิ้นงานข้อมูลแบบนามธรรมและเป็นทางการในแคตตาล็อก ให้คิดว่านี่คือ "ตัวชี้" หรือ "คำนาม" เมื่อคุณสร้างตาราง BigQuery, Dataplex จะสร้าง Entry สำหรับตารางนั้นโดยอัตโนมัติ เราไม่ได้กำกับดูแลตารางโดยตรง แต่กำกับดูแล Entry ของตาราง
- Business Glossary: พจนานุกรมคำศัพท์ทางธุรกิจขององค์กรแบบรวมศูนย์และมีการควบคุมเวอร์ชัน ซึ่งเป็นแหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียว และช่วยป้องกันปัญหา "ฝ่ายขายกำหนด GMV แตกต่างจากฝ่ายการเงิน"
- ประเภท Aspect: สคีมาหรือเทมเพลตสำหรับข้อมูลเมตาหมวดหมู่ที่เฉพาะเจาะจง ประเภท Aspect จะกำหนดฟิลด์ ประเภทข้อมูล (สตริง, Enum, วันที่และเวลา ฯลฯ) และข้อจำกัด (ต้องระบุ/ไม่บังคับ) ซึ่งเป็นสัญญาที่ช่วยให้มั่นใจได้ถึงความสอดคล้องของข้อมูลเมตา
- Aspect: ข้อมูลเมตาที่เฉพาะเจาะจงซึ่งแนบกับ Entry และเป็นไปตามโครงสร้างที่กำหนดโดยประเภท Aspect โดยมีข้อมูลจริงที่ตรงตามสคีมาของประเภท Aspect
2. การตั้งค่าและข้อกำหนด
เริ่มต้น Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จาก คอนโซล Google Cloud ให้คลิกไอคอน 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 ตัวอย่างขนาดเล็กที่แสดงธุรกรรม Dataplex จะค้นพบตารางนี้โดยอัตโนมัติและสร้าง 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 จะช่วยแก้ปัญหานี้ด้วยการแยกคำจำกัดความทางธุรกิจจากการใช้งานทางเทคนิค
- ในคอนโซล Google Cloud ให้ไปที่Dataplex Universal Catalog
- ในเมนูการนำทางด้านซ้าย ให้เลือก Glossary (ในส่วนจัดการข้อมูลเมตา)

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

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

- คลิกสร้างหมวดหมู่ แล้วตั้งชื่อว่า
Sales Metricsจากนั้นคลิกสร้าง หมวดหมู่ช่วยจัดกลุ่มคำที่เกี่ยวข้อง - เลือกหมวดหมู่
Sales Metricsแล้วคลิก เพิ่มคำ จากนั้นตั้งชื่อว่าGross Merchandise Valueแล้วคลิก สร้าง - คลิกปุ่ม + เพิ่มในภาพรวม จากนั้นกรอกรายละเอียดต่อไปนี้
- ภาพรวม:
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. กำหนดข้อมูลเมตาทางเทคนิคที่มีโครงสร้างด้วยประเภท Aspect
แท็ก "คีย์:ค่า" อย่างง่ายไม่เพียงพอต่อความเข้มงวดด้านวิศวกรรม หากคุณต้องการติดตาม "เจ้าของข้อมูล" คุณไม่ต้องการให้ตารางหนึ่งมีแท็ก owner:bob และอีกตารางหนึ่งมีแท็ก contact:alice@example.com คุณต้องมีสคีมาเพื่อบังคับใช้ว่าต้องระบุเจ้าของและเจ้าของต้องมีรูปแบบอีเมลที่ถูกต้อง
เราจะใช้ประเภท Aspect เพื่อกำหนดสัญญานี้
- ในการนำทางด้านซ้ายของ Dataplex ในส่วนแคตตาล็อก ให้เลือกประเภท Aspect และเทมเพลตแท็ก
- เลือกแท็บกำหนดเอง แล้วคลิกสร้างประเภท Aspect

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

คุณได้สร้างสัญญาข้อมูลเมตาที่ใช้ซ้ำได้แล้ว แม้ว่าตอนนี้จะยังไม่มีการใช้งาน แต่โครงสร้างก็พร้อมแล้ว
5. เชื่อมโยงการกำกับดูแลกับชิ้นงาน
ตอนนี้เราจะนำทุกอย่างมารวมกัน เรามีตาราง BigQuery (retail_data.transactions), คำจำกัดความทางธุรกิจ (Gross Merchandise Value) และสคีมาการกำกับดูแล (Data Asset Governance)
เราจะเพิ่มคุณค่าให้กับ Entry ของ Dataplex สำหรับตาราง BigQuery
เพิ่มคุณค่าให้กับสคีมาด้วยบริบททางธุรกิจ (ระดับคอลัมน์)
มาบอกให้ผู้ใช้ทราบว่าคอลัมน์ gmv หมายถึงอะไรกันแน่ด้วยการลิงก์คอลัมน์กับ Glossary
- ในการนำทางด้านซ้ายของ Dataplex ให้คลิกค้นหา
- ที่ด้านขวาบน ให้คลิกแท็บ Dataplex Universal Catalog หากยังไม่ได้เปิดใช้งาน

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

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

คอลัมน์ gmv ไม่ได้เป็นเพียง "FLOAT" อีกต่อไป แต่ลิงก์กับคำจำกัดความของ Gross Merchandise Value ของบริษัทแล้ว
เพิ่มคุณค่าให้กับ Entry ด้วยข้อมูลเมตาทางเทคนิคที่มีโครงสร้าง (ระดับตาราง)
จากนั้นเราจะแนบ Aspect Data Asset Governance กับตารางเพื่อกำหนดการเป็นเจ้าของและความละเอียดอ่อน
- อยู่ในหน้า Entry
retail_data.transactions - คลิกแท็บเพิ่มแท็กหรือ Aspect แล้วเลือกประเภท
Data Asset Governanceจากเมนูแบบเลื่อนลง

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

คุณแนบ Aspect ที่มีโครงสร้างกับ Entry ได้สำเร็จแล้ว ข้อมูลนี้จะได้รับการตรวจสอบกับสคีมาที่คุณสร้างขึ้น ซึ่งแตกต่างจากแท็กอย่างง่าย
6. การค้นพบและการยืนยันแบบรวม
เราไม่ได้ดำเนินการนี้เพียงเพื่อกรอกแบบฟอร์ม แต่ทำเพื่อให้ข้อมูลค้นพบได้และเชื่อถือได้ มาดูกันว่าข้อมูลเมตานี้จะเปลี่ยนประสบการณ์ของนักพัฒนาแอปในการค้นหาและการค้นพบอย่างไร
กลับไปที่หน้าค้นหา หลักใน Dataplex Universal Catalog
สมมติว่าคุณเป็นวิศวกรแพลตฟอร์มที่บังคับใช้การกำกับดูแล คุณต้องค้นหาชิ้นงานทั้งหมดที่ทำเครื่องหมายเป็น "Internal" ซึ่งอยู่ภายใต้การกำกับดูแลโดยประเภท Aspect ที่เฉพาะเจาะจง คุณต้องใช้เพรดิเคตที่แม่นยำตามสคีมา
คุณสามารถยืนยันได้ 2 วิธี ได้แก่ การใช้ไวยากรณ์การค้นหาที่แม่นยำ (จำเป็นสำหรับการทำงานอัตโนมัติ) หรือการใช้ตัวกรอง UI แบบโต้ตอบ
วิธีที่ 1: ยืนยันผ่านการค้นหาแบบมีโครงสร้าง
- ในแถบค้นหา (ในโหมดการค้นหาคีย์เวิร์ด) ให้ป้อนการค้นหาแบบมีโครงสร้างต่อไปนี้
aspect:data-asset-governance.data-sensitivity=Internal
- คุณควรเห็นตาราง
retail_data.transactions

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

ไม่ว่าคุณจะใช้การค้นหาที่พิมพ์หรือตัวกรอง UI กลไกพื้นฐานก็เหมือนกัน
ซึ่งแสดงให้เห็นถึงความแตกต่างพื้นฐานระหว่าง Dataplex กับ 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
ลบอาร์ติแฟกต์ Dataplex
- ไปที่ Dataplex Universal Catalog UI > จัดการข้อมูลเมตา > แคตตาล็อก
- ในส่วนประเภท Aspect และเทมเพลตแท็ก ให้เลือกประเภท Aspect data_asset_governance แล้วลบ
- ไปที่จัดการข้อมูลเมตา > Glossary เลือก
Retail Business Glossaryแล้วลบ ตรวจสอบว่าได้ลบคำว่าGross Merchandise Valueก่อน แล้วจึงลบ Glossary ในภายหลัง
8. ยินดีด้วย
คุณได้ก้าวข้ามการติดแท็กข้อมูลอย่างง่ายและสร้างโมเดลการกำกับดูแลพื้นฐานที่มีโครงสร้างใน Dataplex
สิ่งที่คุณได้เรียนรู้มีดังนี้
- Glossary ช่วยแก้ไขความคลุมเครือทางธุรกิจ
- ประเภท Aspect มีสัญญาข้อมูลเมตาทางเทคนิค
- Aspect ใช้สคีมาดังกล่าวกับ Data Entry จริง
- การค้นหาของ Dataplex ใช้ข้อมูลเมตาที่มีโครงสร้างนี้เพื่อการค้นพบที่แม่นยำ
ขั้นตอนถัดไป
- การกำกับดูแลเป็นโค้ด: ใช้ ผู้ให้บริการ Google Cloud Terraform เพื่อกำหนดประเภท Aspect และ Glossary ในการควบคุมเวอร์ชัน ซึ่งจะช่วยให้มั่นใจได้ว่าสคีมาจะสอดคล้องกันในสภาพแวดล้อมการพัฒนา/การทดสอบ/การใช้งานจริง
- การติดแท็กอัตโนมัติ: เขียน Cloud Function หรือขั้นตอน Cloud Build ที่ทริกเกอร์โดยการสร้างชุดข้อมูลใหม่ ซึ่งจะแนบ Aspect "การกำกับดูแลชิ้นงานข้อมูล" โดยอัตโนมัติด้วยค่าเริ่มต้น (เช่น
sensitivity=Internal, steward=TBD) และติดแฟล็กเพื่อตรวจสอบ