BigQuery เชิงลึก
Data Warehouse & Analytics
data และ analytics คือสนามที่ Google Cloud ภูมิใจที่สุด ผู้สัมภาษณ์อยากเห็นว่าเราเข้าใจความต่างของ data warehouse กับระบบอื่น เข้าใจ pipeline ข้อมูลทั้งเส้น และเล่า BigQuery ได้ทั้งเชิงเทคนิคและเชิงคุณค่าธุรกิจ DCE ที่ขาย data/AI ได้คมจะปลดล็อกดีลใหญ่ เพราะนี่คือจุดที่ลูกค้ามองว่า GCP ต่างจากคู่แข่งชัดที่สุด
Data warehouse: ที่เก็บข้อมูลรวมศูนย์ที่ออกแบบมาเพื่อการวิเคราะห์ (OLAP) ข้อมูลถูกจัดโครงสร้างและทำความสะอาดแล้ว เหมาะ query วิเคราะห์ที่อ่านข้อมูลย้อนหลังปริมาณมาก ต่างจาก database transaction (OLTP) ที่เน้นเขียนอ่านทีละรายการเร็ว ๆ
Data lake: ที่เก็บข้อมูลดิบทุกรูปแบบ ทั้ง structured, semi-structured และ unstructured โดยยังไม่ต้องจัดโครงสร้างก่อน เก็บไว้ก่อนแล้วค่อยเอาไปใช้ มักอยู่บน object storage อย่าง Cloud Storage
Lakehouse: แนวคิดลูกผสมที่รวมความยืดหยุ่นของ data lake กับความสามารถ query แบบ warehouse ไว้ด้วยกัน บน GCP ทำได้ผ่าน BigQuery ที่ query ข้อมูลใน Cloud Storage ได้โดยตรง
ETL กับ ELT: ETL คือ Extract-Transform-Load แปลงข้อมูลก่อนโหลดเข้า warehouse; ELT คือ Extract-Load-Transform โหลดข้อมูลดิบเข้าก่อนแล้วค่อยแปลงด้วยพลังของ warehouse เอง BigQuery เหมาะกับ ELT เพราะมีพลังประมวลผลสูงพอจะแปลงข้อมูลในตัวได้
ETL
Extract → Transform → Load
- แปลงข้อมูลก่อนโหลดเข้า warehouse
- เหมาะเมื่อต้อง clean/แปลงหนักก่อนเก็บ
- ใช้ compute แยกก่อนถึงปลายทาง
ELT
Extract → Load → Transform
- โหลดข้อมูลดิบเข้าก่อน แล้วแปลงด้วยพลัง warehouse เอง
- ยืดหยุ่น เก็บดิบไว้แปลงหลายแบบภายหลัง
- BigQuery เหมาะแบบนี้ (พลังประมวลผลสูง)
BigQuery คือ serverless data warehouse ที่เป็นพระเอกของ GCP คุณสมบัติที่ต้องเล่าได้:
- Serverless เต็มตัว: ไม่ต้อง provision หรือดูแล server หรือ cluster เลย แค่โหลดข้อมูลแล้ว query ระบบจัดสรรทรัพยากรให้อัตโนมัติ
- Scale ระดับ petabyte: query ข้อมูลมหาศาลได้ในไม่กี่วินาทีถึงนาที ด้วยสถาปัตยกรรมที่แยก storage ออกจาก compute ทำให้ scale แต่ละส่วนอิสระ
- โมเดลราคา: มีทั้งแบบ on-demand (จ่ายตามปริมาณข้อมูลที่ query สแกน) และแบบ capacity/edition (จองพลังประมวลผลแบบคงที่) ซึ่งช่วยคุมต้นทุนสำหรับ workload สม่ำเสมอ การเข้าใจสองโมเดลนี้ช่วยแนะนำลูกค้าให้ประหยัด
- ใช้ SQL มาตรฐาน: นักวิเคราะห์ที่รู้ SQL ใช้ได้ทันที ลดอุปสรรคการเรียนรู้
- BigQuery ML: สร้างและรันโมเดล machine learning ด้วยคำสั่ง SQL ภายใน BigQuery เลย ไม่ต้องย้ายข้อมูลออก เหมาะให้นักวิเคราะห์ทำ ML เบื้องต้นได้เอง
- Real-time analytics: รองรับ streaming ingestion ทำให้วิเคราะห์ข้อมูลที่เพิ่งเข้ามาได้เกือบทันที
- BI Engine และการเชื่อม BI tool: เร่ง query สำหรับ dashboard
- Federated query และ external table: query ข้อมูลที่อยู่นอก BigQuery เช่นใน Cloud Storage ได้โดยไม่ต้องโหลดเข้าก่อน
BigQuery ไม่ได้อยู่ลำพัง แต่เป็นศูนย์กลางของ pipeline:
- Ingestion: Pub/Sub รับ event แบบ streaming, Dataflow ทำ stream และ batch processing (ETL/ELT), Storage Transfer และ BigQuery Data Transfer สำหรับย้ายข้อมูลเข้ามา
- ข้อมูลดิบ / data lake: Cloud Storage เก็บข้อมูลดิบ
- Processing สาย Spark/Hadoop เดิม: Dataproc (Managed Service for Apache Spark) สำหรับลูกค้าที่มี workload Spark/Hadoop อยู่แล้ว
- Orchestration: Cloud Composer (Managed Airflow) จัดลำดับงานใน pipeline
- BI และ visualization: Looker สำหรับ enterprise BI ที่มี semantic model และ Looker Studio สำหรับ dashboard ทั่วไป
- AI/ML: ต่อยอดไป Vertex AI หรือใช้ BigQuery ML ในตัว
เมื่อลูกค้ามีระบบ analytics เดิม DCE ต้องเล่าได้ว่า BigQuery ช่วยอย่างไร:
- ลูกค้าที่มี data warehouse เดิมแบบ on-prem เช่น Teradata หรือ appliance ราคาแพง: BigQuery ลบภาระการดูแล hardware และ scaling จ่ายตามใช้แทนลงทุนก้อนใหญ่
- ลูกค้าที่มี Hadoop/Spark cluster เดิม: ย้ายมา Dataproc ก่อนเพื่อไม่ต้องเขียนใหม่ แล้วค่อย modernize ไป BigQuery + Dataflow ที่เป็น serverless
- ลูกค้าที่รัน analytics หนักบน database transaction: ย้าย analytics มา BigQuery เพื่อไม่ให้ query หนักทำให้ระบบหลักช้า
จุดขายที่ต้องสื่อเป็นภาษาธุรกิจคือ ตัดสินใจได้เร็วขึ้นจากข้อมูล real-time, ไม่ต้องดูแล infra, scale ตามข้อมูลอัตโนมัติ, และต่อยอด AI ได้ทันทีบนข้อมูลเดียวกัน
ลูกค้าองค์กรไม่ได้สนแค่ query เร็ว แต่สนเรื่องการกำกับข้อมูลด้วย ควรรู้จัก:
- การควบคุมการเข้าถึงระดับ dataset, table, column และ row เพื่อให้แต่ละคนเห็นเฉพาะข้อมูลที่ควรเห็น
- Dataplex สำหรับการจัดการและกำกับข้อมูลข้าม data lake และ warehouse รวมถึง data catalog ที่ช่วยค้นหาและเข้าใจข้อมูล
- การจัดประเภทและปกป้องข้อมูลอ่อนไหวด้วยเครื่องมือตรวจจับข้อมูลส่วนบุคคล
- audit logging ว่าใคร query อะไร ซึ่งสำคัญต่อ compliance อย่าง PDPA
ถาม: "data warehouse ต่างจาก database ทั่วไปอย่างไร" ตอบ: warehouse เน้นวิเคราะห์ (OLAP) อ่านข้อมูลมหาศาล โครงสร้าง denormalized; database transaction เน้นเขียนอ่านทีละรายการเร็ว (OLTP)
ถาม: "ทำไม BigQuery ถึงเป็นจุดขายของ GCP" ตอบ: serverless ไม่ต้องดูแล infra, scale ระดับ petabyte, ใช้ SQL, มี ML ในตัว, รองรับ real-time และต่อ AI ได้ ตอบทั้งเทคนิคและคุณค่าธุรกิจ
ถาม: "ลูกค้ามี Hadoop on-prem อยากขึ้นคลาวด์ จะแนะนำเส้นทางอย่างไร" ตอบ: Dataproc ก่อนเพื่อย้ายเร็วไม่ต้องเขียนใหม่ แล้ว modernize ไป BigQuery + Dataflow
ถาม: "ETL กับ ELT ต่างกันอย่างไร BigQuery เหมาะแบบไหน" ตอบ: ETL แปลงก่อนโหลด, ELT โหลดก่อนแล้วแปลงในปลายทาง BigQuery เหมาะ ELT เพราะมีพลังประมวลผลสูง
ถาม: "ลูกค้ากังวลค่า query BigQuery จะบาน แนะนำอย่างไร" ตอบ: เลือกโมเดลราคาให้เหมาะ ใช้ partitioning และ clustering ลดข้อมูลที่สแกน เลี่ยง select star และพิจารณา capacity pricing สำหรับ workload สม่ำเสมอ
อธิบาย BigQuery แค่ว่าเร็วโดยไม่โยงคุณค่าธุรกิจ; สับสน data lake กับ data warehouse; ไม่รู้จักโมเดลราคาจึงตอบเรื่องต้นทุนไม่ได้; ลืมระบบนิเวศรอบ BigQuery ทำให้เล่า pipeline ไม่ครบ; ไม่แตะ data governance ทั้งที่ลูกค้าองค์กรให้ความสำคัญ; แนะนำให้ย้ายทุกอย่างมา BigQuery ทันทีโดยไม่เสนอเส้นทาง Dataproc สำหรับของเดิม
data warehouse คือที่เก็บข้อมูลเพื่อวิเคราะห์ (OLAP) ต่างจาก data lake ที่เก็บข้อมูลดิบ BigQuery เป็นแกน serverless ที่ scale ระดับ petabyte ใช้ SQL มี ML ในตัว และรองรับ real-time วางตัวเป็นศูนย์กลางของ pipeline ที่มี Pub/Sub, Dataflow, Cloud Storage, Dataproc, Composer และ Looker ล้อมรอบ เล่าทั้งเทคนิคและคุณค่าธุรกิจ เสนอเส้นทาง modernize จากของเดิมอย่างมีขั้นตอน และอย่าลืม data governance กับการคุมต้นทุน เพราะนี่คือจุดที่ GCP สร้างความต่างได้ชัดที่สุด