Trino federation queries на собеседовании Data Engineer

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — 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 локально.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

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.

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на документации Trino.


Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.