การ Query ข้อมูลในอดีตด้วย Time Travel
งาน batch ที่รันข้ามคืนของ Snowy Peak ได้โหลดข้อมูลบัญชีที่ถูกยกเลิก 2 รายการเข้าสู่ตาราง subscriptions ทีมข้อมูลต้องการเปรียบเทียบจำนวนแถวปัจจุบันกับจำนวนแถวก่อนที่ batch จะรัน ฟีเจอร์ Time Travel ของ Snowflake ช่วยให้ทำสิ่งนี้ได้โดยไม่ต้องพึ่งการสำรองข้อมูลภายนอก
ตาราง snowy_peak.subscriptions มีคอลัมน์ได้แก่ subscription_id, user_email, plan, status, start_date และ monthly_fee ตัวแปร session $snapshot_ts เก็บ timestamp ที่บันทึกไว้ก่อนที่ batch update จะรัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Snowflake Architecture
คำแนะนำการฝึกหัด
- ใช้
AT (TIMESTAMP => ...)เพื่อ query ตารางsnowy_peak.subscriptionsณ สถานะก่อนที่ batch update จะรัน โดยใช้ตัวแปร session$snapshot_tsเป็น timestamp - นับจำนวนแถวในชื่อ
pre_update_countเพื่อยืนยันว่ามี subscription อยู่กี่รายการก่อนที่บัญชีที่ถูกยกเลิก 2 รายการจะถูกเพิ่มเข้ามา
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Count subscriptions before the overnight batch update
SELECT COUNT(*) AS pre_update_count
FROM snowy_peak.subscriptions
AT (___ => ___);