PolymarketClickHouse Workshops

04 Aggregate แบบเรียลไทม์ · ผู้สอน

อธิบายพฤติกรรมของ MV แบบ incremental และความหมายของ midpoint ให้ชัดเจน

Your computer
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

ในหน้านี้

TH