Kiến trúc dữ liệu lớn

Một phần của tài liệu Bài Giảng Lưu Trữ Và Phân Tích Dữ Liệu (Trang 74 - 77)

CHƯƠNG 4: KIẾN TRÚC CƠ SỞ DỮ LIỆU LỚN

4.1. Kiến trúc khung tính toán (computing frameworks)

4.1.1 Kiến trúc dữ liệu lớn

Các kiến trúc dữ liệu lớn được thiết kế để quản lý việc nhập, xử lý, trực quan hóa và phân tích dữ liệu quá lớn hoặc quá phức tạp để xử lý bằng các công cụ truyền thống.

Từ tổ chức này sang tổ chức khác, dữ liệu đó có thể bao gồm hàng trăm gigabyte hoặc hàng trăm terabyte.

Kiến trúc Lambda

Hình 4. 1: Kiến trúc lambda

Kiến trúc lambda là một cách tiếp cận để xử lý dữ liệu lớn nhằm mục đích đạt được các bản cập nhật có độ trễ thấp trong khi vẫn duy trì độ chính xác cao nhất có thể.

Nó được chia thành 3 lớp.

• Đầu tiên, “lớp lô” bao gồm một hệ thống tệp phân tán lưu trữ toàn bộ dữ liệu được thu thập.

• Lớp tương tự lưu trữ một tập hợp các hàm được xác định trước sẽ được chạy trên tập dữ liệu để tạo ra cái được gọi là chế độ xem hàng loạt. Những khung nhìn đó được lưu trữ trong một cơ sở dữ liệu tạo thành “lớp phục vụ” mà từ đó người dùng có thể truy vấn chúng một cách tương tác.

• Lớp thứ ba được gọi là “lớp tốc độ” tính toán các chức năng gia tăng trên dữ liệu mới khi nó đến hệ thống. Nó chỉ xử lý dữ liệu được tạo ra giữa hai lần tính toán lại các chế độ xem hàng loạt liên tiếp và nó tạo ra các chế độ xem thời gian thực cũng được lưu trữ trong lớp phục vụ. Các chế độ xem

khác nhau được truy vấn cùng nhau để thu được kết quả chính xác nhất có thể.

Kiến trúc Kappa

Hình 4. 2: Kiến trúc Kappa

Kiến trúc Kappa được đề xuất để giảm chi phí của kiến trúc lambda đi kèm với việc xử lý hai cơ sở mã riêng biệt để xử lý luồng và xử lý hàng loạt. Trong kiến trúc Kappa, lớp lô đã bị loại bỏ và lớp tốc độ được tăng cường để cung cấp khả năng xử lý lại. Bằng cách sử dụng các công cụ xử lý luồng cụ thể như Apache Kafka, do đó, có thể lưu trữ dữ liệu được phát trực tiếp trong một khoảng thời gian và tạo các công việc xử lý luồng mới để xử lý lại dữ liệu đó khi cần thay thế các công việc xử lý hàng loạt.

Kiến trúc Microservice

Hình 4. 3: Kiến trúc Microserive

Hệ thống dựa trên kiến trúc microservice bao gồm một tập hợp các dịch vụ được ghép nối lỏng lẻo có thể chạy độc lập và giao tiếp với nhau thông qua các dịch vụ web REST, cuộc gọi từ xa hoặc nhắn tin đẩy. Mỗi dịch vụ được thực hiện bằng các công cụ và bằng ngôn ngữ phù hợp nhất cho nhiệm vụ mà nó thực hiện. Mỗi dịch vụ chạy trên một máy chủ chuyên dụng và có một bộ lưu trữ riêng. Sự khác biệt chính giữa kiến trúc microservice và một hệ thống dựa trên SOA đơn giản là trong kiến trúc microservice, mỗi dịch vụ chỉ tập trung vào việc hoàn thành một nhiệm vụ cụ thể và đại diện cho một ứng dụng độc lập của riêng nó.

Kiến trúc Zeta

Hình 4. 4: Kiến trúc Zeta

Kiến trúc Zeta đề xuất một cách tiếp cận mới trong đó giải pháp công nghệ của một công ty được tích hợp trực tiếp với kiến trúc doanh nghiệp. Bất kỳ ứng dụng nào mà doanh nghiệp yêu cầu đều có thể được “cắm vào” kiến trúc này. Nó cung cấp các vùng chứa là các môi trường biệt lập trong đó các phần mềm có thể được chạy và được thực hiện để tương tác với nhau một cách độc lập với sự không tương thích của nền tảng.

Do đó, nhiều loại ứng dụng có thể được cung cấp và chạy trong kiến trúc zeta.

Kiến trúc IoT

Hình 4. 5: Kiến trúc iot-a

Miền Internet of Things rộng lớn đến mức không có kiến trúc thống nhất nào được xác định cho đến nay trong lĩnh vực này. Tuy nhiên, một số kiến trúc đã được các học giả đề xuất theo thời gian. Michael Hausenblas đã cố gắng đề xuất một kiến trúc trừu tượng cao cho tất cả các dự án IOT dựa trên các yêu cầu của hệ thống xử lý dữ liệu IOT. Kiến trúc được gọi là iot-a.

Một phần của tài liệu Bài Giảng Lưu Trữ Và Phân Tích Dữ Liệu (Trang 74 - 77)

Tải bản đầy đủ (PDF)

(199 trang)