Trino (ex-Presto) est le moteur SQL de référence pour interroger plusieurs sources de données depuis une seule requête. En entretien, on évalue la capacité à l architecturer et l optimiser.
Comment est architecturé Trino ? Quelle est la différence avec Spark ?
Quels connecteurs Trino supportez-vous dans votre stack ?
## Configuration d un catalog Trino (catalog/hive.properties)
connector.name=hive
hive.metastore.uri=thrift://hive-metastore:9083
hive.s3.aws-access-key=...
hive.s3.aws-secret-key=...
## catalog/iceberg.properties
connector.name=iceberg
hive.metastore.uri=thrift://hive-metastore:9083
## catalog/postgres.properties
connector.name=postgresql
connection-url=jdbc:postgresql://postgres:5432/analytics
connection-user=trino
connection-password=${ENV:POSTGRES_PASSWORD}
## catalog/bigquery.properties
connector.name=bigquery
bigquery.project-id=mon-projet
bigquery.credentials-file=/etc/trino/bq-key.json
## Requête fédérée : join entre Hive et PostgreSQL
SELECT h.order_id, p.customer_email
FROM hive.analytics.orders h
JOIN postgresql.crm.customers p ON h.customer_id = p.id;Quels sont les pièges de performance dans une requête Trino qui joint plusieurs sources ?
Comment optimisez-vous une requête Trino lente ?
-- 1. Expliquer le plan d exécution
EXPLAIN ANALYZE
SELECT region, SUM(amount)
FROM iceberg.analytics.orders
WHERE order_date >= DATE '2025-01-01'
GROUP BY region;
-- 2. Forcer le broadcast join
SELECT /*+ BROADCAST(dim) */ f.*, dim.name
FROM fact_table f
JOIN dim_table dim ON f.id = dim.id;
-- 3. Vérifier le pruning de partitions
-- Dans l EXPLAIN : 'Partition Pruning' doit apparaître
-- Si Trino scanne toutes les partitions -> filtre sur mauvaise colonne
-- 4. Statistiques à jour
ANALYZE iceberg.analytics.orders;
ANALYZE iceberg.analytics.orders WITH(columns = ARRAY['region', 'order_date']);Quels sont les critères de choix entre Trino et Spark SQL ?
| Critère | Trino | Spark SQL |
|---|---|---|
| Latence | < 1s possible | Quelques secondes minimum |
| Query federation | Natif | Limité |
| Très gros volumes | Possible mais Spark meilleur | Excellent |
| Streaming | Non | Oui |
| ML | Non | Oui |
| Cas typique | BI interactive, exploration, federation | ETL batch, ML, streaming |
Dans quels contextes déployez-vous Trino ?
| Niveau | Maitrise | Signal GO | NO-GO |
|---|---|---|---|
| Confirmé | Architecture Trino, connecteurs, requêtes inter-sources | A écrit des requêtes fédérées Trino, comprend coordinator/workers | Ne sait pas ce qu est Trino |
| Senior | Optimisation, statistics, broadcast hints, choix Trino vs Spark | A optimisé des requêtes Trino avec EXPLAIN ANALYZE, justifie Trino vs Spark | Ne sait pas expliquer pourquoi une requête fédérée est lente |
Premier entretien gratuit. Rapport GO/NO-GO sous 48h.