04 Aggregate แบบเรียลไทม์ · ผู้สอน
อธิบายพฤติกรรมของ MV แบบ incremental และความหมายของ midpoint ให้ชัดเจน
macOS terminal: Run workshop commands in Terminal using zsh or bash.
ตารางเวลา
20 นาที
แนวการบรรยาย
- MV ประมวลผลบล็อกที่ถูก insert เข้ามา ไม่ได้สแกนประวัติทั้งหมดใหม่ทุกครั้งที่รีเฟรชแดชบอร์ด
- ฟังก์ชัน
Stateเก็บสถานะ aggregate บางส่วน และฟังก์ชันMergeที่คู่กันจะสรุปผลสุดท้าย - OHLC คิดจาก midpoint ของ quote เท่านั้น การผสมราคาจาก order-level change กับการเทรดล่าสุด จะทำให้กราฟไร้ความหมาย
- ตัว collector ตัดข้อมูลซ้ำก่อนที่ MV จะเห็นแถวข้อมูล การใช้
ReplacingMergeTreeทีหลัง ไม่ช่วยย้อนแก้การนับซ้ำใน aggregate
ปัญหาที่พบบ่อย
- Aggregate ว่างเปล่า: ตรวจสอบว่ามีแถว midpoint ดิบอยู่จริง และ MV ถูกสร้างก่อนการ ingest
- สร้าง MV ช้าเกินไป: รีสตาร์ตโหมด fixture หลังสร้าง MV หรือยอมรับเฉพาะแถวใหม่
- นาทีล่าสุดเป็นข้อมูลเก่า: ตรวจสอบสุขภาพของ collector ก่อนไปดีบัก SQL
รีเซ็ต
หากต้องการ aggregate ใหม่โดยไม่ลบข้อมูลดิบ ให้สร้างตารางเป้าหมายและ MV ขึ้นใหม่ แล้วปล่อยให้
event ใหม่เข้ามาเติมข้อมูล อย่ารัน OPTIMIZE TABLE FINAL