Книга посвящена передовым методам построения конвейеров данных, сбору данных из множества разнообразных источников и преобразованию их для аналитики. Дано введение в конвейеры данных, раскрыта их работа в современном стеке данных. Описаны стандартные шаблоны конвейеров данных. Показан процесс сбора данных от их извлечения до загрузки в хранилище. Затронуты вопросы преобразования и проверки данных, оркестровки конвейеров, методов их обслуживания и мониторинга производительности. Примеры программ написаны на Python и SQL и задействуют множество библиотек с открытым исходным кодом.
Для специалистов по обработке данных
Сбор и обработка данных для аналитики
Конвейеры данных — это фундамент успеха в анализе данных.
Сбор данных из множества разнообразных источников и преобразование их для использования в контексте задачи — вот где кроется разница между наличием данных и получением от них реальной пользы. Этот карманный справочник дает определение конвейеров данных и объясняет, как они работают в современном стеке данных.
Вы познакомитесь с общими соображениями и ключевыми моментами принятия решений при реализации конвейеров, таких как пакетный или потоковый прием данных, а также выбор между разработкой и покупкой инструментов. В книге рассматриваются наиболее распространенные решения, принимаемые специалистами по данным, и обсуждаются основополагающие концепции, применимые к платформам с открытым исходным кодом, коммерческим продуктам и к собственным разработкам.
- Что такое конвейер данных и как он работает
- Как данные перемещаются и обрабатываются в современной инфраструктуре, включая облачные платформы
- Популярные инструменты и продукты, применяемые для построения конвейеров
- Как конвейеры помогают закрыть потребности в аналитике и отчетности
- Вопросы обслуживания, тестирования и предупреждения сбоев конвейеров данных
Книгу “Конвейеры данных. Карманный справочник” можно купить со скидкой в интернет-магазине издательства “БХВ“.
Предисловие……………………………………………………………….. 1
Для кого эта книга………………………………………………………………………………… 1
Условные обозначения, используемые в этой книге………………………….. 2
Скачивание примеров кода………………………………………………………………….. 3
Благодарности………………………………………………………………………………………. 4
Глава 1. Введение в конвейеры данных……………………… 5
Что такое конвейеры данных?…………………………………………………………….. 5
Кто строит конвейеры данных?…………………………………………………………… 6
Основы SQL и хранилища данных…………………………………………… 7
Python и/или Java………………………………………………………………………. 7
Распределенные вычисления……………………………………………………. 7
Основы системного администрирования………………………………… 8
Понимание общих целей…………………………………………………………… 8
Зачем создавать конвейеры данных?…………………………………………………. 8
Как строятся конвейеры?……………………………………………………………………… 9
Глава 2. Современная инфраструктура данных………… 11
Разнообразие источников данных…………………………………………………….. 12
Принадлежность исходной системы……………………………………… 12
Интерфейс сбора и структура данных………………………………….. 13
Объем данных………………………………………………………………………….. 15
Чистота и достоверность данных………………………………………….. 15
Задержка и пропускная способность исходной системы……. 17
Облачные хранилища данных и озера данных……………………………….. 17
Инструменты сбора данных………………………………………………………………. 18
Инструменты преобразования и моделирования данных………………. 19
Платформы для оркестровки рабочих процессов……………………………. 21
Направленные ациклические графы (DAG)………………………….. 22
Настройка вашей инфраструктуры данных…………………………………….. 23
Глава 3. Стандартные шаблоны конвейеров данных.. 25
Шаблоны ETL и ELT………………………………………………………………………….. 25
Преимущество ELT перед ETL………………………………………………………….. 27
Подшаблон EtLT…………………………………………………………………………………. 30
ELT в анализе данных………………………………………………………………………… 31
ELT в науке о данных…………………………………………………………………………. 32
ELT для информационных продуктов и машинного обучения………. 33
Этапы конвейера для машинного обучения…………………………. 33
Включение обратной связи в конвейер………………………………….. 35
Дополнительная литература по конвейерам
машинного обучения………………………………………………………………. 36
Глава 4. Сбор данных: начнем с извлечения…………….. 37
Настройка среды Python……………………………………………………………………. 38
Настройка облачного хранилища файлов………………………………………. 40
Извлечение данных из БД MySQL…………………………………………………….. 43
Полное или инкрементное извлечение таблицы MySQL……… 44
Репликация двоичного журнала данных MySQL…………………. 54
Извлечение данных из БД PostgreSQL………………………………………………. 64
Полное или инкрементное извлечение таблицы Postgres…….. 65
Репликация данных с использованием журнала упреждающих записей 67
Извлечение данных из MongoDB………………………………………………………. 68
Извлечение данных из REST API………………………………………………………. 74
Сбор потоковых данных с помощью Kafka и Debezium…………………. 79
Глава 5. Сбор данных: загрузка в хранилище…………… 83
Настройка хранилища Amazon Redshift в качестве места назначения 83
Загрузка данных в хранилище Redshift……………………………………………. 85
Инкрементные и полные загрузки……………………………………………………… 89
Загрузка данных, извлеченных из журнала CDC……………………………. 92
Настройка хранилища Snowflake в качестве пункта назначения…. 94
Загрузка данных в хранилище Snowflake………………………………………… 96
Использование вашего файлового хранилища в качестве
озера данных………………………………………………………………………………………. 98
Фреймворки с открытым исходным кодом……………………………………….. 99
Коммерческие альтернативы…………………………………………………………… 100
Глава 6. Преобразование данных……………………………. 103
Неконтекстные преобразования……………………………………………………… 104
Удаление дубликатов записей в таблице……………………………. 104
Парсинг URL-адресов…………………………………………………………… 109
Когда лучше выполнять преобразование?…………………………………….. 113
Основы моделирования данных……………………………………………………… 114
Ключевые термины моделирования данных………………………. 114
Моделирование полностью обновляемых данных……………. 115
Медленно меняющиеся измерения для полностью обновленных данных 119
Моделирование инкрементно собираемых данных…………… 122
Моделирование данных только для добавления……………….. 127
Моделирование данных об изменениях……………………………… 137
Глава 7. Оркестровка конвейеров…………………………… 143
Направленные ациклические графы………………………………………………. 143
Настройка и знакомство с Apache Airflow……………………………………… 144
Установка и настройка…………………………………………………………. 145
База данных Airflow………………………………………………………………. 146
Веб-сервер и пользовательский интерфейс……………………………………. 148
Планировщик…………………………………………………………………………. 152
Исполнители………………………………………………………………………….. 152
Операторы……………………………………………………………………………… 153
Создание DAG Airflow………………………………………………………………………. 154
Простой DAG…………………………………………………………………………. 154
Конвейер ELT и DAG…………………………………………………………….. 157
Дополнительные задачи конвейера………………………………………………… 162
Оповещения и уведомления………………………………………………….. 162
Проверка данных…………………………………………………………………… 163
Расширенные конфигурации оркестровки……………………………………… 163
Связанные и несвязанные задачи конвейера………………………. 164
Когда следует разделять DAG……………………………………………… 164
Координация нескольких DAG с сенсорами……………………….. 165
Управляемые варианты развертывания Airflow…………………………….. 168
Другие фреймворки для оркестровки……………………………………………… 169
Глава 8. Проверка данных в конвейерах………………… 171
Проверяйте раньше, проверяйте чаще……………………………………………. 171
Качество данных исходной системы…………………………………… 172
Риски процесса сбора данных……………………………………………… 173
Проверка данных с участием аналитиков………………………….. 174
Простой фреймворк проверки данных……………………………………………. 175
Простой фреймворк проверки данных………………………………… 175
Структура проверочного теста……………………………………………. 179
Запуск проверочного теста………………………………………………….. 181
Использование фреймворка в DAG Airflow…………………………. 182
Когда нужно остановить конвейер, а когда предупредить и продолжить 183
Дополнения к фреймворку……………………………………………………. 185
Примеры проверок……………………………………………………………………………. 189
Дубликаты записей после сбора данных……………………………. 190
Неожиданное изменение числа строк после сбора
данных……………………………………………………………………………………. 191
Колебания значения показателя………………………………………….. 194
Коммерческие и открытые фреймворки проверки данных…………… 199
Глава 9. Передовые методы обслуживания
конвейеров……………………………………………………………… 201
Как реагировать на изменения в исходных системах…………………… 201
Добавление абстракции……………………………………………………….. 201
Поддержка контрактов данных……………………………………………. 202
Ограничения схемы при чтении…………………………………………… 204
Масштабирование сложности конвейеров…………………………………….. 206
Стандартизация сбора данных……………………………………………. 206
Повторное использование логики модели данных…………….. 208
Обеспечение целостности зависимостей…………………………….. 211
Глава 10. Измерение и мониторинг производительности конвейера 215
Ключевые показатели конвейера……………………………………………………. 215
Подготовка хранилища данных……………………………………………………… 216
Структура данных………………………………………………………………… 216
Журналирование и получение данных о производительности……. 217
Получение истории выполнения DAG из Airflow………………… 218
Добавление журналирования в инструмент проверки данных 222
Преобразование данных о производительности…………………………… 228
Коэффициент успешного выполнения DAG………………………… 229
Отслеживание времени выполнения DAG…………………………… 230
Объем выполненных тестов и доля успешных
результатов……………………………………………………………………………. 232
Оркестровка конвейера производительности………………………………… 235
DAG конвейера производительности…………………………………… 235
Раскрытие информации о производительности…………………………….. 237
Предметный указатель……………………………………………. 239
Об авторе………………………………………………………………… 241
Об изображении на обложке…………………………………… 243
-
Конвейеры данных. Карманный справочник
760 ₽
593 ₽
Джеймс Денсмор (James Densmore) — технический директор HubSpot, а также основатель и главный консультант Data Liftoff. Он имеет более чем 10-летний опыт руководства группами данных и построения инфраструктуры данных в Wayfair, O’Reilly Media, HubSpot и Degreed. Джеймс получил степень бакалавра компьютерных наук в Северо-Восточном университете и степень магистра делового администрирования в Бостонском колледже.