2.4 Các vấn đề tiếp cận
2.4.7 Vận chuyển dữ liệu tới server tập trung[20]
Ở đây chúng ta đề cập tới vấn đề đẩy dữ liệu từ các app-server tới server cài đặt bộ parser. Có nghĩa là dù cho sử dụng bất cứ mô hình nào, chúng ta đều phải cài đặt ở các app-server có các application đang chạy một chương trình chạy ngầm là shipper. Để gửi các dữ liệu thông qua một cổng kết nối tới server Parser.
Hình 2.21: Vận chuyển dữ liệu tới Parser
Với hình 2.21 ở trên, giữa application và parser có hàng đợi hay không chúng ta không đề cập tới. Mà tập trung xem xét về tới các công nghệ sử dụng để đẩy dữ liệu tới thành phần Parser như thế nào.
Ở đây, có thể sử dụng 3 công nghệ đó là Stream Data, Batch Job và một thuật toán đến từ giải thuật Streaming k-means Approximation.
Batch Job: Có nghĩa rằng chương trình shipper được lập lịch dựa vào khoảng thời gian được cấu hình, thông thường sẽ là khoảng 2 phút. Lập lịch cứ 2 phút thì shipper sẽ tự động chạy nhiệm vụ quét các file dữ liệu để lấy dữ liệu mới và gửi sang cho parser. Khoảng thời gian ít hay nhiều phụ thuộc vào số dòng dữ liệu mới sinh ra. Bởi vì nếu chúng ta cấu hình thời gian quá ngắn, ví dụ là 5 giây, nhưng trong khoảng thời gian đó không có dữ liệu mới nào sinh ra. Shipper vẫn thực hiện chiếm tài nguyên để cho các luồng worker thực hiện nhiệm vụ một cách đều đặn mà chẳng gửi được thêm dữ liệu nào mới. Gây ảnh hưởng tới hiệu năng của hệ thống.
Chúng ta xem xét một chút về cơ chế hoạt động của batch job để có thể so sánh với các công nghệ còn lại.
Hình 2.22: cơ chế hoạt động của batch job
Giả sử rằng tại shipper đang thực hiện giám sát các dữ liệu mới sinh ra từ 5 app- server khác nhau. Ở đây, việc thực hiện lấy dữ liệu ở các server có thể được lập lịch tuần tự, chia khoảng thời gian quét lần lượt từ server 1 tới server 5, hoặc cũng có thể đồng thời một lúc quét 5 server và dừng lại chờ tới phiên làm việc kế tiếp ở thời điểm x + khoảng thời gian đặt lịch cũng sẽ thực hiện tương tự.
Chúng ta thấy ngay nhược điểm của batch job là không thể có được ngay dữ liệu mới nhất ở shipper. Mà việc này phụ thuộc vào thời gian đặt lịch chạy vì thế nên việc xử lý dữ liệu luôn có một độ trễ thời gian nhất định.
Streaming: Chúng ta luôn giữ một kết nối thường trực giữa các app-server với thành phần shipper. Để mỗi khi có dữ liệu mới sinh ra, tự động shipper sẽ lấy được dữ liệu tức thì. Điều này được thực hiện bởi các micro batch job – một nhiệm vụ liên tục, được chia nhỏ để xử lý và tạo các bản ghi đệm. Một khi micro batch thực hiện thất bại, đơn giản nó sẽ được tính toán lại. Và cuối cùng các dữ liệu mới sinh ra sẽ nối đuôi nhau tuần tự tạo thành dòng dữ liệu.
Hình 2.23: Sơ đồ Micro batch job thực hiện tạo dòng dữ liệu
Hình 2.24: Ví dụ về một dòng dữ liệu được tạo ra
Đối với việc sử dụng công nghệ Streaming cho việc vận chuyển dữ liệu của thành phần shipper sang parser, cơ chế hoạt động của nó là luôn giữ kết nối tới các server. Để mỗi khi có dữ liệu sinh ra ở các server từ 1 tới 5, nó tự động thêm vào dòng dữ liệu để đẩy sang cho parser.
Hình 2.25: Sơ đồ hoạt động của Streaming
Với giải thuật Streaming k-means Approximation, về cơ bản cũng là một thuật toán giúp cho việc tập hợp các dữ liệu đổ thành một dòng tương tự như công nghệ streaming đã trình bày ở trên. Vấn đề hiệu năng của giải thuật này có tốt hơn hay tối ưu hơn so với streaming hay không nằm ngoài vấn đề tiếp cận của luận văn.
Ở đây, để tập hợp các dữ liệu sinh ra về parser. Hệ thống eLMS sẽ lựa chọn sử dụng streaming vì lý do đơn giản là công nghệ này đáp ứng xử lý dữ liệu thời gian thực mà hệ thống đang hướng tới.
2.5 Kết luận
Trong chương này, chúng ta đã trình bày vấn đề liên quan tới các trường hợp user-case cần phải có của một hệ thống quản lý dữ liệu tập trung. Giải thích các thành phần xử lý trong vòng đời xử lý tích hợp dữ liệu. Chúng ta cũng tham khảo và xem xét một vài nền tảng hiện có đã thực hiện việc quản lý như thế nào. Tìm hiểu về các vấn đề liên quan và có thể rút ra được một vài kết luận. Đã trình bày những gì mà chúng ta cần thực hiện ở một hệ thống quản lý tập trung trước khi bắt tay vào xây dựng hệ thống eLMS hiệu quả.
CHƯƠNG 3: ĐỀ XUẤT eLMS – HỆ THỐNG TÍCH HỢP GỌN NHẸ, THỜI GIAN THỰC