Все потоки
Поиск
Написать публикацию
Обновить
75.2

Data Engineering *

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

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

Платформа данных в хранилище Магнит OMNI

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

Всем привет! Меня зовут Михаил, я руковожу разработкой хранилища данных «Магнит OMNI». Хочу рассказать, как мы решали проблемы его создания: разделение ресурсов хранилища между несколькими большими равнозначными заказчиками; переиспользование кода для оптимизации рутинных задач; развитие платформы DWH в условиях активно растущего бизнеса; навигация в сотнях витрин и соблюдение единообразия расчёта метрик.

Читать далее

И снова о dbt…

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.4K

Привет, сообщество. Меня зовут Илья, я старший разработчик в БФТ-Холдинге. В этой статье хочу поделиться опытом использования dbt (data build tool) в рамках проекта «Консолидации и нормализации данных» для процессов трансформации данных и создания витрин.

Читать далее

Сравнение бенчмарков LLM для разработки программного обеспечения

Время на прочтение11 мин
Количество просмотров3.2K

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

Читать далее

Инструмент обеспечения качества данных: от теории к практике

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

 Всем привет! Меня зовут Саша Ткачев, я ведущий дата-инженер отдела управления ценностью данных в Лемана ПРО (Леруа Мерлен). Наша команда занимается разработкой self-service инструментов для пользователей платформы данных. Сегодня расскажу о новом продукте — DQ platform.  

Почему именно платформа? У нас получилась большая система, которая включает в себя самые разнообразные компоненты — планировщик заданий, REST-API интерфейс предоставления информации и приема DQ проверок на исполнение, модуль работы с секретами, множество систем: хранения, сквозного логирования, обслуживания БД, восстановления работоспособности при возникновении ошибок (сетевых, работоспособности БД), валидации входящих моделей и т.п.    

Читать далее

Импортозамещение Data Quality стека в нефтегазохимии: опыт СИБУРа

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.4K

В СИБУРе много данных, которые текут в режиме реального времени с многочисленных датчиков на разных производствах, эти данные нужно собирать, хранить, обрабатывать и анализировать, чтобы компания могла принимать правильные бизнес-решения. И от качества инфраструктуры для работы с данными зависит рентабельность производств и прибыль компании в целом, а это жизненно важные показатели.

В небольшом цикле из двух статей мы разберём опыт СИБУРа в создании, поддержке и развитии DQ (Data Quality — качество данных) сервиса для DWH (Data Warehouse — хранилище данных) в условиях санкций и исчезающих вендоров проверенных и привычных решений.

Рассказывать об этом опыте будет Александр Бергер, Lead DQ Analyst в Цифровом СИБУРе, которому посчастливилось лидить процесс создания DQ-сервиса на решениях вендора, который решил покинуть рынок РФ в разгар рабочего процесса.

Читать далее

Apache Flink: Unit и E2E-тестирование оператора с таймерами в Apache Flink

Время на прочтение19 мин
Количество просмотров855

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

В этом посте я расскажу, как можно протестировать операторы с таймерами и какие подводные камни могут возникнуть.

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

Это мой девятый материал про Apache Flink. По мере выхода новых ссылки на них будут появляться ниже.

Список моих статей про Flink:

Читать далее

Подключаем Claude по MCP к базе данных на домашнем компьютере

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

Про протокол MCP (Model Context Protocol) сейчас говорят всё чаще. Этот протокол позволяет нейросетям общаться с внешним миром. С его помощью к LLM можно подключать любые источники данных или системы управления, и всё это через один универсальный стандарт. MCP часто сравнивают с USB — устройство одно, протокол один, а число сценариев применения практически бесконечно.

В статье расскажу про практический сценарий «как связать LLM и базу данных». Это может сделать любой на своём компьютере.

Протокол MCP придумали ребята из Anthropic. Далее будем использовать нейросети Claudе Sonnet и Claude Opus — это LLM от Anthropic.

Зачем это нужно? Такая связка позволит промтами вытаскивать инсайты из данных, создавать отчёты в PDF и строить интерактивные отчёты в HTML. Это работает на моём компьютере последние два месяца и результаты очень обнадёживающие.

Чтобы было интереснее, в качестве данных возьмём все вакансии Habr Career c описаниями.

Читать далее

Как AI-редактор Cursor меняет процесс разработки — и стоит ли ему доверять

Время на прочтение19 мин
Количество просмотров29K

Одним из крупнейших сдвигов в современном софтверном девелопменте стало стремительное распространение AI-инструментов для написания кода. Эти решения помогают как разработчикам, так и людям без технического бэкграунда быстрее писать код, запускать прототипы и готовые приложения. Среди таких инструментов достаточно быстро привлёк внимание Cursor, почти сразу он занял позицию одного из лидеров рынка.

В этой статье я подробнее рассмотрю Cursor, его сильные и слабые стороны, а также сравню его с другими AI-редакторами кода. Это будет практический гайд, в котором я поделюсь своим опытом использования Cursor для создания to-do приложения. К концу материала у вас сложится четкое представление о том, подходит ли Cursor для вашего собственного девелоперского workflow.

Поехали.

Читать далее

Сравнение двух Excel онлайн в оперативной памяти. Добавлен Экспорт

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2K

После публикации первой части и практического опыта, сделал небольшие доработки в свой онлайн инструмент для сравнения двух Excel , также можно сравнить Excel и CSV файлы без преобразований.

Начну с небольшого вступления, почему я начал делать данный инструмент. Я работаю инженером данных и довольно многое автоматизировал в своей работе. В последнее время я занимаюсь миграцией различных скриптов из SAS в Databricks. Для сравнения таблиц есть несколько готовых инструментов типа datacompy, а также свои наработки. Там всё просто, можно преобразовать любые форматы и сравнить. Но вот появилась необходимость сравнить Excel, как результат работы скрипта и CSV выгруженный из Databricks. Есть несколько способов сделать это:

Читать далее

MCP — новый кирпичик в фундаменте AI-разработки

Время на прочтение9 мин
Количество просмотров5.9K

Одна из горячих тем в области AI-кодинг-тулов и developer tooling — протокол MCP (Model Context Protocol), представленный Anthropic в ноябре 2024 года. Он стремительно набирает популярность: AI-модели и инструменты для разработчиков активно внедряют его.

Аналогия для объяснения MCP — это как «порт USB-C для AI-приложений»: он создает универсальную точку расширения, через которую LLM и девтулы могут интегрироваться друг с другом, а также с базами данных, тикетинг-системами и т. д. Концепция начинает набирать популярность и в других областях, но MCP изначально создавался как способ расширить функциональность девелоперских IDE — таких как Claude Desktop, Claude Code, VS Code, Cursor, Windsurf и других. Сегодня мы сосредоточимся именно на этом применении, разобрав:

1. Что такое MCP? Практический пример. Раньше мне приходилось использовать отдельный инструмент, чтобы делать запросы к базе данных в production-приложении. С MCP я могу «разговаривать» с базой данных прямо из IDE — это действительно меняет правила игры!

2. Происхождение MCP.  Два инженера из Anthropic — Дэвид Сориа Парра и Джастин Спар-Саммерс — реализовали MCP, решая собственную проблему: они хотели, чтобы Claude Desktop лучше работал с девтулзами.

3. Чтобы понять MCP, нужно понимать Language Server Protocol (LSP). Многие базовые идеи MCP вдохновлены подходом Microsoft к упрощению интеграции языковой поддержки в IDE.

Читать далее

Кейс: Редактирование стандартных документов в Битрикс24

Время на прочтение5 мин
Количество просмотров600

Работа с документами - неотъемлемая часть документооборота. Документы завершают устные переговоры между различными сторонами и подтверждают их обязанности и ответственность.

Читать далее

Кластерные A/B-тесты: как победить эффект соседа

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров757

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

Сегодня мы рассмотрим, как спасаться от «эффекта соседа», рандомизируя не пользователей, а их кластеры в A/B тестах.

У классического AB-теста есть аксиома SUTVA: мол, результат конкретного юзера зависит только от его собственной ветки «treatment / control». Реальность улыбается и кидает в лицо соцсетью, где лайк друга поднимает и твою вовлечённость, курьером, который обгоняет коллег и заражает их скоростью, и cпасибками «приведи друга — получи бонус». Итог — наблюдения больше не независимы.

Внутрикамерный жаргон это называет network interference. Чем плотнее граф связей, тем сильнее лечение «просачивается» за контрольные границы.

Читать далее

Что делает shuffle=True и как не сломать порядок

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

Привет, Хабр! В этой статье рассмотрим невинный на первый взгляд параметр shuffle=True в train_test_split.

Под «перемешать» подразумевается применение псевдо‑рандомного пермутационного алгоритма (обычно Fisher‑Yates) к индексам выборки до того, как мы режем её на train/test. Цель — заставить train‑и-test быть независимыми и одинаково распределёнными (i.i.d.). В scikit‑learn эта логика зашита в параметр shuffle почти всех сплиттеров. В train_test_split он True по умолчанию, что прямо сказано в документации — «shuffle bool, default=True».

Читать далее

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

Spark on Kubernetes: наш путь к автоматизации через кастомный оператор Airflow

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

Всем привет! Меня зовут Дмитрий Третьяков, я ML Engineer в компании «Лента». Мы регулярно запускаем PySpark-приложения в Kubernetes-кластере, используя Airflow. Этот процесс важен для нашей ежедневной работы с данными, но в какой-то момент мы столкнулись с тем, что стандартный подход через SparkKubernetesOperator стал сдерживать развитие: не хватало гибкости, возникали сложности в сопровождении и процесс настройки был излишне сложным для разработчиков.

Читать далее

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.4K

Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных в Х5 Tech, успел за это время познакомиться с несколькими интересными проектами и подходами в области обработки данных, об одном из которых пойдет речь далее.

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

Разберем, что из себя представляют Slowly Changing Dimensions-2 (далее SCD-2) таблицы и самостоятельно реализуем на PySpark алгоритм сохранения данных в них. Попутно поговорим о том, как находить изменения в любой таблице, даже если отсутствуют поля для выбора изменившихся записей, и научимся получать из созданной SCD-2 таблицы срезы на требуемую дату в прошлом.

Читать далее

Заметки и материалы по итогам Lakehouse Meetup #3

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.1K

CedrusData совместно с Лемана Тех провели митап, где рассмотрели реальный опыт внедрения современных технологий анализа данных: реализация lakehouse на Trino в Лемана Тех, использование Nessie в Азбуке Вкуса.

Читать далее

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

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.8K

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

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

Читать далее

QIC Tech Meetup  → Almaty

Время на прочтение2 мин
Количество просмотров306

Приходите на бесплатный двухдневный митап 21 и 22 мая в Алматы от спикеров QIC digital hub, Kolesa Group, Yandex и DataArt! Эксперты рынка поделятся своими знаниями и кейсами в работе с продуктами и данными.

Читать далее

Погружение в ClickHouse: делаем первые и успешные шаги

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

Привет! Меня зовут Андрей Дорожкин, и я руковожу командой администрации баз данных в Hybrid. В этом материале я поделюсь опытом работы с ClickHouse — колоночной БД, разработанной специально для аналитических запросов, которая позволяет получать результаты в разы быстрее традиционных решений. Также я подсвечу, как устроен этот продукт, чем он отличается от реляционных баз данных, и в каких сценариях его использование может дать бизнесу реальное преимущество.

Пара слов о компании Hybrid. Мы — независимая AdTech-экосистема с собственным стеком технологий и решений для любых рекламных целей. Развиваем собственные технологии благодаря in-house отделу разработки, который каждый день работает над их улучшением. ClickHouse — инструмент, который мы выбираем для хранения данных за высокую скорость обработки запросов, эффективное сжатие данных и масштабируемость.

Читать далее

Динамическое ценообразование в каршеринге: путь от таблички до ML

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров2.2K

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

Читать далее