Обновить
77.22

Data Engineering *

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

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

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

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

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

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

Читать далее

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

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

Одна из горячих тем в области 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 мин
Охват и читатели6.8K

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

Привет, Хабр! В этой статье рассмотрим невинный на первый взгляд параметр 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 мин
Охват и читатели1.9K

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

QIC Tech Meetup  → Almaty

Время на прочтение2 мин
Охват и читатели221

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

Оптимизация дашбордов в Superset

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.4K
В этой статье я бы хотела поделиться опытом в оптимизации дашбордов в Apache Superset. Мы в Газпромбанке перешли на этот BI-инструмент относительно недавно. В основном мы работаем в нем с движком Impala.

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

У коллег накопился большой опыт в оптимизации SQL-запросов (о чем недавно также вышла статья) и в стандартах разработки витрин. Но конкретно в работе с построением дашбордов есть своя специфика, которая не всегда учитывается, когда речь заходит об оптимальности работы. Superset так же проводит все расчеты на стороне источника через запросы к БД, как это происходит в обычных IDE. Только он преобразует конечный результат в графики, что скрывает от наших глаз сложные запросы, которые иногда там формируются.

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


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

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

Как я объединил перевод и суммаризацию текстов, и что из этого вышло

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

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

Однако при ближайшем рассмотрении эти задачи имеют много общего...

Читать далее

Сравниваю Jupyter Notebook, Google Colab, Kaggle и Marimo глазами исследователя и начинающего Data Scientist

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

Я пришел в Data Science не сразу. Учился в магистратуре по вечерам, работая в совершенно другой сфере (строительство). Осваивать машинное обучение и анализ данных было интересно, но один из самых неожиданных вопросов, который возник буквально сразу - в какой среде писать код?

На первый взгляд кажется, что Jupyter Notebook, Google Colab, Kaggle и сравнительно новая Marimo - это одно и то же, ноутбук с ячейками и Python (так же поддерживаются другие языки программирования). Но на практике каждая из этих сред подходит для разных задач, где-то удобнее учиться, а где-то работать командой.

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

Статья будет полезна:

Читать далее

СПРУТ 1 = TAP + DD

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

Такая вот незатейливая формула. Спрут 1 – это Test Access Point и Data Diode в одном флаконе. КДПВ перед Вами.

Читать далее

Сравнение инструментов разметки данных для CV: Label Studio & CVAT & Roboflow — опыт разметки 6000+ изображений

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

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

Читать далее

Сверхбыстрые запросы: принципы Compaction при разделении хранения и вычислений в StarRocks и руководство по тюнингу

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

StarRocks при каждом импорте данных создаёт новую версию, что со временем приводит к росту числа мелких файлов и падению эффективности запросов. Фоновый процесс Compaction объединяет версии, устраняет дубликаты и сокращает количество I/O. В материале разобраны: архитектура Compaction в режиме разделения хранения и вычислений (FE — Scheduler, BE/CN — Executor), диспетчеризация по Partition и Tablet, критерии безопасной очистки данных, а также практики тюнинга. Показано, как смотреть Compaction Score на уровне Partition, отслеживать и отменять задачи, и какие параметры FE/BE/CN действительно влияют на производительность (compact_threads, lake_compaction_max_tasks и др.). Отдельно затронут мониторинг и алерты в Grafana/Prometheus. Текст ориентирован на инженеров DWH/OLAP и эксплуатацию высоконагруженных систем хранения данных.

Читать далее

Ставка на GenAI: генеративные модели меняют правила игры в автономном транспорте

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

Автономный транспорт давно вышел за пределы закрытых полигонов и футуристичных историй. Он уже работает и приносит пользу бизнесу и людям. В России тягачи Navio два года возят реальные грузы коммерческих клиентов по трассе М-11 «Нева». А в США, Китае или Европе можно совершить поездку на роботакси. Тем не менее, восприятие технологии остается противоречивым. Видео, где автомобиль без водителя в салоне не может выехать с кольцевого перекрестка или воспринимает человека в майке с надписью STOP как команду к действию, усиливают скепсис и снижают доверие к результатам разработчиков. Почему компании, которые работают над технологией с 2009 года [больше 15 лет], не смогли добиться ее стабильной работы.

Классический подход в разработке автономного транспорта

Алгоритмический подход признан классическим в разработке автономного транспорта. Логическая архитектура построена на основе последовательности действий водителя за рулем:

восприятие окружающего мира — набор сенсоров (радары, лидары, камеры);

определение местоположения — карты, модуль позиционирования, сенсоры;

предсказывание действий других объектов вокруг — алгоритмы на базе кинематической составляющей и модели динамики объектов;

планирования пути — руководство к действию или свод правил, основанный на правилах дорожного движения (ПДД);

управление — модуль внутри автомобиля приводит его в движение. 

Этот код пишется 15 лет и никогда не будет завершен 

Несовершенность классического подхода обнаружилась на этапе планирования пути. При алгоритмическом подходе условия прописываются вручную (what-if сценарии). Автономное транспортное средство принимает решение на основе типа объекта (автомобиль, пешеход, др.), дальше добавляются такие условия, как состояние дорожного покрытия, погода, светофоры, другие объекты. Все это ведет к экспоненциальному росту проверок вложенных условий. Обладая достаточным парком автомобилей, за несколько лет разработчик может закрыть самые часто встречающиеся сценарии на дороге. Следующие несколько лет проездов выловят более редкие случаи и укрепят базу. Но остается открытым вопрос, что делать с уникальными ситуациями, как человек в футболке с надписью STOP или объездом препятствия в месте, где обгон запрещен разметкой. Невозможно вручную прописать все условия заранее, мир сегодня слишком непредсказуем. Такой подход не позволит масштабировать технологию и обеспечить ее стабильность на 100%, особенно в условиях города. Такая бесконечность сценариев называется Long Tail.

Читать далее

Дайджест препринтов научных статей в области астрофизики за июль 2025 по версии Попова

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

Близкая планета вызывает вспышки на звезде (Close-in planet induces flares on its host star)Authors: Ekaterina Ilin et al.Comments: 23 pages, 7 figures, 3 tables. Submitted to Nature 

Наблюдения на TESS и CHEOPS показали, что у молодого G-карлика HIP 67522, вокруг которого обращаются две планеты на низких орбитах, происходят вспышки, вызванные магнитным взаимодействием с одной из планет.

Вертикальная структура и динамика диска Галактики (Vertical Structure and Dynamics of a Galactic Disk)Authors: Chanda J. Jog Comments: 223 pages, 35 figures, 379 references. Invited review for Physics Reports  Большой обзор по структуре и физике галактического диска. На удивление мало формул (с полсотни, и больше половины из них - в 4м разделе), зато много полезных графиков. Приведено много данных наблюдений и разъяснены основные процессы, отвечающие за формирование структуры диска.

Читать далее