Query Profile, History และ Insights

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

ทำไมต้องใช้ Query Profile

operations_dashboard

  • Snowflake อาจสแกนข้อมูลที่ไม่จำเป็นต้องอ่านเลย
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

เปิด Query Profile ใน Snowsight

วิธีเข้าถึง query profile

เข้าถึงผ่าน: Monitoring > Query History > [เลือกคิวรี] > Query Profile Tab

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

อ่าน Operator Tree

Snowsight Query Profile แสดง operator graph พร้อมแผง Most Expensive Nodes

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

ปัญหา 4 ประการที่ Query Profile ช่วยตรวจพบ

Exploding Joins

  • สร้างแถวผลลัพธ์มากกว่าที่รับเข้ามา

Union without All

  • เพิ่ม Aggregate เหนือ UNION เพื่อลบแถวซ้ำ
  • ส่งผลให้ใช้เวลามากขึ้น

Spill to Disk

  • Operator ที่ใช้ memory มากเกินขีดจำกัด
  • เช่น Aggregates, Sorts หรือ Join ขนาดใหญ่

Inefficient Pruning

  • เห็นได้เมื่อจำนวน partition ที่สแกนใกล้เคียงกับทั้งหมด
  • Filter ทำงานไม่มีประสิทธิภาพ
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Spill to Disk: Local และ Remote

  • Local spill → SSD ของ warehouse — ช้ากว่า memory แต่พอรับได้
  • Remote spill → cloud storage — ช้ามาก ต้องแก้ไข

คิวรีวินิจฉัย

SELECT 
query_id,
bytes_spilled_to_local_storage,
bytes_spilled_to_remote_storage
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE bytes_spilled_to_remote_storage > 0
ORDER BY bytes_spilled_to_remote_storage DESC
LIMIT 10;
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

QUERY_HISTORY: มองเห็นข้อมูลทั้ง Account

  • ACCOUNT_USAGE.QUERY_HISTORY — view เก็บข้อมูล 365 วัน
  • INFORMATION_SCHEMA.QUERY_HISTORY() — table function เก็บข้อมูล 7 วัน

ภาพหน้าจอการรัน query history

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Query Insights: คำแนะนำอัตโนมัติ

คำแนะนำจาก query insights

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

มาฝึกกันเลย!

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Preparing Video For Download...