Apache Presto - Архитектура

Архитектура Presto практически аналогична классической архитектуре СУБД MPP (массовая параллельная обработка). На следующей диаграмме показана архитектура Presto.

Приведенная выше диаграмма состоит из разных компонентов. В следующей таблице подробно описан каждый компонент.

S.No Компонент и описание
1.

Client

Клиент (Presto CLI) отправляет операторы SQL координатору для получения результата.

2.

Coordinator

Координатор - это главный демон. Координатор сначала анализирует запросы SQL, затем анализирует и планирует выполнение запроса. Планировщик выполняет конвейерное выполнение, назначает работу ближайшему узлу и отслеживает прогресс.

3.

Connector

Плагины хранилища называются коннекторами. Hive, HBase, MySQL, Cassandra и многие другие действуют как соединители; в противном случае вы также можете реализовать собственный. Коннектор предоставляет метаданные и данные для запросов. Координатор использует коннектор для получения метаданных для построения плана запроса.

4.

Worker

Координатор назначает задачу рабочим узлам. Рабочие получают актуальные данные от коннектора. Наконец, рабочий узел передает результат клиенту.

Presto - Рабочий процесс

Presto - это распределенная система, работающая на кластере узлов. Механизм распределенных запросов Presto оптимизирован для интерактивного анализа и поддерживает стандартный ANSI SQL, включая сложные запросы, агрегаты, объединения и оконные функции. Архитектура Presto проста и расширяема. Клиент Presto (CLI) отправляет операторы SQL главному координатору демона.

Планировщик подключается через конвейер выполнения. Планировщик назначает работу узлам, наиболее близким к данным, и отслеживает прогресс. Координатор назначает задачу нескольким рабочим узлам, и, наконец, рабочий узел возвращает результат клиенту. Клиент извлекает данные из процесса вывода. Расширяемость - это ключевой дизайн. Подключаемые соединители, такие как Hive, HBase, MySQL и т. Д., Предоставляют метаданные и данные для запросов. Presto был разработан с использованием «простой абстракции хранилища», которая упрощает предоставление возможности запроса SQL к этим различным типам источников данных.

Модель исполнения

Presto поддерживает настраиваемый механизм запросов и выполнения с операторами, предназначенными для поддержки семантики SQL. Помимо улучшенного планирования, вся обработка находится в памяти и конвейерно по сети между различными этапами. Это позволяет избежать ненужной задержки ввода-вывода.