AccueilBlogTest technique Trino : SQL fédéré sur sources multiples
Guide recrutement data

Test technique Trino : SQL fédéré sur sources multiples

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.

Data Builder·Juin 2025·6 min de lecture·Data Engineer
Sommaire
  1. Architecture Trino
  2. Connecteurs
  3. Query Federation
  4. Optimisation
  5. Trino vs Spark SQL
  6. Cas d usage
  7. Grille

1Architecture Trino : coordinator et workers

Question discriminante

Comment est architecturé Trino ? Quelle est la différence avec Spark ?

2Connecteurs : la richesse de Trino

Question discriminante

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;

3Query Federation : les pièges

Question discriminante

Quels sont les pièges de performance dans une requête Trino qui joint plusieurs sources ?

4Optimisation des requêtes Trino

Question discriminante

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']);

5Trino vs Spark SQL : quand utiliser quoi

Question discriminante

Quels sont les critères de choix entre Trino et Spark SQL ?

CritèreTrinoSpark SQL
Latence< 1s possibleQuelques secondes minimum
Query federationNatifLimité
Très gros volumesPossible mais Spark meilleurExcellent
StreamingNonOui
MLNonOui
Cas typiqueBI interactive, exploration, federationETL batch, ML, streaming

6Cas d usage Trino en production

Question discriminante

Dans quels contextes déployez-vous Trino ?

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméArchitecture Trino, connecteurs, requêtes inter-sourcesA écrit des requêtes fédérées Trino, comprend coordinator/workersNe sait pas ce qu est Trino
SeniorOptimisation, statistics, broadcast hints, choix Trino vs SparkA optimisé des requêtes Trino avec EXPLAIN ANALYZE, justifie Trino vs SparkNe sait pas expliquer pourquoi une requête fédérée est lente

Vous recrutez un Data Engineer Trino ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.