Data Engineer
Ce este Hive și cum se diferențiază de bazele de date relaționale tradiționale?
SELECT * DIN tabelul1 CA t1 LEFT JOIN tabelul2 CA t2 ON t1.date_start > t2.date_start --DML CREAZĂ TABELUL DACĂ NU EXISTĂ Employee (id int, salary int, departmentId int); INSERĂ ÎN 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); cu cte ca( select *, rank() over(partition by departmentId order by salary desc) ca max_salary din Employee ) select * from cte unde max_salary = 1
Ce JOIN-uri fizice cunoști?
Cum se evită lansarea simultană a aproximativ 700 de execuții DAG în timpul catchup/backfill în Airflow?
Ce motoare de tabele în ClickHouse cunoști și ai folosit?
[nume] a întrebat: Care coloane trebuie să fie Nullable și cum se specifică acest lucru în DDL?
Vorbește-mi despre Greenplum — formate de stocare a datelor, stocare în linie și coloană.
Spune-mi, ce îți place să faci în timpul tău liber în afară de programare? Care sunt hobby-urile tale?
LEFT JOIN: tabel cu 10 înregistrări LEFT JOIN tabel cu 100 înregistrări. Care este numărul minim și maxim de rânduri pe care le poți obține?
Ce este statistica în contextul sistemelor de gestionare a bazelor de date și al optimizării interogărilor?
Pe ce câmpuri ai distribuit datele în Greenplum?
-- Găsiți toți pasagerii care au făcut călătorii de două sau mai multe zile consecutive
Când ai construit pipeline-uri pe Airflow, cum ai rezolvat problema datelor junk (date nevalide/nefolositoare)?
Cum funcționează JOIN în ClickHouse?
Care este diferența dintre RANK și DENSE_RANK?
Ce tipuri de distribuție ați folosit? Cum ați ales cheia de distribuție?
Cum influențează ORDER BY tabelul ClickHouse și ce chei este mai bine să alegi?
Raport pentru compania logistică Ești un analist al unei companii logistice care ține evidența operațiunilor din depozite. Trebuie să întocmești un raport despre eficiența fiecărui depozit. Pentru fiecare depozit, calculează: • numărul total de operațiuni (count_operations); • numărul total de produse procesate în depozit (sum_quantity); • timpul mediu de procesare a unei operațiuni (avg_processing_time), luând în considerare doar operațiunile cu timp specificat (nu NULL), rotunjit la cel mai apropiat număr întreg; • numărul maxim și minim de produse procesate într-o singură operațiune (max_quantity, min_quantity); • numărul de operațiuni de fiecare tip («livrare», «expediere», «transfer») în coloane separate: supply_operations, shipment_operations, transfer_operations. Filtrează depozitele a căror număr total de operațiuni este mai mare de 2 și timpul mediu de procesare nu depășește 60 de minute. Ordonează rezultatul după ID-ul depozitului în ordine crescătoare. Formatul de intrare Tabelul operations: • operation_id (int) — identificator unic al operației • warehouse_id (int) — ID-ul depozitului • operation_type (text) — tipul operației: «livrare», «expediere», «transfer» • quantity (int) — numărul de unități ale produsului în operație • operation_date (timestamp) — data și ora operației • processing_time (int) — timpul de procesare al operației Coloana processing_time poate conține valori nule. Formatul de ieșire Interogarea trebuie să returneze un tabel cu câmpurile în următoarea ordine: • warehouse_id (int) — ID-ul unic al depozitului • count_operations (int) — numărul total de operațiuni efectuate în depozit • sum_quantity (int) — numărul total de produse procesate în depozit • avg_processing_time (numeric) — timpul mediu de procesare a operației (în minute), luând în considerare doar operațiunile cu timp nenul, rotunjit la cel mai apropiat număr întreg • max_quantity (int) — numărul maxim de produse procesate într-o singură operațiune • min_quantity (int) — numărul minim de produse procesate într-o singură operațiune • supply_operations (int) — numărul de operațiuni de tip «livrare» • shipment_operations (int) — numărul de operațiuni de tip «expediere» • transfer_operations (int) — numărul de operațiuni de tip «transfer»
[nume] a vorbit despre experiența sa cu diferite sisteme de gestionare a bazelor de date, cât de profund a trebuit să se implice în optimizare și detalii interne.
Dacă unești tranzacțiile cu clienții după client_id și date_start (fără BETWEEN), ce va fi capturat în rezultat?