Data Quality | Качество данных
542 subscribers
55 photos
1 video
1 file
22 links
Канал о данных, их качестве, подготовке, обработке, проверке.
Автор @Rinnushka
Личный канал https://t.me/rinnushka_life
Download Telegram
Рекомендации Банка России.pdf
1.5 MB
Нашла рекомендации банка России по работе с данными.
Интересно почитать на досуге.

Если что, вот ссылка на сайт ЦБ https://www.cbr.ru/content/document/file/170697/recommendations_27122024.pdf
👍1🔥1
И ещё про управление данными.

Бегло пролистала - полезно для работы.

#качестводанных #dataquality
👍1🔥1
Недавно общались с коллегами о профессиональном пути к data quality, если всё сложится и всеми согласуется, то скоро будет статья об этом 📰
👍2🔥1
Та-дам!
А вот и статья 📝

https://habr.com/ru/companies/oleg-bunin/articles/899742/

Новичкам привет! Расскажите немного о себе?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
Основы качества данных, глава третья, часть 1/*.

Сбор, очистка, преобразование и проверка данных.

Интересное:
📎 Чтобы получить полное представление о качестве ваших данных, нужно знать весь их жизненный цикл.

📎 Основные шаги, влияющие на общее качество данных: сбор, очистка, преобразование и проверка

📎 Самый важный аспект сбора - точка входа, где данные не обработаны и могут быть структурированы или не структурированы.

📎 Источник данных редко зависит от инженеров, чаще от бизнеса

📎 Все источники данных можно поделить на три категории: журналы приложений, ответы API, данные датчиков. Я бы добавила четвертый, ручной ввод, но, пожалуй, это можно отнести и к приложениям.


Дальше подробнее напишу про каждую из этих категорий и этапы работы с данными

#качестводанных #dataquality #dqf
👍4🔥1
Основы качества данных, глава третья, часть 2/*

О журналах приложений (они же логи), ответах API и данных датчиков.

📎 Данные в логах - результат действий в ПО, пользовательских или внутренних.

📎 Что включать в журнал, а что нет - зависит от разработчиков ПО, данные могут быть не полными.

📎 На что обратить внимание при работе с логами, как источником данных:
1️⃣ Структура, она же формат
2️⃣ Временные метки и их формат
3️⃣ Уровни логов:
➡️ Информация
➡️ Предупреждение
➡️ Ошибка
4️⃣ Цель
➡️ Диагностика
➡️ Аудит

📎 Почему часть инфо берётся через API - потому что своё приложение не может делать всё.

📎 На что обратить внимание при получении данных по API:
1️⃣ Объекты - что нам присылают, JSON, XML что-то ещё
2️⃣ Коды ответов. Например, коды состояния http (200 ok, 404 not found, 500 internal server error и тд) или другие стандарты
3️⃣ Цель использования. От этого зависит, на что обращать внимание, вариант использования может влиять на то, какая информация имеет значение.

📎 Данные датчиков. Тут про интернет вещей (IoT) или исследовательское оборудование с простой логикой.

📎 Важные моменты при работе с данными от датчиков:
1️⃣ Шум. Скорее всего, часть данных будет не репрезентативной и нужно быть готовым к их очистке, поэтому рекомендуется иметь устойчивый последовательный поток.
2️⃣ Режимы отказа. Важно понимать, как каждый из датчиков, с которых собираются данные, сообщает о неполадках: может выдавать ошибку, перестает поставлять данные или показывает рандомную температуру на Марсе.
3️⃣ Цель. Опять же, зачем эти данные собираются: для обучения моделей или решения задач, основанных на логике? В первом случае важен объем, во вторых - минимальная задержка.

📎 Вывод по сбору данных: важно правильно собирать нужные данные. Акцент на оба слова, иначе можно получить совсем не то, что принесет пользу.

#качестводанных #dataquality #dqf
👍3❤1🔥1
Уже через полчаса состоится онлайн встреча с программным комитетом Data Internals 🔥🔥🔥

Ждём всех, кто хочет выступить на Data Internals X 2025 или пока только думает о выступлении.

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

Можно (и нужно) задать свои вопросы комитету, в том числе по поводу ваших идей и предложений тем выступлений.

Для участия необходимо зарегистрироваться: http://cfp.datainternals.ru/?utm_source=tg&utm_medium=post&utm_campaign=anons&utm_content=1604#onlinemeetup

До встречи 17 апреля, в 18:00 по московскому времени! 😊

Маякните в комментариях, кто собирается прийти?
Основы качества данных, глава третья, часть 3/*.

Про очистку данных.

📎 Одна из самых больших сложностей на пути к высокому качеству данных - их очистка, удаление неточных данных. Основные способы:

📎 Удаление выбросов. Рекомендуется делать это как можно раньше, если только нет цели найти как раз выбросы.

📎 Оценка особенностей набора данных. Все ли таблицы в схеме нужны для исследования? Все ли поля в таблице? Есть ли однозначная документация на всё это?

📎 Нормализация. Про это много написано, полезная штука.

📎 Реконструкция данных. Например, если данных почему-то нет в небольшом количестве. Пишут, что это неизбежно. Можно использовать интер-/экстраполяцию, категоризацию данных.

📎 Преобразование часового пояса. Мега важная штука! Представьте, что вы летите в новогоднюю ночь с востока на запад и каждый час отмечаете новый год. Какой считать "настоящим"?) должен быть какой-то стандарт, чаще всего это UTC или приведение к нему, иначе можно никогда не узнать, когда произошли события относительно друг друга.

📎 Приведение типов. Данные типизированы, но форматы могут отличаться. Необходимо "причесать" весь имеющийся зоопарк типов и привести к удобным для последующей работы типам.

#качестводанных #dataquality #dqf
👍2🔥1
Основы качества данных, глава третья, часть 4/5.

Мысли про обработку и преобразование данных.

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

📎 Основная разница - в объёме данных, обрабатываемых в каждом пакете и скорости обработки. Качество данных у пакетной обычно выше.

📎 Преобразование данных - неотъемлемая часть работы с данными. Включает в себя:
1️⃣Нормализацию данных. Тут под нормализацией понимается приведение к конечному формату
2️⃣ Работу с разнородными источниками данных, и здесь могут быть свои подводные камни:
➡️ Задержка и рассинхрон данных, особенно при потоковой обработке
➡️ Отсутствие иерархии, вместо "БД+схема+таблица" возможно полотно текста
➡️ Необработанные форматы файлов, например с датчиков
➡️ Необязательные поля
➡️ Гетерогенность данных и необходимость приводить их в структурированную форму
3️⃣Проверку схемы и приведение типов

📎 Изменение схем - основной источник повреждения данных.

📎 Достижение синтаксической и семантической однозначности в данных очень важно! Особенно в рамках одной команды/продукта, на всех этапах работы с данными. Например, поле "dr" можно воспринять как "др." - другое, а можно как "дорогая редакция" - что-то важное. Способ округления чисел, вверх или вниз, имеет значение, а еще стоит учитывать числа с плавающей точкой.
Желающие могут погуглить анекдот про возврат товара с надписью "Х" и "П", он наглядно демонстрирует последствия отсутствия договоренности.

📎 Настроить предпроверку можно в приложениях передачи и обработки данных.

📎 Ничего не сломать при ETL/ELТ (особенно в части преобразования) - возможно. Если очень постараться)

#качестводанных #dataquality #dqf
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1❤1👍1🔥1
Основы качества данных, глава третья, часть 5/5.

Мысли о проверках данных.

📎 При проверке тест-кейсы пишут с учетом логики работы системы, но она тоже может сломаться

📎 Распространённые проверки:
➡️ Нулевые значения
➡️ Неизвестные значения (NULL)
➡️ Объём
➡️ Факт получения данных и их размер
➡️ Допустимость диапазона данных
➡️ Инварианты

📎 Проверки желательно проводить перед преобразованием и после каждого этапа процесса преобразования, на всех этапах обработки, от приема данных до передачи их дальше

📎 Рекомендуется использовать разные виды проверок:
➡️ Сингулярные (индивидуальные, для конкретной схемы/таблицы/атрибута)
➡️ Модульные (для продукта, схемы, какой-то части данных)
➡️ Общие (шаблонные, которые легко масштабировать):
1️⃣Уникальность
2️⃣Полнота not_null
3️⃣Принадлежность конечному набору данных
4️⃣Ссылочная целостность

📎 Необходимо регулярно актуализировать проверки при изменении/доработке скрипта обработки данных, удалять лишние и добавлять новые

📎 Quality Gate или "автоматический выключатель" - важная штука для качества данных. Если данные не проходят пороговые значения критичных проверок - они не идут дальше по тракту. Стоит использовать только для проверок, ошибки в которых могут привести к серьезным последствиям

📎 Даже при самых жестких проверках могут остаться ошибки в данных.

#качестводанных #dataquality #dqf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
С чего начать утро первого мая?
С подачи заявки на доклад.
После майских карета превратится в тыкву, но ещё можно успеть)

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

Тыкать сюда: https://cfp.datainternals.ru/
🔥2
Основы качества данных, глава четвертая, часть 1/2.

Мысли о мониторинге и обнаружении аномалий в данных.

📎 Аномалии в данных могут появиться из-за причин, не связанных с самими данными (🔥 если такое было)

📎 Чаще всего аномалии выявляются с помощью простых проверок.

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

📎 Можно выделить два основных типа проблем с данными:
1️⃣Известные неизвестные (можно предсказать или предположить, что может пойти не так, большинство можно поймать проверками)
2️⃣Неизвестные неизвестные (как суслик - его никто не видит, а он есть. Например, изменение схемы другой командой, изменение кода, изменение историчных данных, если на это нет отдельных проверок)

📎 Если есть понимание, какие данные считать "хорошими", легче найти "плохие".

📎 Алгоритм обнаружения аномалий:
1️⃣Мониторинг актуальности. Когда данные были обновлены последний раз? Какой период времени приемлем после последнего обновления?
2️⃣Понимание распределения. Какими должны быть ваши данные? Сколько их? Каждый день по 100 строк с похожими цифрами? От чего может завистеть? Есть ли "сезонность" (от времени суток, дня недели, времени года, места)? Предсказуемые колебания? Тут речь про нормальное распределение (распределение Гаусса) и Центральную предельную теорему — сумма большого количества слабо зависимых случайных величин, имеющих примерно одинаковые масштабы, имеет распределение, близкое к нормальному. Готовь сани летом, а покупай зимой, чтобы не сломать магазинам проверки :)
3️⃣Контекст. Какие ранее осуществлённые манипуляции могут быть причиной? Что может быть затронуто еще? На что влияют эти аномалии?

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

#качестводанных #dataquality #dqf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1
Основы качества данных, глава четвертая, часть 2/2.

Мысли о мониторинге и обнаружении аномалий в данных.

📎 Аномалии можно описывать кратко и полно, и это будет влиять на скорость устранения. Полное и подробное описание может ускорить решение проблемы.

📎 Основные столпы наблюдения за данными (они же - следующие пункты для поиска аномалий):
4️⃣Схема данных и её изменения.
5️⃣Граф зависимостей данных, их происхождение и путь.

📎 Эвристика, (а на деле - глубокое погружение в процессы и данные), ускоряют поиск аномалий и их устранение.

📎 Гарантировать, что все проблемы, выявленные мониторингом, подлинные - невозможно.

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

📎 Для поиска золотой середины и параметров настройки можно использовать метрики точности моделей для машинного обучения (насколько часто предупреждения верны).

📎 Ложноположительный результат лучше, чем ложноотрицательный (согласны?)

📎 Параметр точности не может быть одинаковым для разных данных.

📎 Лучшие алгоритмы обнаружения аномалий делают три вещи:
1️⃣обнаруживают проблемы как можно раньше
2️⃣сообщают о них тем, кому нужно знать
3️⃣предоставляют информацию, которая поможет сократить простои данных

📎 Лучшие практики мониторингов:
➡️ Определение правил и порогов
➡️Использование авторегрессии (проверка прошлых периодов для прогноза будущих и сравнение реального с прошлым)
➡️ Использование экспоненциального сглаживания

📎 Основные различия между алгоритмом поиска аномалий для DWH и Data Lake
1️⃣Количество точек входа
2️⃣Сбор и хранение метаданных
3️⃣Доступ к метаданным

📎 Должна быть точка оборы - какая-либо базовая истина.

#качестводанных #dataquality #dqf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Провожу исследование, в рамках которого предполагается опрос. Выбираю площадку для проведения. И вот тут просьба к вам, проголосуйте пожалуйста в опросе ниже?
Какая площадка для проведения опросов удобнее, где вы готовы отвечать
Anonymous Poll
25%
Гугл формы
25%
Яндекс формы
6%
Паблик опроссо
34%
Любая
6%
Свой вариант
3%
Нигде не буду
16%
Просто интересно
Привет!
Сегодня последний день приёма заявок на data internals.

Заявку подавать тут: https://cfp.datainternals.ru/
Парадокс Симпсона — статистика, которая вас обманет, даже если вы против

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

Парадокс Симпсона — это тот случай, когда ты уверен в своих данных, строишь графики, делаешь выводы... и всё неправильно.

Простой пример, чтобы охренеть:
Допустим, ты хочешь понять, какой врач лучше — доктор «А» или доктор «B» (глянь картинку в начале).

В каждой из групп доктор «A» лучше:
В легких случаях: 90% против 95% (почти одинаково)
В тяжелых: 10% против 10% (равно).
И че?
Кто по вашему лучший?
Не поглядывай!

Оказывается, гребаный доктор «B» - невероятно крут!
Как так?
Если объединить данные:
Доктор
«A»: 100 из 200 = 50%
Доктор
«B»: 20 из 30 = 66%

В чем подвох?
Скрытая переменная — распределение по сложности случаев. «B» работал почти только с лёгкими пациентами, а «A» тащил и тяжёлых.
Так что если не учитывать эту переменную — можно сделать прямо противоположный вывод.

Где такое встречается?
- HR: Средняя зарплата мужчин выше, но оказывается, что женщины чаще в низкооплачиваемых департаментах.
- Образование: Один вуз "хуже" по среднему баллу студентов, но если разбить по факультетам — он оказывается лучше в каждом.
- Медицина: Лекарство кажется бесполезным в общем, но помогает в каждой возрастной группе.
- Продуктовая аналитика: Фича "ухудшила" метрику, но только потому что ей пользовались в основном новички.

Что с этим делать?
- Разбивайте данные: Ищите зависимость от скрытых признаков.
- Не верьте агрегатам: Среднее — зло без контекста.
- Стройте дашборды с фильтрами: Пусть можно было посмотреть и в целом, и по сегментам.
- Ищите "речку в пустыне": Если глобально тренд один, а в каждой подгруппе — другой, это тревожный звонок.

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

А ты знал, про парадокс раньше?

👍 - пффф, конечно
♥️ - спасибо, бро, что рассказал
🔥 - я сам себе ходячий парадокс!

P.S. И доктор «В» крут, потому что умеет правильно выбрать еще и пациентов, которых он будет вести.

@badtechproject
❤6🔥1
Очень хочется поделиться этим постом Артёма тут. Качество данных и статистика очень тесно связаны друг с другом)
❤2
Основы качества данных, глава пятая, часть 1/2.

Мысли об архитектуре для обеспечения надёжности данных.

📎 Большие корпорации уже больше 5 лет говорят о том, что качественные данные лежат в их основе.

📎 Надёжность данных является результатом высокого качества данных. Это способность обеспечить доступность и работоспособность данных.

📎 Её нужно целенаправленно встраивать на все уровни.

📎 Качество принимаемых решений зависит от данных.

📎 Обнаружение проблем с данными в момент их приёма может свести к минимуму большие проблемы в дальнейшем.

📎 Обогащение данных может повысить их ценность, сделать более полезными и надёжными.

📎 Основные типы тестирования качества данных:
⤵️ Модульное
⤵️ Функциональное
⤵️ Интеграционное

📎 Общие проверки ККД:
✅ На нулевые значения
✅ На null
✅ На актуальность
✅ На объем
✅ На выбросы в диапазоне
✅ На отсутствующие значения

📎 Перед тем, как начинать тестирование, нужно понять, что за данные и какие критерии "плохих" данных.

📎 Тестирование выявит только ожидаемые проблемы.

📎 Данные сильно меняются на своём пути, их нужно регулярно проверять.

📎 Обеспечение качества данных в процессе обработки основывается на:
🟢 Свежесть (не то же самое, что актуальность)
🟢 Распределение
🟢 Объём
🟢 Схема
🟢 Происхождение

📎 На дашборды можно выводить общую информацию:
➡️ Соотношение всех данных к неактуальным или ошибочным
➡️ Количество нулевых или отсутствующих значений
➡️ Процент повторяющихся значений
➡️Согласованность данных
➡️ Количество функциональных групп, которые используют эти данные (потребителей)

📎 Основные слои платформы данных:
📊 Приём
📊 Хранение и обработка
📊 Преобразование и моделирование
📊 Аналитика всех видов
📊 Качество данных и наблюдаемость
📊 Обнаружение и управление данными

📎 Данные, проверенные при приёме не обязательно останутся надёжными по мере их продвижения

📎 Основные типы хранения данных, без приоритезации. Ни одно не лучше другого, для разных организаций или на разных этапах могут меняться:
1️⃣ Data Base
2️⃣ Data Lake
3️⃣ Data Warehouse

📎 Преобразование - подготовка для анализа и составления отчетов.

📎 Моделирование - определение ключевых концепций и связей.

📎 Без визуализации данные практически недоступны и их сложно использовать.

📎 Экосистемы становятся больше и сложнее и используют большие объемы неструктурированных и бессхемных данных, каталоги данных могут отказаться неэффективными из-за отсутствия автоматизации и неспособности масштабироваться.

#качестводанных #dataquality #dqf
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1