it пингвин | data engineer – Telegram
it пингвин | data engineer
1.71K subscribers
48 photos
5 videos
1 file
60 links
Канал главного разработчика Data Lake крупного банка.
База знаний для джунов, разбор собесов, задачи (jun/mid/sen) с решениями, полезные материалы, обзоры технологий и архитектур.

По вопросам и менторству писать @it_pengwin
Download Telegram
Кто не знает на jetbrains теперь можно бесплатно качать (c vpn) PyCharm и DataGrip для для некоммерческого использования🫡 Начал с датагрип работать - пока что оч нравится визуально

Пользуетесь ли этими IDE-шками? Какие ваши любимые?⬇️🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍221😭1💅1
Год с duolingo 🤠

Как вам приложуха? Делитесь своими рекордами ⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥169💅3😱2👍1😭111
ГПТха сгенерила хэллоунские постеры💀
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎃1613😁83🔥1🤔1😭1
Обзор на курс DE

Итак, прошла половина курса DE от New Professions Lab

Какие лабы еще были сделаны:
Лаба 2 — batch обработка данных e-commerce портала с кликом, аирфлоу и кафкой
Лаба 3 — realtime обработка данных e-commerce портала с кафкой и спарком
Лаба 4 — дата-сервис с фласком, кликом, кафкой (суперачивка - построить дашборд).

Какие еще были лекции:
• Clickhouse
• Hadoop
• Форматы хранения данных
• Введение в Apache Spark
• Apache Spark: оптимизация работы с данными
• Apache Spark Streaming
• Docker. Ansible. Kubernetes
• несколько консультаций

Лекции нравятся. По клику прям очень зашла. Я не знал, что Clickhouse настолько крутая СУБД и так активно везде внедряется. В том же OpenAI анализиуют петабайты данных по логам ежедневно на клике. Капитализация клика оценивается в $6 млрд.

Плотность лекций и лаб достаточно большая, я еще не посмотрел 3 лекции. В целом, лабы выполняю нормально, все что обязательно сделать - сделал, осталось пару суперачивок (необзятальные лабы). Примерно у 70% обучающихся проблем нет, лабы выполняются. Но многим оч тяжело.
Также я активно пользуюсь нейронками, чтобы быстрее выполнить лабы. Но преподы рекомендуют все делать самому без нейронок.

И еще раз хочу подчеркнуть - очень нравится, что есть удаленные машины, на которых выполняем все лабы. Скилл работы с терминалом и настройки окружения прокачивается.

Мне конечно было бы комфортнее, чтоб такой курс длился не 2 месяца, а 3 - 4. Так сейчас у меня очень много дел - напомню, у меня последний месяц испыталки в новой компании (и здесь уже много задач), менторство, тг канал и вот еще такой активный курс. Ну ничего, справимся

Таком промежуточный итог, посмотрим что будет дальше.

it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥177👍422
Будни дата инженера

Много людей подписано на канал, кто даже не работает в it, кто только думает вкатываться. Много аналитиков, биайщиков, бэкендеров и инженеров из других it-направлений

Не все понимают чем занимается дата инженер. Сфера задач у DE обширная. В работе DE используется множество технологий: SQL, Python, Scala, PostgreSQL, Oracle, Greenplum, Airflow, Dagster, Hadoop, Spark, Trino, dbt, Informatica, NiFi, Kafka, Flink, Docker, Kubernetes, Linux и т. д. Кто-то много кодит и собирает реально сложные пайплайны, кто-то пишет несложные SQL-скрипты и автоматизирует готовый код от аналитиков. Кто-то плотно работает с инфраструктурой, настраивает кучу контейнеров в Docker и Kubernetes. Кто-то плотно работает с DWH, пишет большие процедуры, занимается сложным моделированием таблиц и оптимизацией.

На канале будет новая рубрика — «Будни дата-инженера».

В ней я буду конкретно рассказывать о своих текущих задачах: что нужно сделать, какими инструментами и как именно я это сделал. Сейчас я работаю на всех слоях хранилища данных и с большим количеством технологий - задачки разнообразные. Также буду писать о своём прошлом опыте: какие были задачки и какие инструменты использовал. Думаю, многим это будет интересно и полезно.

И напоминаю: предложка всегда открыта. Буду ждать истории от подписчиков DE. Рассказывайте о своих типичных и нетипичных задачах. Давайте развивать комьюнити.

На неделе расскажу о своей недавно выполненной задачке✍️ Если интересна новая рубрика, накидайте реакций. ⬇️

it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍71🔥31115💅2🥰1😭1
тяжелая неделька 😱
Please open Telegram to view this post
VIEW IN TELEGRAM
😁39😱117🤣6🥰3💅2😭1
Будни дата инженера

Итак, как я и обещал рассказываю про мою недавнюю задачу.

Если кратко она звучала так:
Забрать данные из Кафки ML и построить витрину в DWH.

Сначала расскажу о нашем DWH.
Я работаю дата инженером в одном большом ритейле. А точнее работаю в доставке и у нас свое отдельное хранилище данных.
DWH у нас построено на Greenplum-e. Модель данных в хранилище - Data Vault. Данные в Greenplum-e по таблицам грузятся при помощи DBT. Оркестратор для запуска dbt моделей и не только для dbt - всем известный Airflow. Источники данных для нашего DWH по сути - топики в кафке. Данные из бэка попадают в Кафку. И дальше начинается наша работа, работа дата инженеров. Мы вытягиваем данные из Кафки при помощи Nifi. И грузим json-ы из Nifi в сырой слой Greenplum-a. Есть еще несколько разных инструментов, но они для этого кейса не важны.

Теперь давайте подробнее расскажу в чем суть задачи.
Есть команда ML (Machine Learning).
Они разработали модель для планирования (или даже для рекомендации) смен для сборщиков в магазинах. Дальше будет рекомендательная модель и для курьеров.
И нам нужно забирать эти данные в наше хранилище. ML-щики будут эти данные отправлять для нас в определенный топик Кафки. В одном сообщении (одно сообщение - для одного магазина на каждый день) будет храниться много рекомендаций смен сотрудников. Атрибуты - дата генерации, на какую дату рекомендация, id сотрудника, id магазина, различные типы, номер смены, рекомендованное время работы, рекомендованное время для обеденного перерыва и тд
Также хорошие заказчики прислали нужный им вид таблицы - какие нужны поля, комментарии и что они там хотят видеть.

Выполняем задачу

Создаем задачу для команды Кафки, чтоб нам выдали креды для подключения к новой для нас Кафки ML.
Выдали креды. Создаем новый pipepline в Nifi. Подключаемся к нужным топикам ML. Настраиваем загрузку данных из Кафки в таблицу в Greenplum (в сыром слое). Таблицу только что сами в GP и создали. Данные буферизируются в Nifi и отправляются в GP каждые 10 минут или каждые 10000 сообщений. Также настроили обработку ошибок и кривых сообщений.

Данные появились в GP - таблица stg_... Поля - дата, ид документа, само сообщение (json).
Сначала тестово написали парсер для json. И также при парсенге нужно генерить суррогатный ключ для каждой рекомендации для одного сотрудника. Ключ генерим из нескольких полей. Добавляем различные технические поля - даты, источник данных.
ГПТ очень помогает в таких задачах.
Распарсили json, обогатили данными из нашего dds слоя (присоединились к таблицам в нашем дата волте) и видим уже прототип витрины.

Теперь все наши скрипты оборачиваем в dbt модельки, настраиваем правильный конфиг для GP. Запускаем модельки "dbt run", видим данные в витрине.
Тестим запуски, пересчеты, проверяем корректность данных. Показываем витрину аналитику. Если есть замечания - исправляем.
Далее пушим наши изменения через git в прод. Подхватываем все наши новые файлы в проекте, делаем файл миграции для dbt. Ревьюер проверяет всю нашу разработку. Пока что мы еще молодые и зеленые в новой компании и не можем сами в прод мерджить. Запускаем миграцию в Airflow. Миграция отработала успешно.

Витрина на проде. Данные появились. Задачка закрыта. Приступаем к следующей. Задач много, а сроки как обычно горят😁

Я хоть и постарался подробно описать все. Но конечно же много деталей опустил. На каждом этапе было много нюансов - подключение к Кафке ML, работа с тестовыми топиками, написание SQL скриптов, создание витрины в обход слоя ддс, разработка на малом количестве данных, запуск миграции в аирфлоу и тд.

И еще можно обратить внимание, что я глубоко не вникал для чего нам эти данные и как они генерятся. Примерно понятно что там, но их ценность и как с ними будут работать - мне неинтересно. Может даже интересно, но вникать глубоко времени нет.

В следующем посте хочу кратко написать про перечисленные инструменты (для новичков). Будут краткие гптшные определения, чисто для удобства.

Дайте обратную связь плз, как вам формат? Какие есть вопросы по задачке?

it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥76👍1365😱32😭1
Куда зовут моих менти🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
26😁13🔥6💅2🥰1😭11
Краткие определения инструментов из поста.

Apache Kafka

Распределённая платформа потоковой передачи событий и логов, построенная как устойчивый commit‑log с горизонтальным масштабированием через партиции. Сообщения пишутся продюсерами в топики и читаются консюмерами в составе групп, что даёт параллелизм и балансировку; порядок гарантирован внутри партиции. Чаще всего применяется для интеграции сервисов, стриминга событий, CDC и построения event‑driven архитектур; не заменяет аналитическое хранилище и не предназначена для произвольных SQL‑запросов.

Apache NiFi
Платформа для построения конвейеров данных с визуальной оркестрацией. Умеет забирать/передавать данные между системами, трансформировать, буферизовать и отслеживать происхождение данных. Полезна там, где важно быстро собрать интеграцию «из коробки» без большого количества кода.

Greenplum
MPP‑СУБД для аналитики на основе PostgreSQL с архитектурой «координатор + сегменты», выполняющей запросы параллельно по распределённым данным. Поддерживает распределение по ключу, партиционирование, внешние таблицы и высокопроизводительные загрузки, а также append‑optimized (включая колоночный) сторедж для сканов и агрегатов. Сильна в сложном SQL и широких джойнах на больших объёмах; чувствительна к перекосам данных и не предназначена для OLTP с низкими задержками. Типичные практики — грамотный выбор ключей распределения/партиций, регулярный анализ статистик и контроль skew.

Data Vault
Методология моделирования DWH, разделяющая бизнес‑ключи (Hubs), связи (Links) и атрибуты/историю (Satellites) с жёсткими правилами ключей, источников и временных меток. Позволяет быстро добавлять источники и детально хранить историю, а также ускоряет выполнение запросов. Даёт масштабируемость и аудит, но увеличивает количество таблиц и сложность запросов, поэтому почти всегда дополняется витринами под потребителей.

dbt (data build tool)
Фреймворк «T в ELT», превращающий SQL‑модели в управляемый DAG трансформаций с материализациями, зависимостями, тестами качества и документацией. Поддерживает макросы на Jinja, инкрементальные загрузки, snapshots для SCD2, пакеты и генерацию сайта документации с линейджем. Интегрируется с большинством SQL‑движков, хранит всё как код и легко встраивается в CI/CD. Не занимается оркестрацией и загрузкой из внешних источников, концентрируясь на воспроизводимых трансформациях внутри хранилища.

Apache Airflow
Оркестратор рабочих процессов, описываемых как DAG с зависимостями, ретраями, SLA и мониторингом выполнения. Предлагает богатую экосистему операторов/сенсоров, обмен артефактами через XCom, группировку задач, а также различные исполнители (Local, Celery, Kubernetes) для масштабирования. Предназначен для пакетных и гибридных пайплайнов, где шаги разнородны (SQL, Python, bash) и важен контроль порядка и расписания. Не решает задачи стриминга, но может триггерить стриминговые джобы и управлять их жизненным циклом.

DWH (хранилище данных)
Централизованная аналитическая платформа, отделённая от транзакционных систем и предназначенная для согласованных метрик, истории и доступов. Обычно строится слоями: сырое (RAW/STG), согласованное ядро (Core/DDS) и витрины (Marts) под домены и продукты.

DDS
Согласованный детализированный слой между сырыми данными и витринами, где выравниваются идентификаторы, типы и бизнес‑правила. Может быть реализован как 3NF, Data Vault, Anchor и тд. Хранит историю изменений и служит стабильным источником для downstream‑моделей. В DDS устраняются дубликаты, приводятся справочники и формируются «золотые» сущности, на основе которых строятся витрины и модели.

Витрина данных (Data Mart)
Предметно‑ориентированный слой, оптимизированный под конкретного потребителя или набор метрик, обычно на базе звезды/снежинки или широких таблиц. Содержит только необходимые поля и агрегаты, обеспечивая стабильные определения метрик и быстрые запросы, часто с инкрементальными обновлениями. Изолирует сложность ядра и ускоряет разработку отчётов и дашбордов, при этом наследует качество и историю из согласованного слоя.

it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2585👍53😭2🥰1💅1
Пятничная задачка

Давно не было задачек по SQL 🍴
Я люблю задачки с усложнениями и нашел у себя в заметках классный пример.

Итак:
Есть табличка (school) из двух столбцов - имя ученика (name) и оценка (mark) . В таблице имена могут повторяться как и оценки.

1)Задача: найдите имена и количество двоек у тех учеников, у которых больше 10 пятерок. Соответственно надо получить табличку с именем и количеством двоек.

2)Усложнение: решить задачу без подзапросов!

Необходимо написать два запроса.
Cвои решения прикреплю 🫡:
С подзапросом:

select name, count(mark) as cnt
from school
where mark = '2'
and name in (select name
from school
where mark ='5'
group by name
having count(mark) >10)
group by name

Без подзапроса:

select name, sum(case when mark = 2 then 1 else 0 end) as cnt
from school
group by name
having sum(case when mark = 5 then 1 else 0 end) >= 10


Присылайте решения (хотя бы 1 уровень нужно уметь решать) ⬇️


it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1452👍2🥰1😭1
Зачем эти ваши ДМС, компенсация абонементов в спортзал, макбуки, доп отпускные дни, каждый месяц доставка кофе на дом...
Когда есть эта имба:
😁40🤣176💅4🔥32🥰2😭1
Очередная испыталка пройдена

На следующей недели сделаю пост о том, что для меня самое сложное в новой компании. Я работал в телекоме, банках и сейчас в ритейле, сравню их.
Времени сейчас мало, на работе завал 🥲

Насыпьте реакций плз, если интересно⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥902614👍83🥰2🎉2😭1
This media is not supported in your browser
VIEW IN TELEGRAM
У кого тоже не коллеги, а семья?😄
😁234🤣3😭22
Новая работа 👨‍💻

Итак, у меня закончилась испыталка в X5

Я работаю в отдельном от большого X5 хранилище. Технологий пока что не так много, но мы очень активно развиваемся.

Если кратко, архитектура у нас сейчас такая:
Основной источник - наш бэк на MongoDB. С помощью самописного CDC инструмента пишутся данные в Кафку.
Стриминг - читаем из кафки и пишем в обычную Постгрю. Скоро будет Кликхаус.
Батчинг - Nifi читаем из Кафки, пишем Greenplum. Модель данных у нас Data Vault. Трансформации на DBT. DBT модельки (и не только) запускаются через Airflow.
Также есть Minio. Здесь чуть подробнее описал.

Планируем разворачивать модные Айсберги, Трино, duckdb, Spark Streaming/Flink и тп.

Я много с чем не работал вообще, или не так глубоко.
Был удивлен, что самая сложная "технология" для меня в новой компании - это Data Vault
Очень сложно и непривычно организованы таблицы. Проблематичны поиск данных, понимание как джоинить таблицы, построение dds, промежуточных моделек и тп.
С остальными технологиями полегче.

Что еще непривычно в новой компании - темп работы. Очень много разнообразных задач. Лид очень круто руководит процессом. Задачки сыпятся как конвейер - доделываешь задачи, на подходе сразу много новых.
Вроде как и не перерабатываю, но постоянно какой-то напряг. Не получается почилить как в банке. И начал прям заниматься за тайм менеджментом. Выбираю какие задачки в первую очередь делать, что можно делать параллельно. Декомпозирую задачи и связываю разные задачки. Опять же в банке у меня было совсем по-другому) Плюс так вышло, что на меня повесили достаточно сложный проект, за которым следили наши топы. И хорошо, что мне очень помогала коллега.

Но мне пока что этот высокий темп - нравится. Я вроде бы не говорил, но я получил несколько офферов. И выбирал между газпромбанком и х5. В гпб был жирнее оффер. Но мне уже надоела эта банковская бюрократия. Хотелось больше суеты 😁
Выбрал х5 и не жалею.

Еще хочу отметить - коллектив. Моя команда - дата инженеры и администраторы баз данных. Оочень топовые ребята. Я, наверное, самый слабый среди них.
Много учусь и набираюсь опыта у коллег.

* как раз недавно прочитал репост у Lost in Data с канала This is Data.
Понравилась классная цитата
быть самым слабым в команде – не стыдно. Стыдно – застрять там, где ты не развиваешься.


Общение у нас строго деловое и чаще всего только по задачам. Никаких чатиков с мемами и котиками нет.
Я не говорю, что это круто, просто факт. Мне наверное даже не хватает таких чатиков)
Лид погружен в техническую часть, но сам мало что руками делает. Постоянно на созвонах, грамотно раздает все задачи, говорит что как лучше делать и нам, дата инженерам и заказчикам.

Основные заказчики для нас - всякие разные аналитики. И тоже хочу отметить работу с ними. Я плотно общался где - то с 4 аналитиками. И все были очень вайбовые.
Я могу написать аналитику много кода, технических штук - он мне говорит, добавь плз больше русских слов)
И наоборот аналитики мне объясняют всякие бизнесовые приколы, метрики и для чего им нужны новые данные/доработки.

Что еще из плюсов назвать. Работаю просто через впн, со своего пк, без всяких виртуалок. Выдали MacBook Pro 16 M2, вроде можно потом выцепить м4.
Можно договориться на удобное время работы. Коллеги живут в разных городах РФ. Один админ работает из Тайланда.

Надо что-нибудь назвать из минусов, а то выглядит как рекламная интеграция 😅

Погружение - не прям провели меня за ручку и все подробно описывали.
Документация не супер подробная, но у меня до сих руки не дошли до вики и я ее нормально не изучил.
Видосики, курсики внутри х5 - такое себе.
По самой работе, пока что все равно пишу в основном sql код. Хочется побольше питончика и инфраструктурных задач.

А так вроде бы все сказал. Кажется, что в этой компании я надолго.


Когда все это писал понял, что сравнение прошлых компаний - телекома, банков и ритейла сюда не влезет. Так что будет еще отдельный пост.

Как вам обзорчик? Пишите свои мысли, где вы работаете, где вам нравится или нравилось раньше ⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥752312👍8🎉3😭1
XLTable - OLAP Cервер для нового стека данных
Работайте с ClickHouse, BigQuery, Snowflake из сводной таблицы Excel.

Предоставьте пользователям возможность самостоятельно работать с данными, с помощью знакомого инструмента.

📈Ключевые возможности XLTable:
• Аналог MS OLAP (SSAS) для больших данных
• Интеграция с MS Excel по протоколу XMLA
• Поддержка ClickHouse, BigQuery, Snowflake
• Скоро: YDB, Greenplum
• Множество групп мер, иерархий и измерений в одном кубе
• Гибкие настройки кэширования
• Развёртывание внутри вашей инфраструктуры или в облаке

🔒Безопасность:
• Интеграция с LDAP
• Разграничение доступа на уровне мер, измерений и их членов

⚙️Производительность:
• Безлимитное количество мер и измерений
• Работа из Excel c миллиардами строк данных
• Все расчеты производятся на уровне ClickHouse
• Отличные возможности для масштабирования

Хочешь получить бесплатную пробную версию на 30 дней?

👉🏻Напиши «OLAP» - покажем демо и поможем с настройкой

Контакт: https://news.1rj.ru/str/vorobiova_anastasia
Сайт с информацией о продукте: https://xltable.com/
9👍74🔥33🤔1