Data Engineer
Opowiedz o najlepszych praktykach stosowania indeksów – kiedy i jak często ich używać.
Jak zwykle pracujesz z Git w zespole? I czym jest Merge Request?
Raport dla firmy logistycznej Jesteś analitykiem w firmie logistycznej, która prowadzi rejestr operacji w magazynach. Musisz przygotować raport dotyczący efektywności każdego magazynu. Dla każdego magazynu oblicz: • łączną liczbę operacji (count_operations); • łączną liczbę przetworzonych towarów w magazynie (sum_quantity); • średni czas przetwarzania operacji (avg_processing_time), uwzględniając tylko operacje z określonym czasem (nie NULL), zaokrąglony do najbliższej liczby całkowitej; • maksymalną i minimalną liczbę towarów przetworzonych w jednej operacji (max_quantity, min_quantity); • liczbę operacji każdego typu («dostawa», «wysyłka», «transfer») w osobnych kolumnach: supply_operations, shipment_operations, transfer_operations. Filtruj magazyny, dla których łączna liczba operacji jest większa niż 2, a średni czas przetwarzania nie przekracza 60 minut. Posortuj wynik według ID magazynu rosnąco. Format wejścia Tabela operations: • operation_id (int) — unikalny identyfikator operacji • warehouse_id (int) — ID magazynu • operation_type (text) — typ operacji: «dostawa», «wysyłka», «transfer» • quantity (int) — liczba jednostek towaru w operacji • operation_date (timestamp) — data i czas operacji • processing_time (int) — czas przetwarzania operacji Kolumna processing_time może zawierać wartości NULL. Format wyjścia Zapytanie powinno zwrócić tabelę z polami w takiej kolejności: • warehouse_id (int) — unikalny identyfikator magazynu • count_operations (int) — łączna liczba operacji wykonanych w magazynie • sum_quantity (int) — łączna liczba przetworzonych towarów w magazynie • avg_processing_time (numeric) — średni czas przetwarzania operacji (w minutach), uwzględniając tylko operacje z nie NULL czasem, zaokrąglony do najbliższej liczby całkowitej • max_quantity (int) — maksymalna liczba towarów przetworzonych w jednej operacji • min_quantity (int) — minimalna liczba towarów przetworzonych w jednej operacji • supply_operations (int) — liczba operacji typu «dostawa» • shipment_operations (int) — liczba operacji typu «wysyłka» • transfer_operations (int) — liczba operacji typu «transfer»
Kiedy możesz udzielić informacji zwrotnej i czy masz oferty w ręku?
Utworzono specjalną sekwencję o nazwie even_sequence, generującą wyłącznie liczby parzyste. Co należy wpisać w miejsce [...], aby w przypadku braku podania wartości even_column podczas wstawiania, wartość ta była pobierana z even_sequence? create table some_table( even_column [...] ); integer computed as nextval('even_sequence') integer generated always as identity (start with 2 increment by 2) integer default nextval('even_sequence') integer unique default nextval('even_sequence') integer generated by even_sequence’
Jak zoptymalizowano tabele i zapytania: partycje, indeksy, logika wyboru?
Po jakich polach dystrybuowałeś dane w Greenplum?
Jakie kontrole jakości danych przeprowadzono w Data Vault?
Czy używałeś Bridge i tabel PIT w Data Vault? Podaj przykład i wyjaśnij ich cel.
Czy masz doświadczenie z Table Engine Join w ClickHouse?
Jak zwykle organizujesz swoją pracę nad zadaniami i jak śledzisz postępy?
W jakiej kolejności wykonywane są główne operacje w SQL: SELECT, FROM itp.?
Jak przekazywać dane między zadaniami w Airflow?
Czy w Greenplum są funkcje i możliwości, których nie ma zwykły MySQL i inne dialekty?
Podaj przykład, kiedy udało się poprawić procesy lub narzędzia dla zespołu.
Utworzono strukturę tabel wskazaną na obrazku. Należy wykonać zapytanie wskazane na obrazku. Jaki rodzaj join należy użyć zamiast [...], aby w wyniku dla rekordów z type = 'table_aw' została wypełniona kolumna 'naming', a dla rekordów z type = 'table2' — kolumna 'serial_number'? create table multirelation( type varchar not null, entity_id integer not null ); create table table_aw( id integer primary key, naming varchar not null ); create table table2( id integer primary key, serial_number varchar not null ); -- struktura tabel select m.type,m.entity_id, ta.naming, t2.serial_number from multirelation m [...] join table_aw ta on m.entity_id = ta.id and m.type='table_aw' [...] join table2 t2 on m.entity_id = t2.id and m.type='table2'; -- zapytanie Pozostawić puste inner cross right left
Kim byli odbiorcy danych i jak budowano witryny?
Co się stało i jak odzyskać pracę?
Nasz temat jest mocno strukturalny, drzewiasty, dane są surowe — jak je przetwarzać?
Czym różni się Greenplum od PostgreSQL?