Перейти к содержимому
TelegramGitHub

Data Quality Fundamentals — конспект книги

Data Quality Fundamentals: A Practitioner’s Guide to Building Trustworthy Data Pipelines — книга Barr Moses, Lior Gavish и Molly Vorwerck (O’Reilly, сентябрь 2022). Авторы работают в Monte Carlo, компании, которая создала категорию data observability. Книга учит, как сделать данные надёжными: как замечать проблемы раньше пользователей, как их чинить и как построить доверие к данным в компании. В книге 10 глав.

Это подробный пересказ на русском, а не перевод. За полным текстом идите в оригинал.

Карта книги: 10 глав в четырёх блоках

Читайте карту так: книга идёт от проблемы к людям. Сначала она объясняет, почему данные ломаются (блок 1). Потом показывает техники: тесты и мониторинг (блок 2). Дальше собирает их в систему и процесс: архитектуру, инциденты, lineage (блок 3). В конце говорит о людях, кейсах и будущем (блок 4).

У многих команд хорошие пайплайны, но плохие данные. Например, инфраструктура современная, а в дашборде вдруг пустые значения. Таблица на 5 000 строк стала таблицей на 500 строк. Скрытое изменение схемы сломало отчёт директору. Авторы называют такие периоды data downtime: время, когда данные пропали, неточны или ошибочны.

Главная идея книги: к данным нужно относиться так же строго, как к продакшен-софту. Инженеры ПО давно используют DevOps и SRE: мониторинг, алерты, SLA, разбор инцидентов. Авторы переносят эти практики на данные и называют подход DataOps. Тесты ловят проблемы, которые мы ожидали, а мониторинг и data observability — неожиданные. Lineage помогает найти причину, а процесс работы с инцидентами не даёт одной и той же ошибке повториться.

Книга не только про технику. Авторы повторяют: доверие к данным строят люди и процессы. Нужны владельцы, договорённости с потребителями и поддержка руководства. Поэтому в книге много места отведено командам, ролям и кейсам компаний.

  • SQL. В главе 4 мониторы свежести и распределения показаны на SQL (в книге — SQLite). Начните с практики по SQL.
  • Пайплайны и хранилища: ETL, data warehouse, data lake. Если нужна основа, прочитайте конспект Fundamentals of Data Engineering.
  • Python. Нужен на уровне чтения кода: короткие примеры есть в нескольких главах, в том числе детектор аномалий в главе 4.
  • Статистика. Нужны среднее, стандартное отклонение, precision и recall. Всё нужное объясняем по ходу.
  • Тему качества данных кратко разбирает наша страница о Data Quality и главы 9–10 конспекта Data Engineering Design Patterns.
  • Одна тема, вся картина. Книга идёт от сбора данных и тестов до культуры и ролей, а другие книги разбирают качество одной главой.
  • Язык для разговора с бизнесом. SLA, SLO, SLI, цена простоя, ROI качества данных: с этим можно прийти к руководителю.
  • Практичные приёмы. Мониторы свежести и объёма на SQL, цепочка поиска первопричины, circuit breaker в Airflow, метрики инцидентов.
  • Реальные истории. Blinkist, PagerDuty, Fox, Toast, Kolibri Games, разговор с Zhamak Dehghani о data mesh.
  • Взгляд на роли. Кто отвечает за качество: дата-инженер, analytics engineer, владелец продукта данных, incident commander.
БлокГлавыО чём
Зачем и основы1–2Что такое data downtime, почему проблема растёт, из чего состоит платформа данных и как с неё снимать метрики качества
Техника пайплайнов3–4Сбор, очистка, тесты (dbt, Great Expectations, Deequ, Airflow). Мониторинг и поиск аномалий
Система и процесс5–7Архитектура надёжности, SLA и ROI, управление инцидентами, сквозной lineage
Люди и культура8–10Данные как продукт, роли и ответственность, сертификация, кейсы, data mesh, будущее

Блоки повторяют путь команды. Сначала нужно понять, что ломается и где (главы 1–2). Потом поставить проверки на каждом шаге (глава 3) и мониторинг на случай неожиданного (глава 4). Дальше собрать это в архитектуру с обещаниями потребителям (глава 5), научиться чинить (глава 6) и видеть зависимости (глава 7). В конце нужно сделать так, чтобы качество стало делом всей компании (главы 8–10).

ИдеяГде разбирается
data downtime стоит денег, доверия и более 40% времени командыГлава 1
Метрики качества можно получать из метаданных и журнала запросовГлава 2
Тесты закрывают известное, но ловят лишь около 20% проблемГлава 3
Мониторинг ловит unknown unknowns: свежесть, объём, распределение, схемаГлава 4
SLI — метрика, SLO — цель, SLA — обещаниеГлава 5
Цена простоя = (TTD + TTR) × цена часа простояГлава 5, глава 10
Инцидент: обнаружить, отреагировать, найти первопричину, исправить, разобрать без поиска виноватыхГлава 6
Первопричину ищут в пяти местах: lineage, код, данные, окружение, коллегиГлава 6
Lineage на уровне полей нужен автоматический и строится из разбора SQLГлава 7
Данные — это продукт: у него есть владелец, SLA и сертификацияГлава 8
Data mesh — не инструмент, а организационный сдвигГлава 9
Надёжность данных станет базовым требованием и мерой зрелостиГлава 10

Авторы пишут для тех, кто строит и поддерживает пайплайны: дата-инженеров, аналитиков и data scientists. Предварительных требований книга не называет, но примеры предполагают базовый SQL и Python.

РольЧто получит
Data engineerМониторы, тесты, circuit breaker, процесс инцидентов, lineage
Analytics engineerТесты в dbt, SLA для моделей, сертификация данных
АналитикПонимание, откуда берутся ошибки в отчётах и как о них говорить
РуководительЦена простоя, роли, структура команды, стратегия качества
  • Новичок. Читайте по порядку: главы 1, 2 и 3 дают основу, а главу 7 оставьте на второй проход.
  • Analytics engineer. Читайте главы 3, 4, 5 и 8: тесты, мониторинг, SLA, сертификация.
  • Data engineer. Читайте главы 3, 4, 6 и 7: проверки в пайплайне, детекторы, инциденты, lineage.
  • Руководитель. Читайте главы 1, 5, 8, 9 и 10: там о стоимости проблемы, SLA, ролях и о том, когда начинать.

Книга идёт от технических глав к организационным, и главы 8–10 можно читать отдельно от остальных.

Во многих главах есть практика: SQL в DuckDB и короткие примеры на Python. Они повторяют идеи главы на маленьких данных, которые мы создаём сами. Примеры книги на Snowflake, Airflow или Java мы заменили версиями, которые запускаются бесплатно и локально.

  • Нужны Python 3.10+ и DuckDB CLI. Запустите duckdb в терминале или откройте shell.duckdb.org.
  • На страницах стоят короткие примеры, а полные скрипты лежат в репозитории: scripts/data-quality-fundamentals-code. Запускайте так: python3 -I scripts/data-quality-fundamentals-code/<файл>.py.
  • Вывод под кодом настоящий: мы запускали каждый пример. Данные создаются с фиксированным seed, поэтому результат у вас будет тем же.
КнигаКак связана
Fundamentals of Data EngineeringДаёт общий жизненный цикл данных. Эта книга углубляет одну его сторону: качество
Data Engineering Design PatternsПаттерны качества и observability в коде. Эта книга даёт процесс и организацию
Data Pipelines with Apache AirflowAirflow как место для circuit breaker и проверок
ГлаваКакой вопрос решаетПрактика
1. Почему качество данных важно сейчасЧто такое качество данных и data downtime, почему проблема растётПроверки свежести, дублей и пропусков, uptime и «пять девяток» в DuckDB
2. Из чего собрать надёжную систему данныхКак устроена платформа данных и откуда брать метрики качестваЖурнал запросов, метрики по часам и data downtime в DuckDB
3. Сбор, очистка, преобразование и тесты данныхКак сохранить качество на каждом шаге пайплайна: batch и stream, тесты, AirflowType coercion, UTC, circuit breaker, тест в DuckDB
4. Мониторинг и поиск аномалийКак ловить неожиданные проблемы и мерить качество детектораСвежесть и распределение на SQL, z-score и сезонность, precision, recall, F-score
5. Архитектура для надёжности данныхГде и как строить надёжность: ingestion, пайплайн, платформа, SLA, ROIЦена простоя, SLI и SLO в DuckDB
6. Как чинить проблемы в масштабеКак вести инцидент и находить первопричинуСегменты для RCA, метрики инцидентов, группировка алертов
7. Сквозной lineageКак построить lineage на уровне полейLineage из SQL, анализ влияния, рекурсивные запросы в DuckDB
8. Качество данных для всей компанииКак сделать качество делом всей компании: продукт, роли, сертификацияSLI, downtime и правило сертификации в DuckDB
9. Кейсы и беседыКак качество связано с data mesh, метаданными и когда начинатьData mesh score, три задачи в DuckDB
10. Будущее надёжных систем данныхКак обосновать вложения в качество и куда всё идётРасчёт стоимости труда на проблемы с данными

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