Data Engineer
Имаме нужда от pipeline engine — механизъм, който ще позволи много бързо създаване на потоци чрез подаване на договори и параметри. Как бихте реализирали това на по-високо ниво?
Какви плюсове и минуси на ACID могат да бъдат посочени, освен скоростта на четене?
Greenplum ли е OLTP или аналитично хранилище?
Как работихте с CI/CD?
Разкажете за вашия опит в работата
Имаше ли лидер или някой друг ръководеше екипа от 4 човека?
Какво е GIL (Global Interpreter Lock) и как работи в Python?
Защо следният заявка няма да използва индекса, ако в таблицата records (id) е създаден обикновен B-Tree индекс по id? select * from records where id % 2 = 0 - За id е необходим индекс тип GIN - Индексите не работят с изрази в WHERE - % е операция за сравнение, а не филтриране - limit и offset са задължителни за оптимизация с индекс - Заявката се обръща към числово поле, а не към текстово
Кои оператори на Airflow използвахте? Как взаимодействахте с dbt чрез Airflow?
Що се отнася до заявката, можем да видим какво се случва с данните, включително какви типове join-ове — какви типове join-ове можем да видим там?
-- Оригиналната таблица stretch -- Необходимо е да попълним NULL стойностите с предишната (не NULL) стойност по id - изпълнение на запълване надолу id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | NULL 1 | 16:12 | NULL 2 | 09:42 | 133 2 | 15:20 | NULL 2 | 21:33 | NULL 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | NULL 3 | 16:17 | NULL 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | NULL 4 | 16:31 | 7 4 | 17:44 | NULL id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | 10 1 | 16:12 | 10 2 | 09:42 | 133 2 | 15:20 | 133 2 | 21:33 | 133 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | 8 3 | 16:17 | 8 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | 312 4 | 16:31 | 7 4 | 17:44 | 7 -- SQL заявка за получаване на желания таблица SELECT id, ttime, COALESCE(val, LAST_VALUE(val) OVER(PARTITION BY id ORDER BY ttime)) as val FROM stretch
Разкажи ми за използването на Airflow: кои нестандартни елементи си използвал
Кое от следните твърдения отразява последиците от такива действия от гледна точка на разширения Git Flow и управлението на историята на промените?
Колко ви е интересна тази роля, като се има предвид тясната работа с аналитиците, прегледа на техния код и консултирането?
Анализ на активността на потребителите в рекламните кампании Фирмата води отчет за събития, свързани с рекламните кампании. Предоставени са два таблици: • campaigns — списък на рекламните кампании с техните идентификатори и имена; • events — събития на потребители по кампании с информация за типа на събитието (например 'click' (клик)) и времето. Необходимо е да се създаде отчет за всяка кампания с следните показатели: • Общо количество събития. • Брой уникални потребители, извършили събития. • Време на първото и последното събитие по кампания. • Ранг на кампанията по намаляващ брой на общите събития. Рангът е число, което се присвоява на всеки ред в резултатния набор въз основа на реда на данните. Ако две или повече реда имат еднаква стойност, те получават същия ранг, но следващият ранг се пропуска. Отчетът трябва да включва само кампании, които са имали събития: кампании без събития не се вземат предвид. Финалният отчет трябва да бъде сортиран първо по ранг на кампанията във възходящ ред, а след това по campaign_name в азбучен ред. Формат на входа • campaign_name (string) — името на рекламната кампания • start_date (timestamp) — дата и час на започване на кампанията • end_date (timestamp) — дата и час на приключване на кампанията Таблица events: • event_id (int) — уникален идентификатор на събитието • user_id (int) — уникален идентификатор на потребителя, който е извършил събитието • campaign_id (int) — уникален идентификатор на кампанията • event_type (string) — тип на събитието, например 'click' или 'conversion' • event_time (timestamp) — дата и час на събитието Данните не съдържат липсващи или неправилни стойности. Формат на изхода Заявката трябва да върне таблица с полета в този ред: • campaign_name (string) — името на рекламната кампания • total_events (int) — общият брой събития, свързани с кампанията • unique_users (int) — броят на уникалните потребители, които са извършили събития • first_event_time (timestamp) — дата и час на първото събитие на кампанията • last_event_time (timestamp) — дата и час на последното събитие на кампанията • campaign_rank (int) — ранг на кампанията по намаляващ брой събития Подредете данните по ранг на кампанията във възходящ ред, а след това по campaign_name в азбучен ред.
Как да намеря подниз в конкретна колона на лог файл в Linux (например, датата в третата колона)?
Какви проверки за качество на данните бяха извършени в Data Vault?
Какво е динамично типизиране?
Какви типове JOIN знаете? (логически)
Какви стратегии за инкрементално зареждане в dbt си използвал?