Trino federation queries на собеседовании Data Engineer
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем federation
Часто данные spread across:
- Postgres OLTP (текущие orders).
- Hive / Iceberg lake (исторические).
- Kafka (real-time events).
- ClickHouse (analytics).
- Elasticsearch (logs).
Federation — query across все одним SQL без ETL.
Catalog и connector
Trino организует sources в catalogs.
catalog "postgres_prod" (connector: postgresql)
catalog "iceberg_lake" (connector: iceberg)
catalog "kafka_events" (connector: kafka)
catalog "clickhouse_dwh" (connector: clickhouse)В query — catalog.schema.table:
SELECT * FROM postgres_prod.public.users LIMIT 10;
SELECT * FROM iceberg_lake.warehouse.orders WHERE DATE='2026-05-01';Cross-source join
SELECT
u.name,
COUNT(o.id) AS orders,
SUM(o.amount) AS revenue
FROM postgres_prod.public.users u
JOIN iceberg_lake.warehouse.orders o ON u.id = o.user_id
WHERE u.country = 'RU'
AND o.created_at >= DATE '2026-01-01'
GROUP BY u.name;Trino fetches data из обоих, joins локально.
Pushdown
Trino tries pushdown filters / projections к sources, чтобы minimize data transfer.
Example. WHERE u.country = 'RU' — push в Postgres.
Pushdown поддерживается:
- Predicate (filters).
- Projection (specific columns).
- Aggregations (некоторые).
- Limits.
Чем больше pushed — быстрее.
Когда работает плохо
Cross-source aggregations с big intermediate.
SELECT a.x, b.y FROM big_postgres a JOIN big_lake b ON a.id = b.id;Trino fetches всё → joins → expensive.
Mitigation:
- Partition сначала smaller side.
- Pre-aggregate в source.
- ETL data в одно место для regular reports.
Trino — для ad-hoc, не для production daily aggregations.
Связанные темы
- Trino и Presto для DE
- Hive Metastore для DE
- Iceberg deep для DE
- Spark RDD vs DataFrame для DE
- Подготовка к собесу Data Engineer
FAQ
Это официальная информация?
Нет. Статья основана на документации Trino.
Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.