ตรวจสอบและจัดการข้อมูลบน Google Cloud Platform ง่ายๆ ด้วย Data Catalog

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


ในบริการแต่ละตัว เราสามารถกำหนดการเข้าถึงบริการ รวมถึงข้อมูลที่อยู่ในบริการนั้นๆ ได้ผ่าน Identity And Access Management ซึ่งเชื่อถือได้ แต่หากเรามีข้อมูลกระจายอยู่ในหลายๆ บริการ เช่น ข้อมูลลูกค้าในระบบวิเคราะห์ข้อมูล ที่จะต้องเก็บไว้ตามขั้นตอนการทำงานกับข้อมูล ทั้งบน Cloud Storage, CloudSQL, PubSub หรือ BigQuery การจัดการข้อมูลข้อมูลในภาพรวม ก็จะซับซ้อนมากขึ้น เช่น หากเราต้องการดูข้อมูลของแผนกดูแลลูกค้า ที่กระจายอยู่ในทุกๆ service เพื่อจะได้ตรวจสอบได้ครบถ้วน การไล่ดูข้อมูลทีละจุดคงไม่สะดวกนัก

Data Catalog เป็นระบบที่ช่วยให้เราจัดการข้อมูลได้ง่ายขึ้น ผ่านการกำหนด metadata ให้กับข้อมูลในแต่ละจุด การเรียกดูข้อมูล สามารถระบุ metadata ที่เราสนใจ Data Catalog จะรวบรวมข้อมูลทั้งหมดที่ตรงเงื่อนไขมาแสดงให้เราเห็นในจุดเดียว แม้ว่าข้อมูลนั้นจะกระจายอยู่คนละ service ก็ตาม เมื่อเราเห็นข้อมูลที่เรากำลังสนใจทั้งหมด ก็ช่วยให้การควบคุมคุณภาพข้อมูล (data quality) และการกำกับดูแลข้อมูล (data governance) มีประสิทธิภาพมากยิ่งขึ้น

เรามาดูขั้นตอนการใช้งานกันครับ โดยผมจะใส่ metadata (ใน Data Catalog จะเรียกว่า tag) เพื่อระบุว่า คนรับผิดชอบดูแลข้อมูลคือใคร เมื่อติด tag เรียบแล้ว เราจะสามารถเรียกดูข้อมูลของผู้รับผิดชอยแต่ละคนได้ครับ


1. เราจะเริ่มจากการสร้าง tag template ก่อน ให้เข้าไปที่หน้า Data Catalog แล้วกด "Create a tag template"


2. ส่วนนี้เราสามารถกำหนด field ที่ต้องการได้เองเลย ว่าอยากใช้ metadata อะไรบ้าง แต่ละตัวมีประเภทข้อมูลเป็นยังไง ถ้ายังนึกไม่ออก ใช้ template ที่ Google เตรียมไว้ให้ก็ได้คับ ในที่นี้ผมใช้ template ที่ชื่อ Data Governance


3. ถ้ากด template ของ Google ระบบจะแสดง field ใน template นั้นๆ ขึ้นมาให้ดูก่อน ทำความเข้าใจแต่ละ field ดู แล้วกด "USE TEMPLATE"


4. ระบบจะเพิ่ม field ใน template มาให้ ตรงนี้เราสามารถกำหนด field อื่นๆ เพิ่มเติมจาก template ได้คับ ประเภทข้อมูลใน filed มีให้เลือกทั้ง String, Double, Boolean, Enumerated, Datetime 


5. เมื่อกำหนด field ที่ต้องการเรียแล้ว ให้กด "CREATE"


6. ระบบจะแสดงข้อมูลสรุปของ tag template ที่เราเพิ่งสร้างขึ้นมาครับ รายละเอียดในหน้านี้จะถูกใช้ตอนเราค้นหาข้อมูล ส่วนที่ผม highlight ไว้คือส่วนที่จะเอามาใช้ค้นหาทีหลัง (ถ้าต้องใช้รายละเอียดพวกนี้ ก็ให้เข้ามาดูที่หน้านี้อีกที)


7. ต่อไปเราจะมาติด tag ข้อมูลกันครับ ผมเตรียมข้อมูลเป็น table บน BigQuery ไว้

8. Data Catalog จะแสดง table ทั้งหมดขึ้นมา ในที่นี้เราจะติด tag ให้กับ table 2 ตัวคือ
  • trips: มีผู้ดูแลชื่อ Niw
  • trips_train: มีผู้ดูแลชื่อ Popkorn


9. กดเข้ามาที่ table trips ก่อน ตอนนี้ยังไม่มี tag ติดอยู่ ให้กดที่ "ATTACH TAGS"


10. เลือก table และ tag template ที่ต้องการ กรณีมีหลาย tag template สามารถเลือกได้พร้อมกันเลย จะเป็นการดึง field ในแต่ละ template มาใช้บนข้อมูลชุดนี้


11. ใส่ข้อมูลที่ต้องการ ในที่นีี้คือ Data Governer: Niw และกด "SAVE"


12. ระบบจะแสดงให้เห็นว่า ข้อมูลถูกติด tag เรียบร้อยแล้ว


13. มาต่อกันที่ trips_train คับ ทำตามขั้นตอนเดียวกัน กดที่ "ATTACH TAGS"


14. ระบุข้อมูลตามที่ต้องการ ในที่นี้คือ Data Governer: Popkorn และกด "SAVE"


15. ระบบติด tag ให้ trips_train เรียบร้อย

เมื่อเราติด tag เรียบร้อยแล้ว ในการค้นหาข้อมูลตาม metadata เราสามารถค้นหาจากช่องค้นหาใน Data Catalog ได้เลยคับ สำหรับ syntax ที่ใช้ในการค้นหา มีบอกไว้ที่ How to search with Data Catalog ส่วนรายละเอียดพวก tag_template_name และ key สามารถดูได้จากหน้า tag template ในขั้นตอนที่ 6 คับ

Syntax ที่ใช้ในการค้นหาข้อมูลด้วย tag

เมื่อเราลองค้นหาข้อมูลด้วย tag:data_governor:Niw ก็จะเจอกับ table trips
และเมื่อค้นหาด้วย tag:data_governor:Popkorn ก็จะเจอ table trips_train ตามรูปด้านล่าง

ระบบแสดงรายการข้อมูลที่ดูแลโดย Niw

ระบบแสดงรายการข้อมูลที่ดูแลโดย Popkorn

Data Catalog ช่วยให้เรามองเห็นและจัดการข้อมูลได้สะดวก เราสามารถใส่ tag เพื่อรองรับการใช้งานข้อมูลในมุมอื่นๆ ได้อีกมากมาย เช่น แยกข้อมูลตามพื้นที่ หรือระบุชั้นความลับของข้อมูล ก็จะช่วยให้เราบริหารและจัดการข้อมูลได้อย่างครบถ้วนครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การเรียกใช้งาน Google Apps Script

ลดเวลาการเรียก API ใน Apps Script ด้วย fecthAll

ออกแบบระบบให้คุยข้าม module กันได้ ด้วย Pub/Sub