Приветствуем, Хабр.
Мы стараемся лицензировать в издательстве «O’Reilly» и переводить для вас фундаментальные книги, в том числе, по формирующимся парадигмам и подходам к разработке. Одним из наиболее успешных базовых изданий такого рода была книга «Основы инженерии данных» Джо Риса и Мэта Хоусли, вышедшая в середине 2024 года (допечатка – январь 2026). Желая развить эту тему, мы издали и вторую, возможно, не менее фундаментальную книгу «Data Engineering Design Patterns», которую написал для издательства «O’Reilly» Бартош Конечны. Русское издание вышло в конце июня и называется «Инженерия данных. Паттерны проектирования». Автор считает, что в дисциплине инженерии данных можно выделить такие же многоразовые и универсальные шаблоны проектирования типичных решений, как и в традиционном программировании. То есть, он берётся повторить в этой области фундаментальный труд «Банды четырёх», который в середине 1990-х привёл к появлению всем известной книги «Design Patterns». Ранее мы размещали статью с примерами вычленения паттернов проектирования в области инженерии данных — это был перевод, а оригинал статьи написал сам Бартош Конечны, собираясь обосновать готовящуюся книгу и очертить её тематическое поле. Под катом рассмотрим, какие именно темы вошли в новую книгу.
Полагаем, что эта книга должна стать для вас не менее чем второй, а не первой на тему инженерии данных — то есть, рекомендуем начать изучение этой отрасли с книги «Основы инженерии данных». Однако структурно книга Бартоша Конечны более напоминает книгу Гаммы, Хелма, Джонса и Влиссидеса; представьте себе «Data Engineering Design Patterns» на месте «Software Engineering Design Patterns». В заключительной части книги делается обзор всех рассмотренных в книге паттернов. Вот они:

Такое авторское резюме исчерпывающим образом иллюстрирует, какие качества данных и этапы их обработки наиболее важны а рамках практической Data Engineering. Читатель может отметить, что перечисленные темы частично перекликаются с дисциплиной «Site Reliability Engineering» (на эту тему у нас также выйдет новинка, сейчас готовим обложку). В основном же разобранные в книге паттерны помогут вам проектировать программы и сервисы, сразу рассчитанные на обработку и классификацию разнородных данных, а также на увеличение пропускной способности приложения.
Названия для всех паттернов проектирования автор придумал сам, и мы приложили максимум усилий, чтобы адекватно перевести их, не перебарщивая с метафоричностью. Русское название каждого паттерна сопровождается оригинальной англоязычной формулировкой.
Под спойлером – полное оглавление книги
Оглавление





Обязательно заходите под спойлер – ведь, как знаете, порой ничего не бывает выразительнее списка. Но со своей стороны подчеркнём, что оглавление иллюстрирует, прежде всего, универсальность изданной нами книги. Рекомендуем читать книгу сначала и до конца, однако, если после знакомства с первой главой вы сочтёте книгу чрезмерно поверхностной – без промедления переходите к предметным главам в центральной части книги. Наиболее универсальна и самодостаточна глава 4, в которой описано, как обеспечить идемпотентность данных. Главы 5 («Паттерны проектирования ценности данных») и 6 («Паттерны проектирования потоков данных») будут наиболее интересны специалистам по распределённым системам. Главы 9 («Паттерны проектирования хранения данных») и 10 («Паттерны проектирования наблюдаемости данных») будут интересны специалистам по обеспечению надёжности и поддержке систем. Особое место в книге занимает глава 3, посвящённая обработке ошибок. Здесь затронуты такие важные темы, как обращение с недоставленными или запоздалыми данными, работа с контрольными точками, устранение дубликатов и многое другое.
Книга богато иллюстрирована блок-схемами, которые мы перевели в полном соответствии с терминологией, вводимой в тексте книги. Например, вот рисунок 3.3, иллюстрирующий устранение дубликатов в окне.

А вот рисунок, на котором представлена операция TRUNCATE TABLE (описывается в главе 4 в разделе о паттерне «Быстрая очистка метаданных»).

Большинство разделов в книге построены по принципу «Проблема-решение-описание». Весь код к главам выложен автором на Github: https://github.com/bartosz25/data-engineering-design-patterns-book. Для чтения кода необходимо знать Python и SQL, желательно умение читать Scala и знакомство с фреймворком Spark.
Заключение
Конечно же, это не последняя наша книга, посвящённая теме Data Engineering. У нас заключён договор на русскоязычную книгу, автор которой собирается представить тему Data Engineering в контексте бизнес-аналитики и анализа данных, то есть, раскрыть «пользовательский» взгляд на эту сложную тему. Но книга Бартоша Конечны кажется нам особенно своевременной и долговечной, так как впервые обобщает best practices, охватывающие инженерию данных во всей полноте. Надеемся, что именно эта книга станет материалом для комментариев, толкований, дискуссий и спиноффов – наверняка автор учёл не все практические случаи инженерии данных, сводимые к узнаваемым и стабильно воспроизводимым шаблонам. Плодотворного вам чтения и развития в области инженерии данных.
ссылка на оригинал статьи https://habr.com/ru/articles/1055382/