Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month, 2 weeks ago
Завтра, в субботу 7 сентября, в 12:00 мск будет стрим-интервью с @digitalberd
Расскажу о своём пути, почему и как пришёл в менторство и в инженерию данных, затронем ещё пару тем.
https://www.youtube.com/live/Zh5WGo18-L8?si=OicFyIX2nr6VFHmE
Стрим начинается!
Подвёз контент под вечер. Пятый выпуск серии мок-собесов на youtube
-> Ссылка на видео (youtube)
-> Ссылка на видео (vk video)
YouTube
Мок-собеседование на junior+ Data Engineer S1E5 | rzv_de | Aug 2024
Погружаемся в роли интервьюера и кандидата на час, плотная получасовая обратная связь уже выложена на бусти. https://boosty.to/rzv\_de Я не представляю компанию из интервью, вакансия выбрана кандидатом для тренировки. Послушал про опыт кандидата, копнули…
С какими проблемами может столкнуться дата инженер, выполняя изменение схемы данных на проде (schema evolution)?
Как эти проблемы можно решить на проекте?
Ограничимся RDBMS MPP классом систем
Настройка CDC на примере Kafka Connect, Debezium и Postgres 1/2
? Итак, что такое CDC и зачем это надо.
Change data capture это технология захвата изменений данных с источника, для реляционных СУБД — обычно через лог базы данных. В таком случае таблица не блокируется, нагружается именно компонент, отвечающий за репликацию. В отличие от батч загрузок, которые запускаются по расписанию и теряют промежуточные изменения, CDC подтягивает все операции. Это и благо, если такая детализация нужна, и головная боль, если надо схлопывать эти изменения и сохранять только состояние, например, на закрытие операционного дня.
? CDC создаёт поток изменений, который можно использовать для стриминговой загрузки. Но как связаны между собой Kafka Connect, Debezium и Kafka? Для ознакомления допустим, что Debezium CDC коннекторы используются как компоненты Kafka Connect для подключения к источникам. Для приёмников используются внутренние компоненты Kafka Connect (Sink). Данные между Debezium CDC и Kafka Connect Sink лежат в топиках кафки.
? Как это может выглядеть на практике?
Считаем, что сервисы уже развёрнуты и доступны по сети, и у тебя есть ко всему доступ и данные для входа (credentials). Плагины на Kafka Connect установлены для всех источников и приёмников, которые нам понадобятся.
Создай слот репликации в базе, такой же как для обычных реплик.
Подготовь конфигурацию для Кафка коннекта — о ней будет ниже.
Отправь POST запрос на API endpoint сервиса Kafka Connect для публикации коннектора, где указываются конфиг и имя.
Проверь статус самого коннектора через GET запрос или UI, он должен быть "up and running".
Зайди через UI или CLI в список топиков, найди по topic.prefix
и имени таблицы нужный, проверь что сообщения появились и в них содержатся данные из таблички.
Теперь данные попадают в кафку и накапливаются в ней. Осталось аналогично настроить Sink для выгрузки данных в нужное место из топика, передав там маппинг топик-таблица.
Разыгрываю мок-собес! Разыгрываю одну запись тренировочного технического интервью (с выкладыванием на youtube), победителю нужно будет запланировать 1.5 часовой звонок в течение двух недель после окончания розыгрыша. Начинаем сейчас, заканчиваем 2024-08-20…
Разыгрываю мок-собес!
Разыгрываю одну запись тренировочного технического интервью (с выкладыванием на youtube), победителю нужно будет запланировать 1.5 часовой звонок в течение двух недель после окончания розыгрыша.
Начинаем сейчас, заканчиваем 2024-08-20 в 23:00 мск.
Примеры можно посмотреть здесь
Можно остаться анонимным(-ой), попросить изменить высоту голоса, внести помехи, закрыть имя и пр.
Как DE может решать задачи CI/CD 3/3
? Первое время немного неуклюже выглядит интеграция python и bash. Для этого нужно пробрасывать параметры из workflow в python скрипт и передавать результат работы обратно, но GPT помогают с нюансами Bash, и со временем картинка выстраивается. Кстати, я недавно перешёл на Claude Sonet, пока нравится больше, чем Gemini. Приятно, этот инструмент становится привычным, и на дейликах разработчики больше не стесняются говорить о парной работе с таким помощником.
? Немного про разделение ответственности. В компаниях, где я работал, обычно было так: девопсы поднимают сервисы в ВМ или в контейнерах, а как с ними будут работать DE -- дело последних. Например, пайплайн по перезапуску упавшего Airflow скорее напишет DevOps. Пайплайн по доставке дагов из гита и тесты для проверок кода скорее будут писать DE.
❕ Пиши в комментах, с какими нюансами CI/CD столкнули рабочие задачи тебя. Или пока ещё дикий запад и всё накатывается руками?
Если сможешь нагуглить такое решение или построить правильный промпт в GPT, тоже делись под спойлером. Я не смог найти, пришлось думать своей головой.
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month, 2 weeks ago