#data_engineering

2025-05-19

Приходят как-то аналитики на офисную кухню, а там дата-инженеры в нарды играют…

Один из игроков — я, Кирилл Красновид, тимлид BI-команды в Профи.ру. Наша задача — делать так, чтобы каждый быстро и удобно получал нужную информацию без лишней суеты и ожиданий. Поэтому мы стараемся все автоматизировать и оптимизировать. Сегодня расскажу, как решаем эти задачи, а ещё про собственные хранилища аналитиков и bus-фактор.

habr.com/ru/companies/profi_ru

#данные #инженер #data_engineering #data_structures #data #аналитика #аналитика_данных #система_хранения_данных #архитектура_систем

2025-05-15

Оптимизация Spark-приложений: шаг за шагом от базовых техник до продвинутых приёмов

В этой статье мы делимся опытом оптимизации Spark-кода на реальных задачах: рассказываем, как с помощью ручного и автоматического репартицирования ускорить обработку данных, как правильно настраивать оконные функции и запускать множество небольших Spark-приложений внутри одного процесса для экономии ресурсов. Привет, Хабр! Меня зовут Александр Маркачев и я — Data Engineer команды Голосовой Антифрод в билайн. Расскажу, как борьба с мошенниками может обернуться личным вызовом. Все техники сопровождаются объяснениями, примерами и рекомендациями для самостоятельного повторения.

habr.com/ru/companies/oleg-bun

#spark #bigdata #data_engineering #билайн #онтико #оптимизация #многопоточность #apache_spark #beeline

2025-05-11

In late February, I was on SQL Konferenz 2025 in Hanau. Overall, it was a very nice visit with many interesting sessions 💡

Read here: fabianstadler.com/2025/05/sql_

#data_engineering #sql #conference #development

2025-05-07

Join таблиц в реальном времени на Apache Flink

Статья посвящена реализации join-операций в системах потоковой обработки данных на базе Apache Flink. Рассматриваются основные подходы к объединению потоков в реальном времени, включая inner join , а также паттерны дедупликации. Уделено внимание использованию KeyedCoProcessFunction для построения отказоустойчивых и масштабируемых join-пайплайнов. Работа ориентирована на инженеров, строящих real-time витрины и сложные трансформации на Flink в продакшене.

habr.com/ru/articles/907664/

#apache_flink #bigdata #java #data_engineering

2025-04-22

Со скоростью кометы: ускоряем Spark без переписывания кода

Привет, Хабр! Меня зовут Лев Маковеев. Я младший инженер по обработке данных в компании «Криптонит». В этой статье хочу поделиться с вами результатами небольшого исследования, в ходе которого мы протестировали ускоритель запросов Apache DataFusion Comet и пришли к довольно впечатляющим результатам. Забегая вперёд, отмечу, что в отдельных тестах ускорение было более чем десятикратным!

habr.com/ru/companies/kryptoni

#spark #apache #comet #DataFusion #большие_данные #анализ_данных #data_engineering #data_scientist #big_data #оптимизация

2025-04-15

Стриминг Apache Flink из MongoDB в PostgreSQL на Python

Привет, Хабр! Меня зовут Александр Цай, я ведущий аналитик в МТС Web Services, но на деле занимаюсь всеми вопросами, касающимися DA/DE/BI: выявлением потребностей и сбором требований, проектированием дашбордов и витрин для них, построением и развитием внутреннего хранилища, поиском источников данных, созданием сложных ETL-пайплайнов по их доставке, DQ, проведением аналитики и много чем еще. В этом материале я расскажу про разворачивание пайплайна по стримингу данных из MongoDB в PostgreSQL с помощью Apache Flink ( стримить из Kafka банально, а так заодно пощупаем документоориентированную БД ). Делать это мы будем в minikube (kubernetes), а языком программирования для заданий выступит Python. Все описанное в посте выполняется на MacBook с процессором i7. В интернете, тем более русскоязычном, нет информации о стриминге из MongoDB в Postgres с помощью Flink. Почти все материалы по Flink, которые мне попадались, сводятся к пережевыванию примера WordCount из flink-kubernetes-operator, где на запущенном поде из папки с примерами читается файл и в консоль выводится количество слов в нем. Если спускаться до использования PyFlink, то мы натыкаемся на кастомные образы с Harness SDK и Apache Beam и другие страшные слова. Знакомо? Так вот, это не наш путь! Данное руководство будет полезно тем, кто такой же извращенец хочет пощупать Flink на родном Python и кто не планирует брать примеры, оторванные от реальности.

habr.com/ru/companies/ru_mts/a

#apache_flink #стриминг_данных #обработка_потоков #big_data #распределенные_вычисления #realtime_analytics #data_engineering #MinIo #Flinkkubernetesoperator

2025-04-03

Как создать инструмент для DQ только на Python и Airflow?

Всем привет! Меня зовут Павел, я главный аналитик данных управления подготовки данных Банка. В этой статье я расскажу, как мы создали самописный инструмент и библиотеку для проверок качества данных, используя только Python и Airflow, и какую пользу это принесло команде.

habr.com/ru/companies/gazpromb

#dq #python #airflow #superset #data_engineering #data_analysis #data_quality

2025-04-02

Шардированный кластер ClickHouse

Хочу рассказать, как спроектированы распределённые вычисления в ClickHouse. Вы узнаете, на что влияет схема кластера (и на что не влияет). Расскажу, как можно на ровном месте создать себе проблему при помощи всего одной таблицы Kafka и нескольких матвьюх. Поделюсь опытом про дебаг и оптимизацию SELECT-запросов к Distributed таблицам: поизучаем планы выполнения и поэксперементируем с настройками в блоке SETTINGS.

habr.com/ru/companies/wildberr

#clickhouse #sql #bigdata #хранение_данных #data_engineering #mpp #shared_nothing

2025-03-21

Управление качеством данных

Итак, у нас есть данные, и есть требования к ним. От кого? От тех, кто будет ими пользоваться. Если те, кто ставит задачу говорят что "данные плохие" и не могут сформулировать критерии к качеству данных, им можно их подсказать, подсмотрев в предыдущей статье . Таким образом, управление качеством данных - это, в первую очередь, методология, которая обеспечивает некий уровень качества в отношении выбранных данных. Управление качеством данных - это постоянный процесс. Да, для начала неплохо разобраться с уже имеющимися данными, но наша задача сделать так, чтобы все новые данные, попадающие в систему, проверялись, валидировались, насыщались и, в итоге, соответствовали предъявляемым к ним требованиям. Управление качеством, кстати, является важной частью управления Нормативно-Справочной информацией, MDM (Master Data Management). Как же сделать так, чтобы данные попадали в системы уже "чистыми"? Думаю, что самый оптимальный способ - это правильно настроить поля ввода, не допуская ввод заведомо некорректный значений, а также предлагать автозаполнение по возможности: например, выбор адреса доставки предлагать из КЛАДР, а данные о компании автоматически заполнять используя специальные сервисы. Таким образом, и людям надо будет вводить меньше информации, и вероятность ошибки будет гораздо меньше.

habr.com/ru/articles/893158/

#data_engineering #data_quality #data_governance #качество_данных

2025-03-21

Качество данных простым языком

При подготовке статьи что главное? Источники! А что может быть источником надежнее, чем стандарты ISO? Давайте посмотрим, есть ли стандарты "качества данных"? Есть! ISO/TS 8000 и даже соответствующий ГОСТ 56214. Что ж, читаем определения: 3.1.3 качество (quality): Степень соответствия совокупности присущих характеристик объекта требованиям (3.1.2). Примечания: 1 Термин "качество" может применяться с прилагательными, такими как "плохое", "хорошее" или "превосходное". Так. Хватит ГОСТов на сегодня. Итак, есть данные, у них есть качество - характеристика, показывающая степень пригодности данных к использованию, и которое может быть "плохим", "хорошим" или "превосходным". На самом деле, есть 7 основных качественных характеристики: точность, полнота, непротиворечивость, достоверность, своевременность, уникальность и доступность.

habr.com/ru/articles/893104/

#data_governance #data_engineering #data_quality #качество_данных

2025-03-20

Дедупликация объявлений: как мы боремся с одинаковыми размещениями

Привет! Меня зовут Кирилл Сергеев, я ML-инженер в Циане. В этой статье я расскажу, как мы решили задачу дедупликации объявлений о недвижимости, разработав систему на основе трёх моделей. Эта система автоматически находит и объединяет дублирующиеся объявления, помогая пользователям видеть только актуальную и уникальную информацию. Материал будет полезен ML-инженерам и специалистам по обработке данных, которым интересно, как мы подошли к решению этой задачи: какие методы использовали, какие проблемы возникли и как мы их преодолели.

habr.com/ru/companies/cian/art

#машинное_обучение #ml #алгоритмы #data_engineering #data

2025-02-18

Dagster: новый стандарт для ETL в 2025?

Мы живем в век данных и data-driven подхода. Есть продуктовые компании, где даже минимальные изменения в продукте обязаны пройти A/B-тест перед релизом (который из-за этого может и не состояться). С бумом данных и AI произошел и бум ETL (Extract, Transform, Load) инструментов. Сейчас, в 2024 году, выбор действительно впечатляет, даже если ограничиться только open source-решениями:

habr.com/ru/articles/883700/

#dagster #etl #data_pipelines #оркестрация #data_engineering #mlops #python #dataops_engineer #big_data #big_data_analytics

2025-02-14

Порядок работы с устареванием ML моделей. Шаг 2: Создание надежных и долговечных моделей

Еще на этапе создания модели следует проделать работу направленную на замедление ее устаревания. Реализацию процесса работы с устареванием моделей в ML можно разделить на 4 шага. В этой части мы с вами узнаем как создать надежную и долговечную модель, а также получить много полезной информации, которая поможет нам бороться с устареванием в будущем. Мы пройдем полный путь создания модели и работы над замедлением ее устаревания.

habr.com/ru/articles/882288/

#python #машинное_обучение #machine_learning #data_science #data_mining #data_engineering #статистика #statistics #Устаревание_моделей

2025-02-04

Цикл статей о Greenplum. Часть 3. Оптимизация

Приветствуем вас на заключительном этапе в цикле статей о Greenplum. Ранее мы уже обсудили то, как выглядит архитектура системы. Посмотрели «под капот», подробнее обсудили виды хостов и их предназначение, узнали, как обрабатываются запросы пользователей. Во второй статье погрузились в то, какие виды таблиц бывают, что такое дистрибьюция и партиционирование, как можно начать оптимизировать работу с таблицами ещё на этапе их создания. Освежить память о содержании предыдущих статей можно здесь и здесь . В данной статье мы совместно с @omoskvin расскажем о том, что влияет на оптимальность выполнения запросов, как отслеживать различные проблемы и, конечно же, как с ними справляться.

habr.com/ru/companies/axenix/a

#sql #postgresql #dwh #greenplum #оптимизация #data_engineering #кхд #vacuum #motion #join

2025-01-30

Apache Flink: использование и автоматическая проверка собственного сериализатора состояния

Привет, Хабр! На связи Александр Бобряков, техлид команды МТС Аналитики. Это мой финальный пост про Apache Flink. В предыдущих частях мы рассматривали процессы сериализации данных, написали кастомный сериализатор, а также покрыли его тестами. В них проверялась поддержка эволюции схемы состояния. Для этого мы реализовали много удобных абстракций, связанных с перезагрузкой Flink MiniCluster, компиляцией тестовых java-классов, использованием их в classpath кластера и так далее. В этом материале мы применим разработанный сериализатор JacksonStateSerializer в бою, а также автоматизируем проверку эволюции схемы для всех наших классов, участвующих в сериализации. Весь разбираемый исходный код можно найти в репозитории AlexanderBobryakov/flink-spring . В master-ветке представлен итоговый проект по всей серии. Данная статья соответствует релизной ветке с названием release/11_JacksonEvolvingState . По мере выхода новых материалов на Хабре ссылки на них будут появляться ниже. Список моих постов про Flink:

habr.com/ru/companies/ru_mts/a

#java #big_data #data_engineering #распределенные_системы #сериализация_данных #эволюция_схемы #Тестирование_Flink

2025-01-27

Озеро для дата-склада: как мы нырнули в новые методы хранения данных и что из этого вышло

Привет, Хабр! Меня зовут Михаил Килинский, я — Senior Developer в проекте Data Warehouse «Лаборатории Касперского». Наша команда строит хранилища данных и разрабатывает ETL- и ELT-процессы, мы пишем на Python, SQL и C# (.NET), а весь код находится в монорепозитории . Гибкие методологии построения хранилищ данных — очень популярный тренд. Причина — возрастающая сложность корпоративных моделей данных и необходимость интеграции большого числа разнородных источников, которые включают в себя не только традиционные СУБД и плоские файлы, но и различные real-time-брокеры сообщений, внешние API и базы данных NoSQL. В этой статье хочу рассказать, как мы изначально хранили данные, почему решили внедрить методологии Data Lake и Data Vault и к чему это привело. Кроме того, покажу, как мы изобрели свой велосипед разработали свой фреймворк по автоматизации работы с помощью модели Data Vault.

habr.com/ru/articles/876834/

#dwh #data_warehouse #data_lake #хранилище_данных #корпоративное_хранилище_данных #архитектура_данных #базы_данных #данные #data #data_engineering

2025-01-11

Миграция данных: Понятие, виды и примеры на Python

Миграция данных — это важный процесс, который включает в себя перенос информации из одной системы хранения данных в другую. Это может быть необходимо по множеству причин, таких как обновление систем, интеграция новых технологий или соблюдение нормативных требований. В данной статье мы рассмотрим основные виды миграции данных и приведем примеры реализации некоторых из них на Python.

habr.com/ru/articles/872998/

#миграция_данных #data_engineering #python #pandas #big_data

2024-12-27

Инфраструктура для Data-Engineer Liquibase

Liquibase — это по сути реализация принципов IaC, но для баз данных, что делает его ключевым инструментом для DataBase as Code (DBaC). Как IaC управляет инфраструктурой, так Liquibase управляет схемами баз данных, обеспечивая автоматизацию, консистентность и версионирование изменений.

habr.com/ru/articles/863242/

#liquibase #iac #миграции_для_БД #описание_БД_как_код #версионирование_БД #git_для_БД #git_для_инфраструктуры #data_engineering #data_engineer #dba

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst