ระบบ streaming ยอดนิยม
แนวคิดด้าน Streaming
Mike Metzger
Data engineer
เครื่องมือ streaming
- มีเครื่องมือหลากหลาย ให้เลือกตามความต้องการ
- ช่วยให้ผู้ออกแบบเลือก เครื่องมือที่เหมาะสมที่สุด
- ระบบที่พบบ่อย ได้แก่:
- Celery
- Kafka
- Spark Streaming
Celery
- Distributed task queue / FIFO
- ใช้เป็นหลักสำหรับ job หรือ task queue
- มักใช้สำหรับ งาน asynchronous
- ส่งอีเมลรีเซ็ตรหัสผ่าน
- ดำเนินการคำสั่งซื้อดิจิทัล
- ปรับขนาดรูปภาพ
- รองรับ การประมวลผลแบบ real-time สำหรับข้อความปริมาณมาก
- มีฟังก์ชันสำหรับ การจัดการและการขยายขนาด (vertical และ horizontal)
Apache Kafka
- ระบบ event streaming แบบ distributed
- ออกแบบมาเพื่อส่ง event ระหว่าง producers และ consumers
- Producers สร้าง event บน topic
- Topics คือ messages ในรูปแบบที่กำหนด
- Consumers รับ event ใหม่
- consumers แต่ละตัวสามารถ จัดการ event ตามต้องการ (logging, transformations, relaying ฯลฯ)
- รองรับ การจัดเก็บ event ตามที่กำหนด
- ทรงพลัง มาก แต่ การตั้งค่า อาจ ซับซ้อน

การใช้งาน Kafka
- เหมาะสำหรับ การส่งข้อมูลระหว่างหลายระบบ
- แหล่งข้อมูลเดียว ที่เชื่อถือได้
- การ capture การเปลี่ยนแปลงข้อมูล
- สำรองข้อมูล
- การย้ายระบบ ข้อมูล
Spark streaming
- เป็นส่วนหนึ่งของ Apache Spark
- ออกแบบมาเพื่อประมวลผลข้อมูล streaming
- ต่อยอดความสามารถของ Spark ในการประมวลผลข้อมูลด้วย Scala, Python, SQL และอื่น ๆ
- เหมาะสำหรับการประมวลผลข้อมูล ปริมาณมาก และสถานการณ์ machine learning
- สามารถ สลับจาก batch เป็น stream processing ได้ง่าย
- ไม่ได้ออกแบบมาเพื่อจัดเก็บหรือบันทึก event แต่มุ่งเน้นการ ประมวลผลหรือแปลงข้อมูล
มาฝึกกันเถอะ!
แนวคิดด้าน Streaming
Preparing Video For Download...