Sobes.tech

Data Engineer

В проекте с микросервисной архитектурой обнаружена критическая уязвимость безопасности, внесенная коммитом 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
11

Какая твоя роль была в команде из 4 человек, и как ты видишь свою карьеру через 3-4 года, какие цели ставишь?

Middle
МВидеоМВидео
11

Что такое нормализация? На какой форме в основном работаем?

Middle
СБЕРСБЕР
11

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

Middle
FOM GROUP
11

Существуют две транзакции. Сначала первая транзакция выполняет команду. Затем вторая транзакция выполняет команду. Далее первая транзакция продолжает выполняться. Какая последовательность приведет к взаимоблокировке? ```sql -- первая транзакция update accounts set balance = balance + 100 where id = ?; -- вторая транзакция update accounts set balance = balance - 50 where id = ?; update accounts set balance = balance + 200 where id = ?; ``` [phone]

Junior
01.tech
11

Форматы дистрибьюции в Greenplum — какие бывают кроме BY column и RANDOMLY?

Middle
СБЕРСБЕР
11

В чём смысл нарезания данных на блоки в HDFS?

Middle
AstonAston
11

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

Middle
FOM GROUP
11

Какие типы индексов есть в PostgreSQL?

Middle
FOM GROUP
11

Как данные попадают в хранилище на текущем месте работы?

Middle
КИПР NDA(IGaming)
11

Сравни подходы Data Vault в МЧС и X5. Какие профиты дали новые объекты (bridge, pit-таблицы)?

Middle
КИПР NDA(IGaming)
11

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

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

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

Middle
Леман про
11

В чём разница между рефакторингом и оптимизацией?

Middle
Леман про
11

Оцените итоговое решение по времени и памяти.

Junior
Яндекс
11

Сравните два решения задачи поиска единиц по потреблению памяти: 1) цикл с переменными, 2) split('0') + list comprehension + max()

Middle
КуперКупер
11

Расскажи про Greenplum — форматы хранения данных, строчное и колоночное хранение.

Middle
Леман про
11

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

UNION и UNION ALL — в чём разница? Какие условия должны быть соблюдены?

Middle
СБЕРСБЕР
10

В чём разница между WHERE и HAVING?

Middle
FOM GROUP
10
/17