Что это простыми словами
Presto — это программа, которая умеет быстро искать данные сразу в нескольких хранилищах, не перетаскивая их в одно место.
Аналогия: представьте библиотеку с книгами, разложенными по разным зданиям — историческое здание, научный корпус, архив. Обычный способ: вы обходите все здания пешком, собираете нужные книги в рюкзак, приносите домой и там читаете. Presto работает иначе: вы пишете запрос «найти все книги про космос», и система сама одновременно смотрит во всех зданиях, находит страницы и показывает вам результат — не таская книги туда-сюда.
В IT такие хранилища называют «источниками данных». Данные могут лежать в базах разных типов, в файлах, в облаке — Presto подключается ко всем сразу и отвечает на запрос за секунды, не копируя терабайты данных.
Официальное определение
Теперь, когда суть понятна, вот как Presto описывают в вакансиях и документации. Эту формулировку вы встретите в требованиях к data-инженеру.
«Presto — распределённый SQL-движок для интерактивной аналитики, выполняющий запросы к гетерогенным источникам данных без предварительного переноса данных».
Разберём по словам. «Распределённый» — работа разбивается между несколькими серверами одновременно, поэтому быстро. «SQL» — язык запросов, которым описывают, какие данные нужны. «Движок» — программа, которая выполняет эти запросы. «Интерактивная аналитика» — когда человек задаёт вопрос и ждёт ответ прямо сейчас, а не через час. «Гетерогенные источники» — данные лежат в базах разных типов и форматов. «Без предварительного переноса» — Presto читает данные там, где они лежат, не собирая их в одну базу заранее.
Какую задачу решает
В крупных компаниях данные разбросаны: транзакции в одной базе, логи в другой, файлы в облачном хранилище. Чтобы что-то посчитать — например, сколько денег потратили пользователи из Москвы за вчерашний день, — нужно заглянуть в несколько мест сразу.
Классический способ: скопировать данные из всех источников в одно хранилище. Это долго, дорого, занимает место, и данные устаревают, пока их копируют. Presto решает проблему иначе: оставляет данные там, где они лежат, и опрашивает все источники одновременно. Запрос выполняется за секунды, данные всегда свежие, ничего не нужно копировать.
Такой подход называют «federated query» — федеративный запрос. Это ключевое слово, которое вы можете встретить в вакансиях.
Кто им пользуется
Presto — это инструмент, а не язык программирования, поэтому он ни к какому языку не привязан. Им пользуются несколько ролей:
Data-инженер — основной пользователь. Настраивает Presto, подключает источники данных, пишет и оптимизирует запросы. Это его повседневный инструмент.
Data-аналитик — использует Presto, чтобы быстро получить данные для анализа, не дожидаясь, пока их кто-то подготовит.
Аналитики данных в крупных компаниях — если инфраструктура построена на Presto, они пишут SQL-запросы через него.
Для работы с Presto нужен SQL — язык запросов к данным. Поэтому в вакансиях Presto и SQL идут вместе.
Аналоги / чем заменяется
Presto решает ту же задачу федеративных запросов, что и другие SQL-движки для больших данных:
Trino — ответвление Presto, создано той же командой. Сейчас активно развивается, многие переходят с Presto на Trino.
Apache Drill — похожий подход, но менее популярен.
Dremio — коммерческое решение с похожими возможностями.
Apache Hive — старая технология для работы с большими данными через SQL. Работает медленнее Presto, но исторически встречается в компаниях.
Переход между ними возможен, но не тривиален. Логика и SQL похожи, но каждый движок имеет свои особенности настройки, оптимизации и подключения источников. Data-инженер с опытом Presto освоит Trino быстрее, чем человек без опыта распределённых SQL-движков, но это не вопрос одного дня.
Что не путать
Presto ≠ база данных. Presto не хранит данные, он только читает их из других источников и выполняет запросы. База хранит, Presto запрашивает.
Presto ≠ Trino, но они очень близки. Trino — это продолжение Presto той же командой разработчиков после внутреннего раскола. В резюме может встретиться и то, и другое — это смежный опыт.
Presto ≠ Hadoop. Hadoop — это платформа для хранения и обработки больших данных, а Presto — инструмент для быстрых запросов. Presto может работать поверх данных, хранящихся в Hadoop, но это разные уровни стека.
Presto ≠ язык программирования. Это программа, которая выполняет SQL-запросы. Умение писать SQL и умение настраивать Presto — разные навыки.
Насколько это важно при отборе
Короткий ответ: важность зависит от того, насколько глубоко Presto встроен в инфраструктуру компании.
Если компания активно использует Presto как центральный инструмент доступа к данным, то опыт с ним становится жёстким требованием для data-инженера. Настройка, оптимизация запросов, подключение источников и отладка производительности — это специфические навыки, которые осваиваются не за неделю. Человек без опыта Presto потратит месяцы на вхождение.
Если же Presto используется эпизодически или компания готова обучать — можно рассмотреть кандидата с опытом похожих технологий: Trino, Apache Drill, работы с распределёнными SQL-движками или большими данными. Такой человек освоит Presto быстрее, чем тот, кто никогда не сталкивался с подобными системами.
Для data-аналитика требования мягче: если он уверенно знает SQL и работал с любыми большими данными, то научится писать запросы через Presto за пару недель. Отсеивать аналитика только из-за отсутствия Presto в резюме — чаще всего избыточно.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.