Data Engineer
Parlami della tua esperienza lavorativa negli ultimi posti, quali progetti, quale stack?
Parlami dell'architettura dello storage: come è stato suddiviso in livelli, quali sono le caratteristiche di ogni livello?
Da quali blocchi principali è composta un messaggio di traccia (span)?
Come funziona l'ottimizzatore di query in Oracle, cosa guarda e a quale classe appartiene?
Come analizzare grandi file XML in ZIP e caricarli in ClickHouse usando Python?
Qual è la differenza tra UNION e UNION ALL? Quali condizioni devono essere soddisfatte?
Cos'è un DAG in Airflow, di cosa è composto e come esegue Airflow un DAG?
Da quali caratteristiche si può dire che è necessario un data warehouse?
Stai creando una visualizzazione che mostra tutti gli utenti e, se presenti, i loro ultimi ordini. Tabelle: users(id, name) e orders(id, user_id, created_at). Quale tipo di join deve essere usato per includere anche gli utenti senza ordini? CROSS JOIN RIGHT JOIN INNER JOIN FULL JOIN LEFT JOIN
Come trasferire i dati da una vista materializzata in Greenplum a ClickHouse?
Quale tipo di lettura viene utilizzato in ClickHouse?
Come funziona ClickHouse e in cosa si differisce da PostgreSQL?
Spiega come funziona tecnicamente Git LFS e quali vantaggi offre rispetto a Git standarde quando si lavora con file di grandi dimensioni.
Cos'è la normalizzazione? Su quale forma lavoriamo principalmente?
Quali tipi di indici ci sono in PostgreSQL?
Confronta gli approcci Data Vault in MChS e X5. Quali vantaggi hanno dato i nuovi oggetti (bridge, tabelle pit)?
Qual è la differenza tra EXPLAIN e EXPLAIN ANALYZE?
Descrivi i metodi di ottimizzazione delle query SQL che hai applicato. Come hai ridotto il tempo di esecuzione da 12-15 secondi?
Come risolvere un problema in tempo lineare O(n) usando un dizionario? Cosa bisogna memorizzare nel dizionario per poi costruire una stringa ordinata? Come gestire i caratteri che non sono nell'ordine?
Confronta due soluzioni al problema di ricerca delle unità in base al consumo di memoria: 1) ciclo con variabili, 2) split('0') + comprensione delle liste + max()