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. Помимо улучшенного планирования, вся обработка находится в памяти и конвейерно по сети между различными этапами. Это позволяет избежать ненужной задержки ввода-вывода.