BLOGS

เก่งกว่านี้ไม่มีอีกแล้ว เมื่อ BigQuery รองรับข้อมูลแบบ Unstructured Data

Suwat.T • 27/11/2022
Google Cloud Solutions Specialist

สำหรับนักวิเคราะห์ข้อมูล ปัญหาที่มักจะพบคือการนำเข้าข้อมูลจากหลายๆ แหล่งนั้นมีโครงสร้างที่แตกต่างกัน และ Data Warehouse ที่จะสามารถประมวลผลและรองรับโครงสร้างของข้อมูลได้ทุกประเภทในปัจุบันแทบจะไม่มีเครื่องมือใดเลย แต่ช้าก่อนบน Google Cloud Platform มี Data Warehouse ที่สามารถรองรับข้อมูลได้ทุกโครงสร้างทั้ง Structured Data, Semi-Structured Data และ Unstructured Data นั่นก็คือ BigQuery นั่นเอง

BigQuery กับ Unstructured data

              หลังจากงาน Google Cloud Next ‘22 ที่ผ่านมาทาง Google ได้มีการประกาศอัพเดทความสามารถของ BigQuery จากเดิมที่ Support ข้อมูลแบบ Structured data, Semi-Structured data ตอนนี้สามารถ Support ข้อมูลที่เป็น Unstructured Data ได้แล้วซึ่ง BigQuery มีการประกาศตารางประเภทใหม่ที่เรียกว่า Object Table เลยทำให้ BigQuery สามารถ support unstructured data ได้นั่นเอง

              ในการเริ่มต้นเพื่อให้ BigQuery สามารถ Support Unstructured Data อาศัยความสามารถของ BigLake ที่เป็น Feature อยู่บน BigQuery โดยสามารถทำความเข้าใจ BigLake ได้ใน Blog ต่อไปนี้

              หลังจากที่เราเข้าไปสร้าง Connection ของ BigLake เสร็จเรียบร้อยเราก็จะนำเอา BigLake ไปเชื่อมกับข้อมูลได้ทุกโครงสร้าง ไม่ว่าจะเป็น Structured Data, Semi-Structured Data และ Unstructured Data โดยหากเป็น Unstructured Data ภายใน Table ที่เชื่อมจาก BigLake ไปนั้นจะมีการเก็บข้อมูลที่เป็นลักษณะ Meta Data ต่างๆ เช่น Path URI, Content Type File, Size ของแต่ละ Object 

วิเคราะห์ Unstructured data ด้วย Pretrained Model API บน BigQuery

Flow diagram

เรามาลองเรียกใช้ Vision API บน BigQuery กัน โดยลองทำกับข้อมูลประเภทรูปภาพที่อยู่บน Google Cloud Storage แล้วก็จะเรียกใช้ Vision API เพื่อสกัด Information หรือ Insight จากรูปภาพออกมาโดยขั้นตอนในการทำจะมีดังนี้

  1. ใช้ BigQuery สร้าง connection BigLake แล้วใส่ path URI ที่เก็บรูปภาพบน Google Cloud Storage ที่เราต้องการจะประมวลผลเมื่อ Run ก็จะได้ Object Table ตามรูปภาพ

รูปภาพ Code & Object Table

                   2. ทำการสร้าง Functions บน Cloud Functions ด้วยภาษา Python, Java หรือภาษาอื่นๆ ที่เป็นการเรียก Vision API เช่นเขียนฟังก์ชั่นไป Call API Detect Label, Detect Object, Detect Logo เป็นต้น ซึ่งถ้าเขียน function เรียบร้อยแล้วถัดไปเราจะลองเรียกใช้ Remote Function  โดยมีขั้นตอนดังนี้

รูปภาพตัวอย่างการเรียกใช้งาน

  • ใช้คำสั่ง EXTERNAL_OBJECT_TRANSFORM จะทำการ Transform GCS URI เป็น Object และ Pass Signed URL เข้าไปใน Functions ที่เขียนเอาไว้
              ▪ SAFE.PARSE_JSON ( detect_labels_uri(signed_url) ),
              ▪ SAFE.PARSE_JSON ( localize_objects_uri(signed_url) ),
              ▪ SAFE.PARSE_JSON ( detect_landmarks_uri(signed_url) ),
  • Function ที่เราเขียนจะ Return ออกมาเป็น JSON ตามตาราง query result ดังภาพด้านบน จากนั้นเราจึงสามารถนำผลลัพธ์ที่ได้ไปใช้ต่อ

นอกเหนือจากการเรียกใช้งาน Vision API บน BigQuery แล้วเรายังสามารถเรียกใช้ API ตัวอื่นๆ ได้อีกด้วย อาทิ Video Intelligence API, Speech-to-text API หรือใช้ความสามารถของ BigQuery เองในการทำ ML เช่นตัว BigQuery ML กับ custom training model ที่เราสร้างจาก Vertex AI ก็ได้เช่นกัน

Conclusion

จะเห็นได้ว่า BigQuery ไม่ได้เป็นแค่เพียง Modern Data Warehouse แต่มีความสามารถที่หลากหลายทลายข้อจำกัดของ Data warehouse แบบเดิมๆ และสามารถบูรณาการกับ  Service ต่างๆ บน Google Cloud Platform ด้วยภาษา SQL ทำให้สะดวกสบาย, ง่ายต่อการใช้งาน, ลด cost และเพิ่ม productivity ให้กับองค์กรของเราเป็นอย่างมาก

สำหรับใครที่สนใจในเรื่องของ Google Cloud Platform หรือ Service อื่นๆ
ด้าน Data Analytics, Data Lake, Data Warehouse, AI/Machine Learning
Tangerine มีผู้เชี่ยวชาญคอยให้คำปรึกษา สามารถติดต่อได้ที่อีเมล marketing@tangerine.co.th หรือโทร 094-999-4263ได้ทันที

Get a Free Consultation
Blog Form (EN) (#25)

I have read and studied the details of the company’s Personal Data Protection Policy provided at Tangerine Privacy Center and fully understand it.