Data Engineer
Come comportarsi in caso di skew (sbilanciamento) su user_id durante un JOIN tra tabelle di transazioni e utenti? Come scegliere la chiave di distribuzione ottimale?
Come hai caricato i dati da S3 in Greenplum?
Hai esperienza nell'ottimizzazione dei compiti Spark? Puoi fare un esempio concreto?
Nell'immagine mostrata ci sono due strutture dati; in quale di esse la ricerca del valore 2 sarà più veloce e perché?
Come caricare i dati da Kafka a ClickHouse tramite streaming per report in tempo reale?
Racconta la tua esperienza di migrazione da Spring Boot 2 a Spring Boot 3
Come verifici la correttezza dei dati durante la traduzione di un pipeline da SAS a DBT?
Parlami in generale della tua esperienza e di cosa hai studiato.
Cosa è importante per te in un nuovo progetto, in un nuovo team o in una nuova azienda?
Quali processi vengono avviati quando eliminiamo o modifichiamo le registrazioni in ClickHouse?
Qual è la differenza tra refactoring e ottimizzazione?
Quando non abbiamo bisogno di archiviazione dei dati?
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 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) — identificatore del magazzino • operation_type (text) — tipo di operazione: «fornitura», «spedizione», «trasferimento»
Qual è la differenza tra i comandi docker run e docker exec?
Compito Kafka: il produttore invia le modifiche del prezzo del prodotto (200 rubli, poi 300 rubli), il consumatore è replicato in 3 pod. Ci saranno problemi nella configurazione predefinita?
Quali gruppi di operatori SQL conosci? A cosa appartengono?
Inseriamo i metadati come input, e lui crea un flusso basato su questi metadati — come permetterà questo di trasferire rapidamente i flussi esistenti dai vecchi sistemi a quelli pianificati?
Analisi delle vendite per categorie di prodotti in un negozio al dettaglio Sei un analista in un negozio al dettaglio. Il tuo compito è creare un rapporto di vendita per categorie con i seguenti calcoli: • quantità totale di unità vendute nella categoria (total_units_sold); • ricavo totale per categoria, considerando gli sconti, dove lo sconto si calcola come unit_price × units_sold × (1 − discount/100). Se lo sconto è assente (NULL), si considera 0%. Arrotondare a due decimali; • media delle unità vendute per vendita (avg_units_per_sale), arrotondata a due decimali; • quota di vendite senza sconto (no_discount_share) — numero di vendite con NULL o 0% di sconto, diviso per il totale delle vendite nella categoria, arrotondato a tre decimali. Ordina prima i risultati per ricavo totale (total_revenue) in ordine decrescente, poi per media delle unità per vendita (avg_units_per_sale) in ordine crescente, e infine per nome della categoria in ordine alfabetico. Formato di input Tabella sales: • sale_id (int) — identificativo unico di vendita • product_id (int) — identificativo del prodotto • category (text) — categoria del prodotto • sale_date (timestamp) — data e ora di vendita • units_sold (int) — unità vendute • unit_price (numeric) — prezzo per unità • discount (numeric) — sconto in percentuale, può essere NULL La colonna discount può contenere valori nulli. Formato di output La query deve restituire una tabella con i campi in questo ordine: • category (text) — categoria del prodotto • total_units_sold (int) — quantità totale di unità vendute in questa categoria • total_revenue (numeric) — ricavo totale per categoria, arrotondato a due decimali • avg_units_per_sale (numeric) — media delle unità per vendita, arrotondata a due decimali • no_discount_share (numeric) — quota di vendite senza sconto (valore tra 0 e 1), arrotondata a tre decimali Il risultato deve essere ordinato prima per total_revenue in ordine decrescente, poi per avg_units_per_sale in ordine crescente, e infine per nome della categoria in ordine alfabetico.
Hai usato Bridge e tabelle PIT in Data Vault? Fornisci un esempio e spiega lo scopo.
Come scegliere la chiave di sharding corretta per una distribuzione uniforme dei dati?