Image Description
Soranat Chamkring
  • 17 February 2024
  • 16 mins read

Big Query Table Information

Toy

17 February 2024

พี่ทอย ข้อมูลใน Table นี้เก็บแบบไหนบ้าง มีข้อมูลกี่ Rows แล้ว ?

เดี๋ยวพี่จะเล่าให้ฟังๆ

    Google Big Query เป็น Tools ที่ทางทีมใช้งานบ่อยเป็นอันดับ 1 เนื่องจากความง่ายของการ Query ด้วย window function หรือแม้กระทั่งการเขียน Stored Procedure ก็ง่ายแค่ไม่กี่บรรทัด และยังมีข้อมูลที่ค้นหาเกี่ยวกับวิธีการ query data มากมายทั้งบน Stackoverflow ,github หรือแม้กระทั่ง thread ของ Google เองก็ตาม ทำให้ Bigquery ได้รับความนิยมอย่างมาก

    วันนี้เราจะมาทำความเข้าใจเกี่ยวกับวิธีการ Query ข้อมูลพื้นฐานบน Dataset และ Table กัน ซึ่งหลายๆคนอาจจะประสบปัญหาเกี่ยวกับ spec ของการเก็บข้อมูล ความยุ่งยากในการทำ ER Diagram และการจัดการ Table ต่างๆให้เป็นระเบียบ วันนี้เราจะมาสาธิตวิธีการ Query แบบง่ายๆ ให้ดูกันดังต่อไปนี้ครับ

1.Query Dataset Information

SELECT
  *
FROM
[Project ID].INFORMATION_SCHEMA.SCHEMATA
ตัวอย่างการ Query Metadata ใน Dataset

    เราสามารถได้ข้อมูลเกี่ยวกับ Metadata ของ Dataset ที่ถูกสร้างขึ้น ช่วงเวลาที่ถูกสร้างภายใน Zone ที่เราจัดเก็บ Google Bigquery เอาไว้ หรือ สามารถใช้ Project ID แทนการใช้ region-(zone) ได้ตามภาพตัวอย่าง และสามารถระบุจำนวน Schema หรือ Dataset ได้ว่ามีจำนวนเท่าใด ใครเป็นเจ้าของ และมีการแก้ไขครั้งสุดท้ายเมื่อไร

    *ข้อจำกัดก็คือ เราต้องมั่นใจว่าเราได้รับสิทธิ์ในการ Query ข้อมูลระดับ admin , dataEditor ,dataOwner หรือ dataViewer ในระดับของ Project Level เท่านั้น

ตัวอย่างการ Query Metadata ภายในโปรเจค
Caption : ตัวอย่างการ Query Metadata ภายในโปรเจค

    ข้อมูลที่เราได้มาจะอยู่ในรูปแบบ Query Result ซึ่งจะมีรายละเอียดเกี่ยวกับ Dataset เช่น เวลาที่มีการสร้าง Dataset , เวลาที่มีการอัพเดทข้อมูลของ Dataset ครั้งล่าสุด รวมถึงคำสั่งที่ใช้ในการสร้าง Dataset ชุดนั้นอีกด้วย

2.Query Table Information

SELECT
  *
FROM
  [Project ID].[DataSet ID].__TABLES__
ตัวอย่างการ Query ข้อมูล Table ทั้งหมดใน Dataset

    เราสามารถได้ข้อมูลเกี่ยวกับ Table ทั้งหมดใน Dataset ได้ทันที หลังจาก Query ชุดนี้ทำงาน โดยจะมีรายละเอียดชื่อ Table , จำนวนคอลัมน์ , จำนวนแถวของข้อมูล ขนาดของข้อมูล และข้อมูลอื่นๆ เช่น การสร้าง TABLE และการอัพเดท Table ครั้งล่าสุด ซึ่งจะเป็นหน่วยแบบ Microseconds นอกจากนี้ยัง รวมถึงการระบุประเภทของตาราง 1 คือ Physical Table และ 2 คือ View Table

ตัวอย่างการ Query เพื่อหาจำนวนของข้อมูลใน Table
Caption : ตัวอย่างการ Query เพื่อหาจำนวนของข้อมูลใน Table

    ตัวอย่างที่ query แสดงให้เห็นว่า เรามีจำนวน Table ทั้งหมด 2 ตัว และ มีการระบุเวลาสร้าง และเวลาการอัพเดทล่าสุด ซึ่งจะแตกต่างกับข้อมูลชุดที่เป็น Dataset ตามเคสด้านบน เมื่อมีการอัพเดทข้อมูลในตารางใด ตารางนึง หรือมีการเปลี่ยนการตั้งค่าของ dataset ก็จะส่งผลต่อ dataset metadata ด้วย ในที่นี่จะกล่าวเฉพาะส่วนที่เป็นของตารางจะมีข้อมูลที่แตกต่างกับ dataset information คือมีการนับจำนวนแถวของข้อมูล และขนาดของข้อมูลที่เราทำการเก็บอยู่ใน Big Query เพื่อใช้ในการประเมินงานที่เรากำลังจะต้องทำในอนาคต รวมถึงการคำนวณค่าใช้จ่ายอีกด้วย

3.Query Column Information

SELECT
  *
FROM
  [Project ID].[DataSet ID].INFORMATION_SCHEMA.COLUMNS
ตัวอย่างการ Query รายละเอียด Column ใน Dataset ของเรา

    เราสามารถเรียกใช้คำสั่ง INFORMATION_SCHEMA.COLUMNS ในการเรียกแสดงผลรายละเอียดของตารางที่เราต้องการใช้งานได้ โดยเมื่อรันคำสั่งดังกล่าวจะได้ชื่อคอลัมน์ ตำแหน่ง การระบุค่าว่าง ประเภทของข้อมูล ฯลฯ ซึ่งทำให้เราเรียกใช้งาน หรือจัดการทำในรูปแบบของ ER Diagram เพื่ออธิบายผู้ใช้งานคนอื่นๆ ได้ง่ายขึ้น และประหยัดเวลาไปได้มากๆ

ตัวอย่างการ Query เพื่อหาชื่อคอลัมน์ใน Table
Caption : ตัวอย่างการ Query เพื่อหาชื่อคอลัมน์ใน Table

    ตัวอย่างข้อมูลที่ได้มาเบื้องต้น บอกเราว่า dataset ชุดนี้มีชื่อว่า 'mydataset' ที่มีตารางทั้งหมด 2 ตาราง ได้แก่ customer_test และ customers ที่มีชื่อคอลัมน์ที่แตกต่างกัน รวมถึง Data type ที่ไม่เหมือนกัน ซึ่งเราสามารถดูได้หลายตารางพร้อมๆกัน โดยที่ไม่ต้องไปจิ้มหน้าต่าง Details ของแต่ละ table ให้เสียเวลาอีกต่อไป

4.Query Store Procedure

SELECT
  *
FROM
  [Project ID].[DataSet ID].INFORMATION_SCHEMA.ROUTINES
ตัวอย่างการ Query คำสั่ง Store procedure

    เราสามารถเรียกใช้คำสั่ง INFORMATION_SCHEMA.ROUTINES สำหรับการแสดงคำสั่ง Store Procedure ที่เรากำลังให้มีการทำงาน Query ที่ซับซ้อน รวมถึงการรับ พารามิเตอร์เพื่อใช้สำหรับการสร้างชุดคำสั่ง Query แบบมีเงื่อนไข และการ query แบบเป็นลำดับขั้นตอน (Sequence query)

ตัวอย่างการ Query เพื่อหาชื่อ Store Procedure ที่เขียนไว้
Caption : ตัวอย่างการ Query เพื่อหาชื่อ Store Procedure ที่เขียนไว้

    การใช้งานคำสั่ง Bigquery Information Schema ยังมีคำสั่งอีกมากมายที่เราสามารถเรียกใช้งานได้ ตัวอย่างที่เรายกมาให้ดูนั้นมีโอกาสจะได้ใช้งานบ่อยมากกว่าคำสั่งอื่นๆ แน่นอน ดังนั้น หากใครต้องการศึกษาเกี่ยวกับ Bigquery Information schema เพิ่มเติม ก็สามารถศึกษาได้ที่ปุ่มด้านล่างได้เลยครับ

No reviews yet. Be the first to leave a comment!

Share your experience with this Blog

0 Reviews

บทความแนะนำ

การทำงานพื้นฐานของเว็บไซต์
How Website work?

เรียนรู้วิธีการทำงานของเว็บไซต์ในทุกขั้นตอน ฉบับมือใหม่

อ่านบทความที่เกี่ยวข้อง
BigQuery Dataset Schema
BigQuery Schema

ตรวจสอบ Dataset และ Table ใน Bigquery Project

อ่านบทความที่เกี่ยวข้อง
SQL Easy ใช้ง่ายนิดเดียว
SQL Basic

ใช้ภาษา SQL เพื่อการทำงานด้าน Data Analytics ขั้นพื้นฐาน

อ่านบทความที่เกี่ยวข้อง