Data Engineer
Cos'è Hive e come si differenzia dai tradizionali database relazionali?
SELEZIONA * DA tabella1 AS t1 LEFT JOIN tabella2 AS t2 ON t1.date_start > t2.date_start --DML CREA TABELLA SE NON ESISTE Employee (id int, salary int, departmentId int); INSERISCI IN Employee (id,salary,departmentId) VALORI (1, 70000, 1),(2, 94000, 1),(3, 85000, 1),(4, 80000, 2),(5, 60000, 2),(6, 62000, 3),(7, 90000, 3),(8, 94000, 3),(9, 94000, 3); con cte come( seleziona *, rank() over(partition by departmentId order by salary desc) come max_salary da Employee ) seleziona * da cte dove max_salary = 1
Quali JOIN fisici conosci?
Come evitare l'avvio simultaneo di circa 700 esecuzioni DAG durante catchup/backfill in Airflow?
Quali motori di tabelle in ClickHouse conosci e hai usato?
[nome] ha chiesto: Quali colonne devono essere Nullable e come si specifica questo nel DDL?
Parla di Greenplum — formati di archiviazione dei dati, archiviazione in riga e colonna.
Dimmi, cosa ti piace fare nel tempo libero oltre a programmare? Quali sono i tuoi hobby?
LEFT JOIN: tabella con 10 record LEFT JOIN tabella con 100 record. Qual è il numero minimo e massimo di righe che si possono ottenere?
Cos'è la statistica nel contesto dei sistemi di gestione dei database e dell'ottimizzazione delle query?
Su quali campi hai distribuito i dati in Greenplum?
-- Trovare tutti i passeggeri che hanno effettuato viaggi di due o più giorni consecutivi
Quando costruivi pipeline su Airflow, come risolvevi il problema dei dati spazzatura (dati non validi/inutilizzabili)?
Come funziona JOIN in ClickHouse?
Qual è la differenza tra RANK e DENSE_RANK?
Quali tipi di distribuzione hai utilizzato? Come hai scelto la chiave di distribuzione?
Come influisce ORDER BY sulla tabella ClickHouse e quali chiavi è meglio scegliere?
Rapporto per l'azienda logistica Sei un analista di un'azienda logistica che tiene traccia delle operazioni nei magazzini. Devi preparare un rapporto sull'efficienza di ogni magazzino. Per ogni magazzino, calcola: • il numero totale di operazioni (count_operations); • il numero totale di prodotti elaborati nel magazzino (sum_quantity); • il tempo medio di elaborazione di un'operazione (avg_processing_time), considerando solo le operazioni con un tempo specificato (non NULL), arrotondato al numero intero più vicino; • il massimo e minimo numero di prodotti elaborati in una singola operazione (max_quantity, min_quantity); • il numero di operazioni di ogni tipo («fornitura», «spedizione», «trasferimento») in colonne separate: supply_operations, shipment_operations, transfer_operations. Filtra i magazzini con un numero totale di operazioni superiore a 2 e un tempo medio di elaborazione non superiore a 60 minuti. Ordina il risultato per ID magazzino in ordine crescente. Formato di input Tabella operations: • operation_id (int) — identificatore unico dell'operazione • warehouse_id (int) — ID del magazzino • operation_type (text) — tipo di operazione: «fornitura», «spedizione», «trasferimento» • quantity (int) — numero di unità del prodotto nell'operazione • operation_date (timestamp) — data e ora dell'operazione • processing_time (int) — tempo di elaborazione dell'operazione La colonna processing_time può contenere valori nulli. Formato di output La query deve restituire una tabella con i campi nell'ordine seguente: • warehouse_id (int) — ID unico del magazzino • count_operations (int) — numero totale di operazioni effettuate nel magazzino • sum_quantity (int) — numero totale di prodotti elaborati nel magazzino • avg_processing_time (numeric) — tempo medio di elaborazione dell'operazione (in minuti), considerando solo le operazioni con tempo non nullo, arrotondato al numero intero più vicino • max_quantity (int) — numero massimo di prodotti elaborati in una singola operazione • min_quantity (int) — numero minimo di prodotti elaborati in una singola operazione • supply_operations (int) — numero di operazioni di tipo «fornitura» • shipment_operations (int) — numero di operazioni di tipo «spedizione» • transfer_operations (int) — numero di operazioni di tipo «trasferimento»
[nome] ha parlato della sua esperienza con diversi sistemi di gestione di database, quanto ha dovuto approfondire l'ottimizzazione e i dettagli interni.
Cosa verrà catturato come risultato se si uniscono le transazioni con i clienti per client_id e date_start (senza BETWEEN)?