การปกป้องและแชร์ข้อมูล

Snowflake Architecture

Emily Melhuish

Technical Curriculum Developer, Snowflake

เมื่อเกิดข้อผิดพลาด

ก่อน

  • ตาราง subscription มี 847 แถว
DELETE FROM subscriptions
WHERE status = 'inactive';

woopsie.png

หลัง

  • ตาราง subscription มี 0 แถว
  • Snowflake บันทึกสถานะข้อมูลก่อนการเปลี่ยนแปลงทุกครั้ง
  • กำหนดช่วงเวลาได้

timetravel.png

Snowflake Architecture

Time Travel

  • ดึงข้อมูล ณ จุดใดก็ได้ในช่วงเวลาที่เก็บข้อมูล
  • DATA_RETENTION_TIME_IN_DAYS ตั้งค่าได้ที่ระดับ account, database, schema หรือ table (ระดับต่ำสุดมีผลก่อน)
  • Standard: เก็บข้อมูลได้สูงสุด 1 วัน
  • Enterprise: สูงสุด 90 วัน (ขึ้นอยู่กับ edition และกฎของ object)
  • ไม่จำกัดเฉพาะคำสั่ง SELECT

ไทม์ไลน์แสดงปัจจุบันและ 90 วันที่ผ่านมา

Snowflake Architecture

การนำทางประวัติ: Timestamp และ Offset

  • AT BEFORE(STATEMENT) / BEFORE(STATEMENT)

    • เชื่อมการกู้คืนด้วย query id
    • ข้อมูลจะกลับสู่สถานะก่อนคำสั่งนั้น
  • UNDROP

    • เช่น UNDROP TABLE t
    • ใช้ได้เฉพาะเมื่อยังสามารถกู้คืนได้
Snowflake Architecture

การนำทางประวัติ: Statement และ Undrop

  • AT BEFORE(STATEMENT) / BEFORE(STATEMENT)

    • เชื่อมการกู้คืนด้วย query id
    • ข้อมูลจะกลับสู่สถานะก่อนคำสั่งนั้น
  • UNDROP

    • เช่น UNDROP TABLE t
    • ใช้ได้เฉพาะเมื่อยังสามารถกู้คืนได้
Snowflake Architecture

Fail-Safe

  • เก็บข้อมูลต่ออัตโนมัติ อีก 7 วันหลัง Time Travel (Fail-safe)
  • ค่าเริ่มต้น ไม่ต้องตั้งค่าเพิ่มเติม
  • ต้องติดต่อฝ่ายสนับสนุน Snowflake เพื่อกู้คืน
  • ข้อมูลใน Fail-safe นับรวมในใบเรียกเก็บเงิน

ไทม์ไลน์แสดงตัวเลือก

Snowflake Architecture

Zero-Copy Cloning

SQL

CREATE TABLE SUBSCRIPTIONS_BACKUP 
  CLONE subscriptions;

ผลลัพธ์

Table SUBSCRIPTIONS_BACKUP 
successfully created.
  • Clone ใช้พื้นที่จัดเก็บร่วมกัน
  • เรียกเก็บค่าพื้นที่เมื่อข้อมูลเริ่มแตกต่างกันเท่านั้น

แสดง clone และการแชร์พื้นที่จัดเก็บแบบ zero

Snowflake Architecture

Snowflake Marketplace

ภาพหน้าจอ Snowflake Marketplace

Snowflake Architecture

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

Snowflake Architecture

Preparing Video For Download...