Sobes.tech

Data Engineer

Дана строка из нулей и единиц. Необходимо написать функцию func(), которая вернет максимальное число подряд идущих единиц. Например: func("010111011") -> 3

Middle
КуперКупер
29

Расскажи о себе — опыт работы, стек технологий

Middle
СБЕРСБЕР
29

Вы работали в ветке hotfix/missing-footer, в которой внесли важные изменения. После этого вы выполнили: git checkout develop git branch -d hotfix/missing-footer Через некоторое время вы понимаете, что забыли выполнить merge этой ветки. Вы пробуете восстановить ее: git checkout hotfix/missing-footer Но получаете сообщение об ошибке: ветка не найдена. Как восстановить работу из удаленной ветки?

Junior
01.tech
29

-- Исходная таблица stretch -- Необходимо в разрезе id заполнить NULL'ы предыдущим значением (не NULL) - выполнить протяжку вниз 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 -- Слева исходная таблица, а справа, то что нужно получить SELECT id, ttime, COALESCE(val, LAST_VALUE(val) OVER(PARTITION BY id ORDER BY ttime)) as val FROM stretch

Junior
Яндекс
29

Почему выбрали именно DBT? Какие плюсы и минусы видишь у этого фреймворка?

Middle+
СБЕРСБЕР
29

Какими видами дистрибуции пользовался? Как выбирал ключ дистрибуции?

Middle
КИПР NDA(IGaming)
28

В проекте с микросервисной архитектурой обнаружена критическая уязвимость безопасности, внесенная коммитом abc123 два месяца назад. Этот коммит затрагивает общую библиотеку аутентификации, используемую во всех сервисах. Ситуация осложняется следующими факторами: 1. После проблемного коммита было сделано более 200 коммитов в основной ветке. 2. От основной ветки было создано пять релизных веток, в которых также есть этот коммит. 3. Несколько команд разработчиков создали feature-ветки от разных точек истории. 4. Некоторые последующие коммиты в основной ветке частично исправляют проблему, но не полностью. 5. Все затронутые ветки уже развернуты в различных средах (тестовой, препродакшен, продакшен). Какая стратегия будет эффективной для устранения уязвимости во всех ветках с минимальным риском нарушения работы проекта? - Создать серию revert-коммитов для проблемного коммита и всех коммитов, которые частично его исправляли, затем создать новый коммит с полным исправлением - Создать hotfix-ветку от точки до проблемного коммита, внести исправления и выполнить слияние этой ветки со всеми затронутыми ветками - Создать единый исправляющий коммит с помощью git revert abc123 в основной ветке и затем выполнить cherry-pick этого коммита во все релизные ветки - Использовать git bisect для точного определения проблемного кода, создать патч и применить его ко всем веткам с помощью git am - Использовать git rebase -i для редактирования проблемного коммита в каждой ветке, с последующим принудительным обновлением (force-push)

Junior
01.tech
28

Что такое ACID? Что значит каждая буква? Как это относится к транзакциям?

Middle
Леман про
28

Расскажи про архитектуру хранилища: как делилось на слои, какие особенности каждого слоя?

Middle
КИПР NDA(IGaming)
28

В Greenplum ACID соблюдается?

Middle
МВидеоМВидео
28

Что такое идемпотентность DAG/таска в Airflow?

Middle
FOM GROUP
28

Какими стратегиями инкрементальной загрузки в dbt пользовался?

Middle
КИПР NDA(IGaming)
28

Как устроено сжатие в ClickHouse?

Middle
FOM GROUP
28

Анализ активности пользователей в рекламных кампаниях Компания ведет учет событий, связанных с рекламными кампаниями. На вход подаются две таблицы: • 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 в алфавитном порядке.

Junior
01.tech
28

На CTE много идет памяти — когда у нас идет большое потребление памяти, что происходит с данными?

Middle
МВидеоМВидео
28

Какими операторами Airflow пользовался? Как взаимодействовал с dbt через Airflow?

Middle
КИПР NDA(IGaming)
28

Какие минусы у MPP архитектуры в Greenplum?

Middle
Леман про
28

Как посмотреть план выполнения запроса в Oracle? Чем EXPLAIN PLAN отличается от EXPLAIN ANALYZE?

Middle
AstonAston
28

Разложи JSON в третью нормальную форму: как бы ты хранил список CashBreakdown и как генерировал бы суррогатные ключи

Junior
МодульБанк
28

В чём преимущества и недостатки строчных и колоночных баз данных? Что эффективнее для группировки и агрегации?

Middle+
СБЕРСБЕР
28
/24