Mở rộng xử lý theo lô

Các khái niệm về Streaming

Mike Metzger

Data Engineer

Mở rộng là gì?

  • Cải thiện hiệu năng
    • Xử lý nhanh hơn
      • Ít thời gian hơn để xử lý cùng lượng dữ liệu
    • Xử lý nhiều dữ liệu hơn
      • Nhiều dữ liệu được xử lý trong cùng thời gian
Các khái niệm về Streaming

Mở rộng dọc

  • Phần cứng tốt hơn
    • CPU nhanh hơn
    • IO nhanh hơn
    • Nhiều bộ nhớ hơn
  • Thường là cách mở rộng dễ nhất
    • Ít phức tạp nhất
    • Hiếm khi cần đổi chương trình/thuật toán nền tảng

CPU

Bộ nhớ

1 Hình ảnh từ https://unsplash.com/@jeremy0
Các khái niệm về Streaming

Nhược điểm của mở rộng dọc

  • Vốn dĩ giới hạn
  • Có thể tốn kém / ROI thấp
  • Cải tiến của ngành không bảo đảm
Các khái niệm về Streaming

Mở rộng ngang

  • Chia nhỏ một tác vụ thành nhiều phần
    • Nhiều máy hơn
    • Cũng có thể là nhiều CPU hơn
  • Tốt nhất cho tác vụ “dễ song song hóa”
    • Dễ chia cho nhiều worker
  • Có thể rất tiết kiệm chi phí
  • Có thể tăng hiệu năng gần tuyến tính cho một số quy trình

CPU1

CPU2

CPU3

CPU4

Các khái niệm về Streaming

Nhược điểm của mở rộng ngang

  • Độ phức tạp
    • Cần khung xử lý (như Apache Spark hoặc Dask)
    • Cần mạng phức tạp hơn
  • Quản trị liên tục
  • Có thể tốn kém tùy yêu cầu
  • Nhiệm vụ “không song song”
Các khái niệm về Streaming

Luyện tập nhé!

Các khái niệm về Streaming

Preparing Video For Download...