Khả năng xử lý dữ liệu Stream

Một phần của tài liệu Nghiên cứu phát triển công cụ phân tích dữ liệu nông nghiệp dùng cho làng thông minh (Trang 33 - 35)

3 Khảo sát và lựa chọn framework xử lý dữ liệu

3.2.3Khả năng xử lý dữ liệu Stream

Xử lý dữ liệu Stream là mô hình xử lý dữ liệu được thực hiện ngay khi dữ liệu đến. Không giống như mô hình xử lý dữ liệu theo Batch, dữ liệu trong mô hình xử lý theo Stream sẽ không phải chờ cho đến khi đủ Batch mới được xử lý, nó sẽ được xử lý ngay khi dữ liệu được phát sinh.

HÌNH3.2: Xử lý Stream

Trong mô hình xử lý dữ liệu theo Stream, dữ liệu được xử lý ngay lập tức hoặc trong khoảng thời gian rất ngắn tính bằng mili giây hoặc vài giây. Có hai kiểu xử lý theo Stream, đó là:

• Native Streaming: mọi bản ghi đến đều được xử lý ngay khi nó đến mà không

cần đợi. Ví dụ: Storm, Flink

• Micro Batching: các bản ghi đến sau mỗi vài giây được gộp lại với nhau và sau

đó được xử lý trong một Batch nhỏ duy nhất với độ trễ vài giây. Ví dụ: Spark Streaming

Vậy ưu nhược điểm của hai phương pháp trên là gì ?

Chương 3. Khảo sát và lựa chọn framework xử lý dữ liệu 19 độ trễ tối thiểu có thể. Nhưng điều đó cũng đồng nghĩa với việc đánh đổi khả năng chịu lỗi của bản ghi. Cần phải có bước theo dõi và kiểm tra sau khi xử lý. Mặt khác, Micro Batching hoàn toàn ngược lại. Khả năng chịu lỗi tốt hơn nhưng sẽ có độ trễ . Trong bốn framework kể trên: Spark, Flink và Storm là có khả năng xử lý Stream. So

sánh các điểm khác biệt giữa ba framework trên (prakash,2018)

• Storm: là Streaming framework lâu đời nhất và là một trong những framework

và đáng tin cậy nhất.

- Ưu điểm: Độ trễ rất thấp, thuộc loại native streaming, lâu đời và thông lượng cao. Rất phù hợp cho các trường hợp sử dụng Streaming không phức tạp - Nhược điểm: Không có quản lý trạng thái, Không có các tính năng nâng cao như Xử lý thời gian sự kiện, tổng hợp, cửa sổ, phiên, v.v.

• Spark Streaming:là một module của framework Spark giúp cho các tính năng

của Spark ngày càng đầy đủ và mạnh mẽ. Spark sử dụng Micro Batching để Streaming. Trước khi phát hành phiên bản 2.0, Spark Streaming có một số hạn chế về hiệu suất nghiêm trọng nhưng với phiên bản 2.0+ mới, Spark Streaming trở thành Stream có cấu trúc và được trang bị nhiều tính năng tốt như quản lý bộ nhớ tùy chỉnh (như flink), hỗ trợ xử lý thời gian sự kiện, v.v.

Ưu điểm: hỗ trợ kiến trúc Lambda, Phù hợp cho nhiều trường hợp sử dụng không yêu cầu độ trễ thấp, Khả năng chịu lỗi tốt do tính chất của Micro Batching, dễ sử dụng các API cấp cao

Nhược điểm: không phù hợp với các yêu cầu về độ trễ thấp

• Flink: cũng xuất thân từ nền tảng học thuật tương tự như Spark. Trong khi

Spark đến từ UC Berkley, Flink đến từ Đại học Berlin TU. Giống như Spark, nó cũng hỗ trợ kiến trúc Lambda. Nhưng cách triển khai hoàn toàn ngược lại với Spark. Khác với Spark, Flink về cơ bản là một công cụ Native Streaming thực sự, và xem Micro Batching là trường hợp đặc biệt của Native Streaming với dữ liệu bị giới hạn.

Ưu điểm: Là framework opensource hàng đầu trong lĩnh vực Streaming, có tất cả các tính năng nâng cao như xử lý thời gian sự kiện, watermarks, v.v. Độ trễ thấp với thông lượng cao, có thể cấu hình theo yêu cầu, được các công ty lớn ở quy mô lớn như Uber, Alibaba chấp nhận.

Nhược điểm: cộng đồng không lớn mạnh như Spark, không hỗ trợ tốt xử lý Batch

Chương 3. Khảo sát và lựa chọn framework xử lý dữ liệu 20

Một phần của tài liệu Nghiên cứu phát triển công cụ phân tích dữ liệu nông nghiệp dùng cho làng thông minh (Trang 33 - 35)