Data Engineer
Gdzie można zobaczyć logi zadań w Airflow?
Dane są dwie tabele t1 i t2. Zadaniem jest wypisanie wszystkich rodzajów joinów, które znasz, oraz wynik zapytania select * from t1 <join> t2 on t1.t = t2.t dla każdego z nich. |t1.t| ------ 1 2 4 null ------ |t2.t| ------ 1 3 null null
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Uzyskać 10 najlepszych kierowców według liczby zamówień w każdym mieście
Jaka jest różnica między RANK() a DENSE_RANK()?
SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.date_start > t2.date_start
Opowiedz o swoim doświadczeniu zawodowym: zadania, stos technologiczny
Gdzie lepiej działa kompresja danych — w przechowywaniu kolumnowym czy wierszowym i dlaczego?
Jak Pandas obsługuje brakujące dane?
Analiza frekwencji w klubach fitness Pracujesz jako analityk w sieci klubów fitness. Masz informacje o wizytach użytkowników i zakupionych przez nich abonamentach. Należy przeanalizować skuteczność korzystania z abonamentów. Oblicz dla każdego typu abonamentu: • łączną liczbę użytkowników, którzy korzystali z tego typu abonamentu. Uwzględniaj tylko unikalne user_id; • łączną liczbę wizyt tych użytkowników. Uwzględniaj wszystkie wizyty użytkowników z tym abonamentem; • udział użytkowników tego abonamentu w procentach od ogólnej liczby użytkowników (zaokrąglony do jednego miejsca po przecinku). Do obliczenia udziału użyj stosunku liczby użytkowników z tym abonamentem do ogólnej liczby unikalnych użytkowników. Każdy użytkownik może mieć tylko jeden abonament. Posortuj wynik według typu abonamentu w porządku alfabetycznym. Format wejścia Tabela memberships: • membership_id (int) — unikalny identyfikator abonamentu • user_id (int) — unikalny identyfikator użytkownika • membership_type (text) — typ abonamentu Tabela visits: • visit_id (int) — unikalny identyfikator wizyty • user_id (int) — identyfikator użytkownika • visit_date (timestamp) — data i czas wizyty Dane nie zawierają braków ani nieprawidłowych wartości. Format wyjścia Zapytanie powinno zwrócić tabelę z polami w takiej kolejności: • membership_type (text) — typ abonamentu • users_count (int) — liczba unikalnych użytkowników z tym typem abonamentu • total_visits (int) — łączna liczba wizyt użytkowników z tym abonamentem • user_share (numeric) — udział użytkowników w procentach z tym abonamentem od ogólnej liczby (zaokrąglony do 1 miejsca po przecinku) Wynik sortuje się według typu abonamentu w porządku alfabetycznym.
WYBIERZ * Z tabeli1 JAKO t1 LEWY JOIN tabela2 JAKO t2 ON t1.date_start > t2.date_start d = { True: 42, 1: 2, 1.0: 100500 } print(d)
Jak może dojść do wstrzyknięcia SQL przez pole wprowadzania daty?
Gdzie pojawia się równoległość w Airflow?
Opowiedz o swoim doświadczeniu z Greenplum, DBT i Data Vault. Dlaczego przeszedłeś z modelu śnieżynki na Data Vault?
Czym są indeksy w bazach danych, do czego służą i jaka jest ich wewnętrzna struktura?
Jak działa ClickHouse i czym różni się od PostgreSQL?
Jak działa optymalizator zapytań w Oracle, na co zwraca uwagę i do jakiej klasy należy?
Jaki jest cel dzielenia danych na bloki w HDFS?
Czym różni się pętla po ciągu od pętli po krotce w Pythonie? Jakie typy są podstawowe i jak to wpływa na wydajność?
Wątki, multiprocessing, asyncio: jaka jest różnica i kiedy lepiej co używać?
Opowiedz, co wiesz o przechowywaniu danych w kolumnach i wierszach. Kiedy i które należy wybrać i dlaczego?