ระบบ streaming ยอดนิยม

แนวคิดด้าน Streaming

Mike Metzger

Data engineer

เครื่องมือ streaming

  • มีเครื่องมือหลากหลาย ให้เลือกตามความต้องการ
  • ช่วยให้ผู้ออกแบบเลือก เครื่องมือที่เหมาะสมที่สุด
  • ระบบที่พบบ่อย ได้แก่:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

แนวคิดด้าน Streaming

Celery

  • Distributed task queue / FIFO
  • ใช้เป็นหลักสำหรับ job หรือ task queue
  • มักใช้สำหรับ งาน asynchronous
    • ส่งอีเมลรีเซ็ตรหัสผ่าน
    • ดำเนินการคำสั่งซื้อดิจิทัล
    • ปรับขนาดรูปภาพ
  • รองรับ การประมวลผลแบบ real-time สำหรับข้อความปริมาณมาก
  • มีฟังก์ชันสำหรับ การจัดการและการขยายขนาด (vertical และ horizontal)

โปรเจกต์ Celery

แนวคิดด้าน Streaming

Apache Kafka

  • ระบบ event streaming แบบ distributed
  • ออกแบบมาเพื่อส่ง event ระหว่าง producers และ consumers
    • Producers สร้าง event บน topic
    • Topics คือ messages ในรูปแบบที่กำหนด
    • Consumers รับ event ใหม่
  • consumers แต่ละตัวสามารถ จัดการ event ตามต้องการ (logging, transformations, relaying ฯลฯ)
  • รองรับ การจัดเก็บ event ตามที่กำหนด
  • ทรงพลัง มาก แต่ การตั้งค่า อาจ ซับซ้อน

Apache Kafka

แนวคิดด้าน Streaming

การใช้งาน Kafka

  • เหมาะสำหรับ การส่งข้อมูลระหว่างหลายระบบ
    • แหล่งข้อมูลเดียว ที่เชื่อถือได้
    • การ capture การเปลี่ยนแปลงข้อมูล
    • สำรองข้อมูล
    • การย้ายระบบ ข้อมูล
แนวคิดด้าน Streaming

Spark streaming

  • เป็นส่วนหนึ่งของ Apache Spark
  • ออกแบบมาเพื่อประมวลผลข้อมูล streaming
  • ต่อยอดความสามารถของ Spark ในการประมวลผลข้อมูลด้วย Scala, Python, SQL และอื่น ๆ
  • เหมาะสำหรับการประมวลผลข้อมูล ปริมาณมาก และสถานการณ์ machine learning
  • สามารถ สลับจาก batch เป็น stream processing ได้ง่าย
  • ไม่ได้ออกแบบมาเพื่อจัดเก็บหรือบันทึก event แต่มุ่งเน้นการ ประมวลผลหรือแปลงข้อมูล

Apache Spark

แนวคิดด้าน Streaming

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

แนวคิดด้าน Streaming

Preparing Video For Download...