Data Engineer
Vorbiți despre utilizarea procedurilor PL/SQL în munca dvs.
Avem un tabel cu clienți (id, nume, adres etc.), produse (id, nume etc.), mișcarea produselor (aici avem id-ul clientului, produs, dată, cantitate, sumă), trebuie să aflăm ce produse au fost vândute pe 1 ianuarie, doar cele unice, și, de asemenea, să afișăm numele cumpărătorului și...
Ce tipuri de chei/strategii de distribuție există în Greenplum?
Analiza vânzărilor pe categorii de produse într-un magazin de retail Lucrați ca analist într-un magazin de retail. Sarcina dvs. este să creați un raport de vânzări pe categorii cu următoarele calcule: • numărul total de unități vândute în categorie (total_units_sold); • venitul total pe categorie, luând în considerare reducerile, unde reducerea se calculează ca unit_price × units_sold × (1 − discount/100). Dacă reducerea lipsește (NULL), se consideră 0%. Rotunjiți la două zecimale; • media unităților vândute pe vânzare (avg_units_per_sale), rotunjită la două zecimale; • proporția vânzărilor fără reducere (no_discount_share) — numărul de vânzări cu NULL sau 0% reducere, împărțit la numărul total de vânzări din categorie, rotunjit la trei zecimale. Ordonați rezultatele mai întâi după venitul total (total_revenue) descrescător, apoi după media unităților pe vânzare (avg_units_per_sale) crescător, și în final după numele categoriei în ordine alfabetică. Formatul de intrare Tabelul sales: • sale_id (int) — identificator unic de vânzare • product_id (int) — identificatorul produsului • category (text) — categoria produsului • sale_date (timestamp) — data și ora vânzării • units_sold (int) — unitățile vândute • unit_price (numeric) — prețul pe unitate • discount (numeric) — reducerea în procente, poate fi NULL Coloana discount poate conține valori nule. Formatul de ieșire Interogarea trebuie să returneze un tabel cu câmpurile în această ordine: • category (text) — categoria produsului • total_units_sold (int) — numărul total de unități vândute în această categorie • total_revenue (numeric) — venitul total pe categorie, rotunjit la două zecimale • avg_units_per_sale (numeric) — media unităților pe vânzare, rotunjită la două zecimale • no_discount_share (numeric) — proporția vânzărilor fără reducere (valoare între 0 și 1), rotunjită la trei zecimale Rezultatul trebuie sortat mai întâi după total_revenue descrescător, apoi după avg_units_per_sale crescător, și în final după numele categoriei în ordine alfabetică.
Povestește despre experiența ta în X5: cu ce te-ai ocupat în domeniul DWH?
Stocarea a fost construită conform schemei Data Vault — ai dezvoltat-o și tu, ai întreținut-o? Ai adăugat manual hub-uri, link-uri?
Ai lucrat vreodată cu optimizatorul AQE (Executarea Interogării Adaptative) în Spark? Știi cum funcționează?
Cum înțelegi conceptul de chei în tabele — pentru ce este nevoie?
Vorbiți despre conceptele de bază ale Kafka (grupul de consumatori, partiții, subiecte).
Ce format de lucru vă convine: de la distanță, hibrid sau la birou?
Se poate vedea schema tabelului înainte de a executa interogarea în Hive?
Cum vedeți dezvoltarea dvs. în echipa nouă și cu ce sarcini doriți să vă ocupați cel mai mult?
Pentru ce sunt folosiți decoratorii în Apache Airflow?
Care sunt planurile tale pentru următorii 5 ani? În ce domenii ai dori să te dezvolți?
Ai fost vreodată nevoit să faci rapoarte, panouri, vizualizări (BI)?
Cum să procedezi în cazul unui skew (părtinire) pe user_id la JOIN între tabelele de tranzacții și utilizatori? Cum alegi cheia de distribuție optimă?
Vorbește mai detaliat despre rețea: ce este și de ce este importantă?
Cum ați încărcat datele din S3 în Greenplum?
De ce ai decis să intri pe piață și să părăsești locul de muncă actual?
Ați folosit Bridge și tabele PIT în Data Vault? Oferiți un exemplu și explicați scopul.