การ Scaling Batch Processing

แนวคิดด้าน Streaming

Mike Metzger

Data Engineer

Scaling คืออะไร?

  • การปรับปรุง ประสิทธิภาพ
    • ประมวลผล เร็วขึ้น
      • ใช้เวลาน้อยลงในการประมวลผลข้อมูลปริมาณเท่าเดิม
    • ประมวลผล ข้อมูลได้มากขึ้น
      • ประมวลผลข้อมูลได้มากขึ้นในเวลาเท่าเดิม
แนวคิดด้าน Streaming

Vertical Scaling

  • ฮาร์ดแวร์ที่ดีขึ้น
    • CPU เร็วขึ้น
    • IO เร็วขึ้น
    • หน่วยความจำมากขึ้น
  • โดยทั่วไปเป็น Scaling ที่ ง่ายที่สุด
    • ความซับซ้อนน้อยที่สุด
    • แทบไม่ต้องเปลี่ยนโปรแกรมหรืออัลกอริทึมที่ใช้งานอยู่

CPU

หน่วยความจำ

1 Images courtesy https://unsplash.com/@jeremy0
แนวคิดด้าน Streaming

ข้อเสียของ Vertical Scaling

  • มี ข้อจำกัด โดยธรรมชาติ
  • อาจ มีค่าใช้จ่ายสูง / ROI ต่ำ
  • การพัฒนาของอุตสาหกรรม ไม่มีการรับประกัน
แนวคิดด้าน Streaming

Horizontal Scaling

  • แบ่ง งานออกเป็นหลายส่วน
    • ใช้คอมพิวเตอร์หลายเครื่อง
    • หรืออาจใช้หลาย CPU
  • เหมาะที่สุดกับงานที่ "embarrassingly parallel"
    • งานที่แบ่งให้ผู้ประมวลผลหลายรายได้ง่าย
  • คุ้มค่า ด้านต้นทุนสูง
  • อาจมี การปรับปรุงประสิทธิภาพแบบเกือบเชิงเส้น สำหรับบางประเภทของกระบวนการ

CPU1

CPU2

CPU3

CPU4

แนวคิดด้าน Streaming

ข้อเสียของ Horizontal Scaling

  • ความซับซ้อน
    • ต้องใช้เฟรมเวิร์กสำหรับประมวลผล (เช่น Apache Spark หรือ Dask)
    • ต้องการระบบเครือข่ายที่ครอบคลุมมากขึ้น
  • การจัดการอย่างต่อเนื่อง
  • ค่าใช้จ่ายสูง ขึ้นอยู่กับความต้องการ
  • งาน "Non-parallel"
แนวคิดด้าน Streaming

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

แนวคิดด้าน Streaming

Preparing Video For Download...