Trino и Presto на собеседовании Data Engineer
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем спрашивают на собесе DE
Trino — стандарт ad-hoc SQL поверх lake. На собесе DE: «отличие от Spark», «federated queries», «когда использовать».
Trino vs Presto
Изначально Presto (Facebook 2012). В 2020 split:
- Trino (старая команда, ex-Facebook) — community-driven, активное development.
- PrestoDB — Facebook fork.
В 2026 — Trino doминирует open source. PrestoDB остался в legacy.
Архитектура
MPP (Massively Parallel Processing).
[Coordinator] ── parses, plans, distributes
↓
[Worker 1] [Worker 2] [Worker N]
↓ ↓ ↓
[Connector to data sources]В отличие от Spark. Trino — pure SQL engine, без Spark API. Не делает ETL, делает interactive queries.
Federated queries
Trino может join несколько sources в одном query.
SELECT u.name, o.amount
FROM postgres.public.users u
JOIN hive.warehouse.orders o ON u.id = o.user_id
WHERE o.created_at > '2026-05-01';Postgres + Hive lake + Kafka + ElasticSearch — всё в одном запросе.
Connectors. 50+ — Hive, Iceberg, Delta, Postgres, MySQL, MongoDB, Cassandra, Elasticsearch, Kafka, ClickHouse и т.д.
Сравнение с Spark
| Trino | Spark | |
|---|---|---|
| Фокус | Interactive SQL | Batch + ETL |
| Latency | Низкая (sec) | Высокая (min) |
| Throughput | Лучше для query | Лучше для ETL |
| API | SQL только | DataFrame, SQL, RDD, ML |
| Streaming | Нет | Да |
| State | In-memory | Disk + memory |
| ETL workload | Слабее | Лучше |
Pattern: Trino для ad-hoc / dashboards, Spark для ETL / ML.
Применение
Ad-hoc analytics. Аналитик пишет SQL, Trino отвечает в секундах на TB-данных.
BI / dashboards. Tableau / Superset → Trino → lake.
Federated queries. Нужно join Postgres OLTP с lake OLAP — Trino позволяет.
Migration helper. Из Hive в новые форматы — Trino читает оба.
В РФ: используется в больших data-командах (Avito, Yandex). Альтернатива — Apache Druid (другой profile).
Частые ошибки
Использовать Trino для ETL. Slow для тяжёлых transformations. Spark / dbt лучше.
Тяжёлые joins без stats. Trino без ANALYZE TABLE выбирает плохой plan.
Большие result set. Trino streams results через coordinator — coordinator OOM.
Без cluster scaling. Default config — для small cluster. Production требует tuning.
Connectors с малым performance. Postgres / MySQL connectors slow на больших datasets — лучше дать lake.
Связанные темы
- Hive Metastore для DE
- Lakehouse Iceberg Delta для DE
- Spark RDD vs DataFrame для DE
- Snowflake vs BigQuery для DE
- Подготовка к собесу Data Engineer
FAQ
Trino быстрее Spark SQL?
На interactive queries — обычно да (нет JVM warmup). На batch ETL — Spark.
Это официальная информация?
Нет. Статья основана на документации Trino / Presto.
Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.