Обновить
75.67

Data Engineering *

Обсуждаем вопросы сбора и подготовки данных

Сначала показывать
Период
Уровень сложности

Автоматизация разведочного анализа данных (EDA) с помощью Python

Уровень сложностиСложный
Время на прочтение19 мин
Охват и читатели5K

Всем привет! Меня зовут Константин Некрасов, я работаю дата-сайентистом в Газпромбанке. Хочу рассказать про инструмент, который серьезно упростил мою повседневную работу с данными, и поделиться им.

Если вы когда-нибудь занимались машинным обучением, то знаете — перед тем как строить модель, нужно как следует изучить свои данные. Этот этап называется EDA (Exploratory Data Analysis), или разведочный анализ данных (РАД). Он критически важен — именно здесь мы находим скрытые закономерности, выдвигаем первые гипотезы и понимаем, как лучше обработать данные для будущей модели.

Но EDA отнимает у дата-сайентистов кучу времени, которое можно потратить на что-то другое и не менее важное: придумать новые признаки, поэкспериментировать с разными алгоритмами или настроить гиперпараметры для более высокой точности модели.

Чтобы облегчить задачу, я разработал класс EDAProcessor, который автоматизирует ключевые этапы EDA: от базовой статистики и визуализации распределений до углубленного анализа корреляций, выбросов и временных зависимостей. Результаты анализа сохраняются в виде наглядных графиков и подробной excel-таблицы, где на разных листах представлены все важные статистические показатели и закономерности в данных.

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

Сам скрипт вот тут, а под катом я расскажу, как он работает и что делает.

Читать дальше

Академия Arenadata: How to ADS.NiFi. Концепция потокового программирования в NiFi

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели772

Добрый день. Меня зовут Иван Клименко, я архитектор в департаменте поддержки продаж компании Arenadata. Основное направление моей работы — продукт Arenadata Streaming (ADS), масштабируемая и отказоустойчивая система для потоковой обработки данных в режиме реального времени, предназначенная для корпоративного использования и построенная на базе Apache Kafka и Apache NiFi.

Сегодня я хотел бы обсудить концепцию потокового программирования, уделить внимание FlowFile и рассмотреть подходы к разработке потоков обработки данных в NiFi. Эта статья в первую очередь адресована новичкам, интересующимся NiFi, а от опытных разработчиков я буду рад услышать дополнения и конструктивную критику.

Читать далее

Нам нужен RAG, вам нужен RAG: как встроить LLM туда, где она не нужна

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.8K

Когда хайп захватывает умы, кажется, что любое техническое решение должно строиться вокруг новой модной технологии и что теперь-то мы ух заживем! Сегодня у нас на хайпе RAG (Retrieval-Augmented Generation), вчера — NFT, позавчера — блокчейн везде и всюду.

Давайте попробуем разобраться, нужен ли RAG на самом деле, или это просто «новый блокчейн» и через год все набьют шишки и забудут о нем.

Читать далее

Построение E2E-решения для прогнозирования временных рядов на примере метеоданных

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели8K

Привет, Хабр!

Четыре года назад, еще в институте, одним из моих первых серьезных проектов была простая LSTM-модель для прогноза погоды. Недавно, пересматривая старые наработки, я задался вопросом: насколько дальше можно зайти, применив накопленный за эти годы опыт и современные инженерные практики?

Эта статья — история такого "рефакторинга длиною в 4 года". Это рассказ о том, как простой академический проект был переосмыслен и превращен в полноценное End-to-End (E2E) решение. Цель — не просто снова предсказать погоду, а на практическом примере продемонстрировать системный подход к построению ML-пайплайна с нуля.

В статье рассматриваются все ключевые этапы: от разработки отказоустойчивого веб-скрапера до проведения сравнительного анализа трех разнородных моделей прогнозирования:

Читать далее

DBT Proplum: Расширяем возможности DBT для работы с Greenplum и Clickhouse

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.7K

В современных реалиях всё чаще встаёт вопрос о переходе с вендорских продуктов на open-source. Компании активно рассматривают DBT как стандарт для управления трансформациями данных, но сталкиваются с проблемами: существующие алгоритмы загрузки оказываются недостаточными, а адаптеры для СУБД - устаревшими.

В этой статье рассказываем о нашей доработке адаптера для DBT, который расширяет возможности работы с Greenplum и ClickHouse, добавляя новые стратегии загрузки, логирование и интеграцию с внешними источниками.

Читать статью

Как я автоматизировал анализ логов из Kibana с помощью LLM и AI-агентов

Время на прочтение5 мин
Охват и читатели6.4K

Инструменты вроде OpenSearch, Elastic или Kibana давно стали стандартом для поиска и визуализации логов благодаря удобству и мощной поисковой системе. Однако, когда речь заходит о сложном анализе — агрегациях, парсинге, выявлении сложных закономерностей — их встроенные средства быстро достигают предела возможностей. Особенно сложно становится, если структура логов далека от идеала: например, как у нас — всё содержимое свалено в одно поле Message в формате JSON.

Меня зовут Игорь Щегловитов, я работаю экспертом по тестированию в QC облачной инфраструктуры и веб-порталов. Раньше наша команда решала такие задачи кастомными утилитами на C#, которые выгружали логи из ELK и анализировали их локально. Однако каждое новое требование превращалось в мини-проект: доработать код, написать новые парсеры, скрипты агрегации и фильтрации. Работа замедлялась, техдолг рос.

Я решил использовать связку AI-агентов с кастомными промптами, собственный сервисный слой (MCP) для доступа к логам и LLM-модель, чтобы превращать пользовательские запросы в автоматический алгоритм анализа. Так, кейсы вроде «Посчитай уникальных пользователей за сутки» или «Проанализируй ошибки за период» решаются без ручного кодинга.

Под катом мой кейс: расскажу, как это сделал, поделюсь ссылкой на гитхаб, так что, если хотите упростить себе анализ логов, — эта статья для вас.

Читать далее

Гайд по созданию качественных дата-продуктов от SYNQ: топ-4 советов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.5K

Принцип «тестируй все» не повышает, а разрушает качество данных. Сотни бесполезных алертов создают шум, в котором тонут действительно важные сигналы, а команда перестает на них реагировать. В Google и Monzo от этого уже отказались. Рассказываем, как перейти от тотального тестирования к точечным проверкам узлов с максимальным радиусом влияния и почему один правильный тест на источник важнее сотни проверок в витринах.

Читать далее

AI-ассистент в мире кода: как стать пилотом, а не пассажиром

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.6K

Сегодня невозможно игнорировать тот факт, что AI-ассистенты, такие как ChatGPT, GitHub Copilot или Gemini, стали частью рабочего процесса. Но использовать их бездумно — значит обесценить собственное обучение и будущие карьерные перспективы. 

Меня зовут Дмитрий Махортов, я специалист по машинному обучению и ревьюер на курсе «Специалист по Data Science» в Яндекс Практикуме. Эта статья — руководство о том, как сделать AI вашим главным союзником в обучении, а не тем, кто учится вместо вас. Советы подойдут студентам, изучающим Data Science.

Читать далее

Dagster или Airflow: что выбрать для оркестрации в DWH-проектах?

Время на прочтение14 мин
Охват и читатели7.5K

Рассказываем, какие задачи решают оркестраторы в проектах внедрения корпоративных хранилищ данных. Выясняем, в чем разница между инструментами, и почему Dagster становится все популярнее в DWH-проектах, чем Airflow.

Читать далее

CDC без боли: как мы делали отказоустойчивую репликацию с Debezium и Kafka

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.2K

Я Евгений Прочан, в платформенной команде Magnit OMNI развиваю инфраструктуру DWH. Расскажу здесь, почему нам понадобилось перейти от батчинга к CDC и как мы это делали. Причин перехода было две: потребность бизнеса в расширении возможностей инфраструктуры и нестабильность нашего старого процесса репликации. 

Мы используем в основном базы данных PostgreSQL. Оттуда пакетами раз в час передаём данные в S3, ClickHouse и таблицы Iceberg. Наша потоковая нагрузка достигает примерно полутора терабайта данных, 6000 операций в секунду (около 1500 в самой нагруженной базе данных). 

Читать далее

Вселенная OpenAI: полный путеводитель по семейству моделей GPT в 2025 году

Время на прочтение12 мин
Охват и читатели4.1K

(версия статьи актуальна на 26 июня 2025 года)

OpenAI за несколько лет превратила ChatGPT из экспериментального проекта в полноценного цифрового помощника, который умеет не только писать тексты, но и думать, видеть, слышать и даже спорить. Это стало настоящим поворотным моментом в истории ИИ и индустрия вошла в новый цикл развития. Появились тысячи приложений на базе LLM, десятки компаний сменили стратегию, а работа с языковыми моделями стала повседневной реальностью.

Новые версии выходят регулярно, и если вы чувствуете себя потерянными в этом потоке, то вы не одиноки. Мы специально подготовили этот материал, чтобы рассказать обо всех ключевых GPT-моделях и сопутствующих инструментов OpenAI, чем они отличаются и какую из них выбрать для своих задач.

Читать далее

Jay Knowledge Hub: от прототипа до промышленного PaaS создания баз знаний полного цикла

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели1K

Привет, Хабр! Меня зовут Никита, я руководитель команды разработки умного поиска на основе генеративного AI в Just AI. В этой статье я расскажу о нашем опыте в умный поиск — как от mvp RAG-сервиса для Q&A бота нашей службы поддержки мы пришли к облачной платформе Jay Knowledge Hub (сокращенно KHUB), которая помогает нашим клиентам автоматизировать поиск по различным источникам знаний.

Читать далее

ClickHouse как DWH: Производительность без боли и ловушки merge-таблиц

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели2.1K

Недавно перед нашей командой встала непростая задача: объем данных для аналитики вырос до 300 миллионов строк в день. Прежние решения перестали справляться с такой нагрузкой, отчеты строились слишком медленно, а масштабировать существующую систему было дорого и сложно. Нужно было срочно находить новое решение для хранилища данных (DWH), способное глотать миллионы строк ежедневно и отдавать результат аналитических запросов практически мгновенно.

После оценки различных вариантов (классические СУБД, облачные DWH и др.) мы остановились на ClickHouse. Эта колоночная база данных открытого кода изначально создавалась для работы с большими объемами потока событий. ClickHouse славится впечатляющей скоростью агрегаций и фильтрации на терабайтах данных и отлично подходит для аналитики при больших нагрузках. В этой статье расскажем, как мы выбрали и внедрили ClickHouse в нашем проекте, построив систему сбора и анализа данных с нагрузкой сотни миллионов строк в сутки.

Поговорим об архитектуре (как данные летят из Kafka в ClickHouse), о двух подходах загрузки данных (пакетная и стриминговая), о том, какие табличные движки ClickHouse мы использовали и зачем, как нам помогли материализованные представления, об оркестрации процессов через Airflow и dbt. Отдельно разберем типичные ошибки, с которыми столкнулись в процессе, и поделимся улучшениями, которые планируем учесть при следующей реализации подобного решения.

Читать далее

Ближайшие события

Инструменты, задачи, рассуждения: как понять, на что способен твой LLM-агент

Время на прочтение15 мин
Охват и читатели2.2K

LLM-агенты — отстой. Я провёл последнюю неделю, разрабатывая LLM-агента с возможностью веб-краулинга, используя популярный Python-фреймворк, чтобы собирать информацию о потенциальных лидах из интернета. Результат оказался полным разочарованием.

Агент оказался медленным, нестабильным и с огромным числом багов (звучит знакомо? Передадим привет OpenAI!). Он постоянно делал ненужные вызовы функций, а иногда намертво застревал в бесконечных петлях "рассуждений", которые не имели никакого смысла. В итоге я на это забил и заменил его простым web-scraping скриптом, на написание кода которого у меня ушло 30 минут.

Читать далее

Apache Spark Catalyst: секреты оптимизатора запросов, который должен знать каждый Data Engineer

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели3.7K

Привет Хабр! Меня зовут Кучеров Андрей и я Lead Data Engineer с более чем 7-летним опытом в области распределенной обработки данных. Я работал над оптимизацией высоконагруженных Spark-приложений в X5 Retail Group и билайн, где мы обрабатывали петабайтные объемы данных. Регулярно сталкиваясь с производительностью запросов, я убедился, что понимание работы Catalyst — необходимый навык для каждого Data Engineer, работающего со Spark.

Читать далее

Реинжиниринг процессов контроля качества технической поддержки

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели587

Привет, Хабр! Я, Мадаров Артур, руководитель дирекции процессов эксплуатации и ИТ-услуг Страхового Дома ВСК. Недавно мы с командой произвели реинжиниринг процессов контроля качества ИТ поддержки. Хотим поделиться нашим опытом.

Предпосылки изменений

Тенденции по развитию ландшафта ИТ систем, увеличению каталога сервисов по предоставлению услуг технической поддержки, и, как следствие, увеличению количества пользователей приводят к трансформации процессов и подходов анализа, оценки и контроля качества ИТ поддержки.

Если вчера процессы контроля качества в поддержках разного уровня, различных контактных центрах выстраивались вокруг выборки обращений до1–2% обращаемости, их оценке по критериям чек-листа и включению результирующей оценки в KPI, то сегодня фокус на оценке качества обслуживания клиентов требует глубокого анализа направлений поддержки, автоматизированных инструментов по оценке и контролю, внедрения технологий по анализу 100% обращаемости.

Читать далее

Повышение эффективности аналитических баз данных: кейс «Комус» и Arenadata

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели1.1K

Хабр, привет! Современные высоконагруженные системы требуют точной настройки и регулярного мониторинга, чтобы обеспечить стабильную производительность в условиях постоянно растущих объёмов данных. Когда речь идёт о крупной аналитической базе данных, развёрнутой в облачной среде, оптимизация её работы становится критически важной задачей. В прошлой статье мы уже рассказывали о типичных ошибках при работе с Arenadata DB (ADB), о том, как их избежать и значительно повысить производительность кластера. Сегодня же поделимся реальным опытом на примере компании «Комус» — лидера в области B2B-ритейла, которая обратилась к Arenadata за проведением комплексного аудита своего кластера ADB.

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

Что там с нагрузкой на кластер?

Apache Flink: тестирование собственного сериализатора состояния

Уровень сложностиСложный
Время на прочтение15 мин
Охват и читатели667

Привет, Хабр! На связи Александр Бобряков, техлид команды МТС Аналитика. Это мой одиннадцатый пост про Apache Flink. В предыдущей части мы рассмотрели сериализацию данных во Flink, написали сериализатор, поддерживающий эволюцию схемы для Flink-состояния в операторе на основе Jackson.

В этой части мы научимся писать тесты на эволюцию схемы состояния при использовании своего сериализатора.

Весь разбираемый исходный код можно найти в репозитории AlexanderBobryakov/flink-spring. В master-ветке представлен итоговый проект по всей серии. Этот материал соответствует релизной ветке с названием release/10_test_JacksonStateSerializer.

Читать далее

Улучшаем RAG с помощью графов знаний

Время на прочтение15 мин
Охват и читатели5.4K

Генерация с дополненной выборкой (RAG) — это метод, который соединяет внешние источники данных для улучшения вывода больших языковых моделей (LLM). Этот метод идеально подходит для LLM для доступа к частным или специфичным для предметной области данным и решения проблем, связанных с галлюцинациями. Поэтому RAG широко используется для поддержки многих приложений GenAI, таких как чат-боты AI и системы рекомендаций.

Базовый RAG обычно объединяет векторную базу данных и LLM, где векторная база данных хранит и извлекает контекстную информацию для пользовательских запросов, а LLM генерирует ответы на основе извлеченного контекста. Этот подход хорошо работает во многих случаях, однако он испытывает трудности со сложными задачами, такими как многоадресное рассуждение или ответы на вопросы, требующие соединения разрозненных фрагментов информации.

Например, вопрос «Какое имя было дано сыну человека, который победил узурпатора Аллектуса?»

Читать далее

Анализ фильмов с интернет-портала Кинопоиск

Уровень сложностиСредний
Время на прочтение41 мин
Охват и читатели3K

Данное исследование посвящено анализу данных о фильмах, собранных с крупнейшей российской платформы КиноПоиск. Основная цель работы — выявить факторы, влияющие на популярность фильмов, их рейтинги и финансовую успешность. В ходе исследования были проанализированы жанровые предпочтения аудитории, проведено сравнение оценок фильмов на Кинопоиске и IMDb, а также исследована взаимосвязь между бюджетами фильмов и их кассовыми сборами.

Разработка включала этапы сбора, обработки, анализа и визуализации данных. Для обработки данных применялись методы очистки от пропусков и ошибок, фильтрации по ключевым показателям и трансформации структур данных. Были реализованы функции для конвертации валют, извлечения данных о жанрах и персоналиях фильмов (актёрах и режиссёрах), а также вычисления статистических показателей полноты и однородности выборки.

Для эффективной работы системы был использован современный технологический стек. Обработка данных осуществлялась с помощью MongoDB, что обеспечило хранение и управление большими объёмами неструктурированной информации. RabbitMQ организовал асинхронный обмен сообщениями между компонентами системы, а серверная часть приложения разрабатывалась на базе Spring Boot, что ускорило процесс разработки и упростило развертывание приложения. Контейнеризация с использованием Docker обеспечила удобное развертывание и масштабирование системы. Основными языками программирования стали Java 17 и Python: Java использовалась для серверной части и микросервисов, а Python — для анализа данных и построения алгоритмов обработки информации.

Для анализа данных применялись библиотеки Pandas, Seaborn и SciPy, которые обеспечили эффективную обработку данных и визуализацию результатов. В рамках анализа строились графики, отображающие популярность жанров, исследовалась корреляция оценок на Кинопоиске и IMDb, а также визуализировалась связь между бюджетами и кассовыми сборами. Для представления результатов применялись такие инструменты, как matplotlib и seaborn, позволяя визуализировать ключевые закономерности в виде графиков и диаграмм.

Анализ выявил ключевые закономерности: популярность определённых жанров, зависимость коммерческого успеха фильма от его бюджета и значительное влияние известных актёров и режиссёров на успех фильма. Полученные результаты могут быть полезны для киностудий и продюсеров при планировании новых проектов, прогнозировании кассовых сборов и выборе жанров. Результаты также могут применяться для оптимизации маркетинговых стратегий при продвижении фильмов. В будущем планируется углубить исследование, проанализировать долгосрочные тренды в изменении популярности жанров и исследовать влияние пользовательских рецензий на успех фильмов.

Читать далее