Apache Presto - Kiến trúc

Kiến trúc của Presto gần như tương tự như kiến ​​trúc DBMS MPP (xử lý song song hàng loạt) cổ điển. Sơ đồ sau minh họa kiến ​​trúc của Presto.

Sơ đồ trên bao gồm các thành phần khác nhau. Bảng sau mô tả chi tiết từng thành phần.

S. không Thành phần & Mô tả
1.

Client

Máy khách (Presto CLI) gửi các câu lệnh SQL cho một điều phối viên để nhận kết quả.

2.

Coordinator

Điều phối viên là một daemon chính. Điều phối viên ban đầu phân tích cú pháp các truy vấn SQL sau đó phân tích và lập kế hoạch cho việc thực thi truy vấn. Bộ lập lịch thực hiện thực thi đường ống, giao công việc cho nút gần nhất và giám sát tiến độ.

3.

Connector

Các plugin lưu trữ được gọi là trình kết nối. Hive, HBase, MySQL, Cassandra và nhiều hơn nữa hoạt động như một trình kết nối; nếu không, bạn cũng có thể triển khai một tùy chỉnh. Trình kết nối cung cấp siêu dữ liệu và dữ liệu cho các truy vấn. Người điều phối sử dụng trình kết nối để lấy siêu dữ liệu nhằm xây dựng kế hoạch truy vấn.

4.

Worker

Điều phối viên giao nhiệm vụ cho các nút công nhân. Công nhân lấy dữ liệu thực tế từ trình kết nối. Cuối cùng, nút worker cung cấp kết quả cho máy khách.

Presto - Quy trình làm việc

Presto là một hệ thống phân tán chạy trên một cụm các nút. Công cụ truy vấn phân tán của Presto được tối ưu hóa để phân tích tương tác và hỗ trợ ANSI SQL tiêu chuẩn, bao gồm các truy vấn phức tạp, tổng hợp, liên kết và các hàm cửa sổ. Kiến trúc Presto đơn giản và có thể mở rộng. Ứng dụng khách Presto (CLI) gửi các câu lệnh SQL tới bộ điều phối daemon chính.

Bộ lập lịch kết nối thông qua đường ống thực thi. Bộ lập lịch chỉ định công việc cho các nút gần nhất với dữ liệu và giám sát tiến độ. Điều phối viên giao nhiệm vụ cho nhiều nút công nhân và cuối cùng nút công nhân gửi lại kết quả cho máy khách. Máy khách lấy dữ liệu từ quá trình đầu ra. Khả năng mở rộng là thiết kế quan trọng. Các trình kết nối phù hợp như Hive, HBase, MySQL, v.v., cung cấp siêu dữ liệu và dữ liệu cho các truy vấn. Presto được thiết kế với “sự trừu tượng hóa lưu trữ đơn giản” giúp dễ dàng cung cấp khả năng truy vấn SQL dựa trên các loại nguồn dữ liệu khác nhau này.

Mô hình thực thi

Presto hỗ trợ công cụ thực thi và truy vấn tùy chỉnh với các toán tử được thiết kế để hỗ trợ ngữ nghĩa SQL. Ngoài việc lập lịch được cải thiện, tất cả quá trình xử lý đều nằm trong bộ nhớ và được kết nối trên mạng giữa các giai đoạn khác nhau. Điều này tránh chi phí độ trễ I / O không cần thiết.