การประมวลผลแบบ Real-time ด้วย Change Feed

พัฒนาแอปพลิเคชันบน Azure Storage

Shahzad Mian

Content developer, Datacamp

Cosmos DB change feed

  • บันทึกการเปลี่ยนแปลงแบบทันที

Change feed

พัฒนาแอปพลิเคชันบน Azure Storage

Change Feed คืออะไร?

  • สตรีมการเปลี่ยนแปลงต่อเนื่อง หรือ "events"
  • ติดตาม insert และ update ตามลำดับเพื่อประมวลผล

Ticker tape

พัฒนาแอปพลิเคชันบน Azure Storage

เมลที่ยังไม่ได้อ่าน

Mail

พัฒนาแอปพลิเคชันบน Azure Storage

นักพัฒนาใช้ Change Feed อย่างไร

Pull model

  • แอปพลิเคชันดึงข้อมูลจาก change feed
  • ตรวจสอบการเปลี่ยนแปลงใหม่เป็นระยะ
  • Pull Model = คุณควบคุมเองว่าจะดึงและประมวลผลการเปลี่ยนแปลงเมื่อใด

Push model

  • ระบบส่งการเปลี่ยนแปลงให้อัตโนมัติ
  • ตัวอย่าง:
    • CosmosDB trigger ที่ทำงานเมื่อมีการเปลี่ยนแปลงใหม่
  • กระบวนการแบบ event driven
  • ไม่ต้องตรวจสอบการอัปเดต
  • Push Model = ระบบตอบสนองต่อการเปลี่ยนแปลงโดยอัตโนมัติทันทีที่เกิดขึ้น
พัฒนาแอปพลิเคชันบน Azure Storage

ตัวอย่าง: Azure Function trigger

ChatGPT Image Nov 6, 2025, 11_46_06 PM.png

พัฒนาแอปพลิเคชันบน Azure Storage

สถาปัตยกรรม Change Feed

Leases - บันทึกความคืบหน้า

  • ติดตามการเปลี่ยนแปลงที่แอปพลิเคชันประมวลผลไปแล้ว
  • ทราบว่าจะเริ่มต้นต่อจากจุดใด
  • Consumer จะไม่พลาดหรือประมวลผล event ซ้ำ

Lease

พัฒนาแอปพลิเคชันบน Azure Storage

ทำไมต้องใช้ Change Feed?

  • เหมาะสำหรับระบบที่ต้องตอบสนองต่อการเปลี่ยนแปลงของข้อมูล
  • ทำงานได้โดยไม่ต้องมีการโต้ตอบจากมนุษย์
  • สตรีมข้อมูลต่อเนื่อง
  • แอปพลิเคชันตอบสนองได้ทันที

Data in motion

พัฒนาแอปพลิเคชันบน Azure Storage

กรณีการใช้งาน

Event-driven pipelines

Event driven

การวิเคราะห์แบบ Real-time

Analytics

การซิงค์ข้อมูล

Data syncing

การเชื่อมต่อกับระบบปลายทาง

Data moving

พัฒนาแอปพลิเคชันบน Azure Storage

Real-time event source

  • Change Feed เปลี่ยน Cosmos DB จากที่เก็บข้อมูลแบบ passive ให้กลายเป็น real-time event source
  • สร้างแอปพลิเคชันที่ตอบสนองต่อ data events ได้ทันที
  • ไม่จำเป็นต้องจัดการโครงสร้างพื้นฐานเอง

CosmosDB + Functions

พัฒนาแอปพลิเคชันบน Azure Storage

มาฝึกกันเถอะ!

พัฒนาแอปพลิเคชันบน Azure Storage

Preparing Video For Download...