Data Engineer
W jakim kierunku byłoby interesujące się rozwijać: witryny, rozwój, analiza, może AI?
-- t1 -- num --------- -- 1 -- 2 2 null null 4 -- t2 -- num --------- -- [telefon] null null 5 WYBIERZ a.num JAKO a_num, b.num JAKO b_num Z t1 a LEWE POŁĄCZENIE t2 b ON a.num = b.num;
Jakie nieoczywiste problemy mogą wystąpić podczas ładowania dużych tabel (oprócz wydajności)?
W jakim środowisku uruchomiono Spark?
Czy masz doświadczenie w pracy z silnikami takimi jak Trino lub z formatami tabelarycznymi (Iceberg, Parquet) w Spark?
Opowiedz o zadaniu związanym z konfiguracją replikacji, które rozwiązałeś.
CREATE TABLE datamarts.daily_revenue_per_country ON CLUSTER cluster_4x2 ( event_date Date, country String, total_revenue Float64 ) ENGINE = MergeTree() PARTITION BY toYYYYMM(event_date) ORDER BY (event_date);
Opowiedz mi o procesach CI/CD, zmianach w bazie danych, wersjonowaniu i migracjach schematu (ewolucja schematu).
Co cię przyciąga do branży travel? Może sam lubisz podróżować, albo travel-tech jakoś cię zainteresował?
Opowiedz o swoim doświadczeniu z rozproszonymi bazami danych (Greenplum, ClickHouse)?
Zaproponuj rozwiązanie regularnego inkrementalnego ładowania dużej tabeli z elastyczną (zmienną) częstotliwością aktualizacji z Postgres do Data Lake.
A jeśli potrzebujemy wszystkich klientów, nawet jeśli nie mieli transakcji w tym dniu, jak to wyświetlić?
Co jest wyzwalaczem tworzenia nowego Joba w Spark i jak Job dzieli się na Stages i Tasks?
Czym jest LEFT SEMI JOIN i LEFT ANTI JOIN w Spark SQL, czy miałeś kiedyś okazję ich używać?
Czy masz doświadczenie w pełnym cyklu: od nieustrukturyzowanego zapytania użytkownika do gotowego panelu wizualizacji? Czy lubisz taką pracę?
Wyświetl liczbę zamówień i "produktów z potrzebnej kategorii w zamówieniu" za rok 2021 w kategoriach "Odzież" oraz za rok 2022 w kategorii "Obuwie" (ostateczny widok: 2 wiersze. Pola: rok, liczba produktów, liczba zamówień) with cte as( select year(o.order_date) as year_orders, g.cat_1, count(distinct o.order_id) as count_orders, sum(g.quantity) as count_quan from Orders o join Goods g on o.order_id = g.order_id where (g.cat_1 = 'Odzież' and Year(o.order_date) = 2021) or (g.cat_1 = 'Obuwie' and Year(o.order_date) = 2022) group by year_orders, g.cat_1 ) select year_orders, count_quan, count_orders from cte na rok 2025, top 3 w każdej kategorii według ilości sprzedaży model with cte as( select cat_1, price, quantity, model, rank() over(partition by cat_1) as rk from Orders o join Goods g on o.order_id = g.order_id where Year(o.order_date) = 2025 ) na rok 2025, top 3 w każdej kategorii według sumy sprzedaży model with cte as( select g.cat_1, g.model, (price * quantity), rank() over(partition by g.cat_1) as rk from Orders o join Goods g on o.order_id = g.order_id where Year(o.order_date) = 2025 ) with cte as( select g.cat_1, g.model, sum(price * quantity) as sum_, rank() over(partition by g.cat_1 order by sum() desc) as rk from Orders o join Goods g on o.order_id = g.order_id where Year(o.order_date) = 2025 ) with cte1 as( select g.cat_1, g.model, sum(price * quantity) as sum_total, from Orders o join Goods g on o.order_id = g.order_id where Year(o.order_date) = 2025 ), cte2 as(select g.cat_1, g.model, sum_total, rank() over(partition by g.cat_1 order sum_total desc) as rk from cte1 ) select g.cat_1, g.model, sum_total from cte2 where rk <=3 poznaj nazwę kategorii, model i łączną sprzedaż (top 3) with cte1 as( select g.cat_1 as cat_name, g.model as model, sum(price * quantity) as sum_total, from Orders o join Goods g on o.order_id = g.order_id where Year(o.order_date) = 2025 group by Year(o.order_date), g.model ), cte2 as(select cat_name, model, sum_total, rank() over(partition by cat_name order sum_total desc) as rk from cte1 ) select cat_name, model, sum_total from cte2 where rk <=3
Jaki jest algorytm diagnostyczny i co robić, jeśli zapytanie nadal jest wolne po dodaniu kilku indeksów?
Jak zorganizować ładowanie danych do ClickHouse w dużej tabeli PostgreSQL, do której stale trafiają nowe rekordy z monotonnie rosnącym kluczem głównym?
Czym jest CDC i czy masz z tym doświadczenie?
Czym dokładnie udało się zoptymalizować zapytania na Data Vault, jeśli zwykle zwiększa on liczbę joinów?