Опубликовано

Вышла книга “Основы инженерии данных: как создавать надёжные системы обработки данных”

Основы инженерии данных: как создавать надёжные системы обработки данных

Базовая книга по инженерии данных. Рассмотрены все аспекты проектирования и эксплуатации различных архитектур данных, а также полный жизненный цикл работы с данными: подготовка, поглощение, преобразование, очистка, сочетание, оркестрация, конвейеризация. Особое внимание уделено облачным технологиям, распределению нагрузки и безопасному хранению данных. Разобраны приёмы формирования запросов, работы с базами данных и отслеживания потоков данных. Книга даёт исчерпывающее представление о проектировании систем для обработки разнородных данных, поддержании этих систем в упорядоченном и доступном виде и о тенденциях развития современной индустрии данных.

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

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

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

В этой книге:

  • Краткий обзор технологического ландшафта современной инженерии данных
  • Решение задач по инженерии данных с применением наилучших практик
  • Подбор технологий, выстраивание архитектуры данных, налаживание бизнес-процессов
  • Внедрение практик управления данными и обеспечения безопасности процессов в рамках всего жизненного цикла инженерии данных

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

Билл Инмон, основоположник технологии хранилищ данных

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

Джордан Тигани, основатель и генеральный директор сайта MotherDuck, основатель
и соавтор проекта BigQuery

Книгу “Основы инженерии данных: как создавать надёжные системы обработки данных можно купить со скидкой в интернет-магазине издательства “БХВ“.

Отзывы о книге……………………………………………………………………………………… 17

Предисловие…………………………………………………………………………………………… 20

О чем не расскажет эта книга…………………………………………………………………………………………………… 20

О чем расскажет эта книга………………………………………………………………………………………………………… 20

Для кого предназначена эта книга…………………………………………………………………………………………… 21

Предварительные требования………………………………………………………………………………………………….. 22

Что вы узнаете и как улучшите свои способности…………………………………………………………………. 22

Структура книги………………………………………………………………………………………………………………………… 23

Условные обозначения……………………………………………………………………………………………………………… 24

Благодарности…………………………………………………………………………………………………………………………… 24

Часть I. Основы и компоненты………………………………………………… 27

Глава 1. Понятие инженерии данных…………………………………………………….. 29

Что такое инженерия данных?………………………………………………………………………………………………….. 29

Определение понятия «инженерия данных»………………………………………………………………… 30

Жизненный цикл инженерии данных……………………………………………………………………………. 31

Эволюция инженерии данных……………………………………………………………………………………….. 32

Ранние годы: 1980–2000гг., от хранилищ данных до Интернета……………………… 32

Начало 2000-х годов: Рождение современной инженерии данных…………………… 32

2000–2010-е годы: Инженерия больших данных………………………………………………… 34

2020-е годы: Инженерия жизненного цикла данных…………………………………………… 36

Инженерия данных и наука о данных………………………………………………………………………….. 37

Навыки и деятельность в области инженерии данных…………………………………………………………… 39

Зрелость данных и инженер данных…………………………………………………………………………….. 40

Этап 1. Начало работы с данными………………………………………………………………………. 41

Этап 2. Масштабирование на основе данных…………………………………………………….. 42

Этап 3. Управление на основе данных………………………………………………………………… 43

Подготовка и навыки инженера данных………………………………………………………………………. 44

Деловые обязанности…………………………………………………………………………………………………….. 45

Технические обязанности………………………………………………………………………………………………. 46

Континуум ролей инженеров данных от A до B………………………………………………………….. 49

Инженеры данных в организации…………………………………………………………………………………………….. 50

Инженеры данных, ориентированные на внутренних и внешних потребителей……… 50

Инженеры данных и другие технические специалисты……………………………………………… 51

Заинтересованные стороны выше по потоку обработки……………………………………. 52

Заинтересованные стороны ниже по потоку обработки……………………………………. 53

Инженеры данных и руководство компании……………………………………………………………….. 56

Данные в высшем руководстве……………………………………………………………………………… 56

Инженеры данных и менеджеры проектов…………………………………………………………… 58

Инженеры данных и менеджеры продуктов………………………………………………………… 59

Инженеры данных и другие руководящие должности……………………………………….. 59

Заключение………………………………………………………………………………………………………………………………… 59

Дополнительные ресурсы…………………………………………………………………………………………………………. 60

Глава 2. Жизненный цикл инженерии данных………………………………………. 62

Что такое жизненный цикл инженерии данных?…………………………………………………………………….. 62

Жизненный цикл данных в сравнении с жизненным циклом инженерии данных…….. 63

Генерация: исходные системы………………………………………………………………………………………. 64

Оценка исходных систем: ключевые технические особенности……………………….. 65

Хранение…………………………………………………………………………………………………………………………. 66

Оценка систем хранения данных: ключевые технические особенности…………… 67

О частоте доступа к данным…………………………………………………………………………………. 68

Выбор системы хранения данных………………………………………………………………………… 68

Поглощение…………………………………………………………………………………………………………………….. 69

Ключевые инженерные особенности для фазы поглощения……………………………… 69

Пакетная передача в сравнении с потоковой………………………………………………………. 70

Ключевые особенности пакетного и потокового поглощения данных…………….. 70

Модели Push и Pull………………………………………………………………………………………………….. 71

Преобразование……………………………………………………………………………………………………………… 72

Ключевые особенности этапа трансформации…………………………………………………… 72

Предоставление данных………………………………………………………………………………………………… 74

Аналитика……………………………………………………………………………………………………………….. 74

Машинное обучение………………………………………………………………………………………………. 76

Обратный ETL………………………………………………………………………………………………………… 77

Основные фоновые процессы жизненного цикла инженерии данных………………………………….. 78

Безопасность…………………………………………………………………………………………………………………… 79

Управление данными……………………………………………………………………………………………………… 80

Руководство данными……………………………………………………………………………………………. 81

Качество данных……………………………………………………………………………………………………. 86

Моделирование и проектирование данных…………………………………………………………. 87

Происхождение данных………………………………………………………………………………………… 88

Интеграция данных и совместимость…………………………………………………………………… 88

Управление жизненным циклом данных……………………………………………………………… 89

Этика и конфиденциальность……………………………………………………………………………….. 90

DataOps……………………………………………………………………………………………………………………………. 90

Автоматизация……………………………………………………………………………………………………….. 92

Наблюдаемость и мониторинг……………………………………………………………………………… 93

Реакция на инциденты……………………………………………………………………………………………. 94

Резюмируем DataOps……………………………………………………………………………………………… 95

Архитектура данных……………………………………………………………………………………………………… 95

Оркестровка…………………………………………………………………………………………………………………….. 96

Программная инженерия……………………………………………………………………………………………….. 97

Основной код обработки данных…………………………………………………………………………. 98

Разработка фреймворков с открытым исходным кодом…………………………………….. 98

Потоковая передача данных…………………………………………………………………………………. 99

Инфраструктура как код……………………………………………………………………………………….. 99

Конвейеры как код…………………………………………………………………………………………………. 99

Решение задач общего назначения…………………………………………………………………….. 100

Заключение………………………………………………………………………………………………………………………………. 100

Дополнительные ресурсы……………………………………………………………………………………………………….. 101

Глава 3. Проектирование качественной архитектуры данных…………….. 102

Что такое архитектура данных?…………………………………………………………………………………………….. 102

Определение архитектуры предприятия……………………………………………………………………. 102

Определение из TOGAF……………………………………………………………………………………….. 103

Определение от Gartner……………………………………………………………………………………….. 103

Определение из EABOK……………………………………………………………………………………….. 104

Наше определение……………………………………………………………………………………………….. 104

Определение архитектуры данных…………………………………………………………………………….. 106

Определение из TOGAF……………………………………………………………………………………….. 106

Определение из DAMA………………………………………………………………………………………… 106

Наше определение……………………………………………………………………………………………….. 106

«Качественная» архитектура данных………………………………………………………………………… 107

Принципы качественной архитектуры данных…………………………………………………………………….. 108

Принцип 1: Грамотный выбор общих компонентов………………………………………………….. 109

Принцип 2: Планирование на случай неудачи………………………………………………………….. 110

Принцип 3: Архитектура для обеспечения масштабируемости………………………………. 111

Принцип 4: Архитектура лидерства…………………………………………………………………………… 111

Принцип 5: Всегда заниматься архитектурой…………………………………………………………… 112

Принцип 6: Построение слабосвязанных систем………………………………………………………. 113

Принцип 7: Принимать обратимые решения……………………………………………………………… 114

Принцип 8: Приоритет отдается безопасности…………………………………………………………. 115

Модели безопасности с усиленным периметром и нулевым доверием…………… 115

Модель разделения ответственности…………………………………………………………………. 116

Инженеры данных как инженеры по безопасности………………………………………….. 116

Принцип 9: Освоение FinOps……………………………………………………………………………………….. 117

Основные понятия архитектуры…………………………………………………………………………………………….. 119

Домены и сервисы………………………………………………………………………………………………………… 119

Распределенные системы, масштабируемость и проектирование
с учетом отказов…………………………………………………………………………………………………………… 120

Слабая связанность в сравнении с сильной: уровни, монолиты и микросервисы….. 122

Уровни архитектуры……………………………………………………………………………………………. 122

Монолиты……………………………………………………………………………………………………………… 124

Микросервисы………………………………………………………………………………………………………. 125

Особенности архитектуры данных…………………………………………………………………….. 126

Доступ пользователей: отдельный и мультиарендный подходы…………………………….. 127

Событийно-ориентированная архитектура………………………………………………………………. 127

Сравнение проектов типа Brownfield и Greenfield……………………………………………………… 128

Проекты Brownfield………………………………………………………………………………………………. 128

Проекты Greenfield……………………………………………………………………………………………….. 129

Примеры и типы архитектуры данных………………………………………………………………………………….. 130

Хранилище данных………………………………………………………………………………………………………. 130

Облачное хранилище данных…………………………………………………………………………….. 133

Витрины данных………………………………………………………………………………………………….. 133

Озеро данных………………………………………………………………………………………………………………… 134

Совмещение, озера данных нового поколения и платформы данных…………………….. 135

Современный стек обработки данных……………………………………………………………………….. 136

Лямбда-архитектура……………………………………………………………………………………………………. 137

Каппа-архитектура………………………………………………………………………………………………………. 138

Модель потока данных и унифицированные пакетная и потоковая обработка……. 139

Архитектура для IoT……………………………………………………………………………………………………. 140

Устройства……………………………………………………………………………………………………………. 140

Взаимодействие с устройствами………………………………………………………………………… 141

Поверхностное рассмотрение IoT………………………………………………………………………. 142

Сеть данных………………………………………………………………………………………………………………….. 143

Другие примеры архитектур данных…………………………………………………………………………. 143

Кто участвует в проектировании архитектуры данных?…………………………………………………….. 144

Заключение………………………………………………………………………………………………………………………………. 145

Дополнительные ресурсы……………………………………………………………………………………………………….. 145

Глава 4. Выбор технологий в рамках жизненного цикла
инженерии данных………………………………………………………………………………. 150

Размер и возможности команды……………………………………………………………………………………………… 151

Скорость выхода на рынок…………………………………………………………………………………………………….. 152

Совместимость…………………………………………………………………………………………………………………………. 152

Оптимизация затрат и ценность для бизнеса………………………………………………………………………… 153

Совокупная стоимость владения………………………………………………………………………………… 153

Совокупные альтернативные издержки владения…………………………………………………….. 154

FinOps…………………………………………………………………………………………………………………………….. 155

Сегодняшний день и будущее: неизменяемые и временные технологии……………………………. 156

Наши рекомендации…………………………………………………………………………………………………….. 158

Местоположение……………………………………………………………………………………………………………………… 158

Локально……………………………………………………………………………………………………………………….. 159

В облаке………………………………………………………………………………………………………………………… 159

Гибридное облако………………………………………………………………………………………………………… 163

Мультиоблако………………………………………………………………………………………………………………. 164

Децентрализация: блокчейн и периферия………………………………………………………………….. 165

Наши рекомендации…………………………………………………………………………………………………….. 165

Выбирайте технологии для настоящего, но смотрите в будущее……………………. 166

Аргументы в пользу облачной репатриации……………………………………………………………… 167

Вы — не Dropbox и не Cloudflare………………………………………………………………………… 167

Создание или покупка…………………………………………………………………………………………………………….. 169

Программное обеспечение с открытым исходным кодом………………………………………… 170

OSS под управлением сообщества разработчиков…………………………………………… 171

Коммерческие OSS……………………………………………………………………………………………….. 172

Запатентованные «огороженные сады»…………………………………………………………………….. 174

Независимые предложения…………………………………………………………………………………. 174

Запатентованные сервисные предложения для облачных платформ…………….. 175

Наши рекомендации…………………………………………………………………………………………………….. 175

Монолит или модульная система…………………………………………………………………………………………… 176

Монолит………………………………………………………………………………………………………………………… 176

Модульная система……………………………………………………………………………………………………… 177

Модель распределенного монолита…………………………………………………………………………… 179

Наши рекомендации…………………………………………………………………………………………………….. 179

Серверы или бессерверные вычисления………………………………………………………………………………… 180

Бессерверный подход…………………………………………………………………………………………………… 180

Контейнеры…………………………………………………………………………………………………………………… 181

Как оценивать серверные и бессерверные решения………………………………………………….. 182

Наши рекомендации…………………………………………………………………………………………………….. 183

Оптимизация, производительность и войны бенчмарков…………………………………………………….. 184

Большие данные… для 1990-х годов…………………………………………………………………………… 185

Бессмысленные сравнения затрат………………………………………………………………………………. 185

Асимметричная оптимизация………………………………………………………………………………………. 186

Caveat Emptor, или Будьте бдительны!……………………………………………………………………… 186

Фоновые процессы и их влияние на выбор технологий……………………………………………………….. 186

Управление данными…………………………………………………………………………………………………… 186

DataOps………………………………………………………………………………………………………………………….. 187

Архитектура данных……………………………………………………………………………………………………. 187

Пример оркестровки: Airflow……………………………………………………………………………………….. 187

Программная инженерия……………………………………………………………………………………………… 188

Заключение………………………………………………………………………………………………………………………………. 189

Дополнительные ресурсы……………………………………………………………………………………………………….. 189

Часть II. Жизненный цикл инженерии данных в деталях 191

Глава 5. Генерация данных в исходных системах………………………………… 193

Источники данных: как формируются данные?……………………………………………………………………. 194

Исходные системы: основные идеи……………………………………………………………………………………….. 194

Файлы и неструктурированные данные…………………………………………………………………….. 194

API………………………………………………………………………………………………………………………………….. 195

Базы данных приложений (OLTP-системы)……………………………………………………………….. 195

ACID-транзакции…………………………………………………………………………………………………. 196

Атомарные транзакции……………………………………………………………………………………….. 196

OLTP и аналитика………………………………………………………………………………………………… 197

Системы интерактивной аналитической обработки…………………………………………………. 197

Захват изменения данных……………………………………………………………………………………………. 198

Журналы……………………………………………………………………………………………………………………….. 198

Кодирование журнала…………………………………………………………………………………………. 199

Разрешение журнала……………………………………………………………………………………………. 199

Задержка записи в журнал: пакетный режим
или режим реального времени…………………………………………………………………………….. 199

Журналы базы данных………………………………………………………………………………………………… 199

CRUD……………………………………………………………………………………………………………………………… 200

Только вставка……………………………………………………………………………………………………………… 201

Сообщения и потоки…………………………………………………………………………………………………….. 201

Типы времени………………………………………………………………………………………………………………… 203

Исходные системы: практические сведения………………………………………………………………………….. 203

Базы данных…………………………………………………………………………………………………………………. 204

Основные соображения для понимания технологий баз данных……………………. 204

Реляционные базы данных………………………………………………………………………………….. 205

Нереляционные базы данных: NoSQL……………………………………………………………….. 206

API………………………………………………………………………………………………………………………………….. 213

REST………………………………………………………………………………………………………………………. 213

GraphQL………………………………………………………………………………………………………………… 214

Веб-хуки………………………………………………………………………………………………………………… 214

RPC и gRPC…………………………………………………………………………………………………………… 215

Совместное использование данных……………………………………………………………………………. 215

Сторонние источники данных…………………………………………………………………………………….. 216

Очереди сообщений и платформы потоковой передачи событий…………………………… 217

Очереди сообщений……………………………………………………………………………………………… 217

Платформы потоковой передачи событий………………………………………………………… 219

С кем вам предстоит работать……………………………………………………………………………………………….. 221

Фоновые процессы и их влияние на исходные системы………………………………………………………. 222

Безопасность…………………………………………………………………………………………………………………. 223

Управление данными…………………………………………………………………………………………………… 223

DataOps………………………………………………………………………………………………………………………….. 224

Архитектура данных……………………………………………………………………………………………………. 225

Оркестровка………………………………………………………………………………………………………………….. 226

Программная инженерия……………………………………………………………………………………………… 226

Заключение………………………………………………………………………………………………………………………………. 227

Дополнительные ресурсы……………………………………………………………………………………………………….. 227

Глава 6. Хранение………………………………………………………………………………… 229

Базовые компоненты для хранения данных………………………………………………………………………….. 231

Накопитель на жестких магнитных дисках (HDD)……………………………………………………. 231

Твердотельный накопитель…………………………………………………………………………………………. 233

Оперативная память и оперативное запоминающее устройство (ОЗУ)………………….. 234

Сети и центральный процессор…………………………………………………………………………………… 235

Сериализация……………………………………………………………………………………………………………….. 236

Сжатие…………………………………………………………………………………………………………………………… 237

Кеширование………………………………………………………………………………………………………………… 237

Системы хранения данных……………………………………………………………………………………………………… 238

Хранилище на одной машине в сравнении с распределенным хранилищем…………. 238

Согласованность в конечном счете в сравнении с сильной согласованностью…….. 239

Файловое хранилище…………………………………………………………………………………………………… 240

Локальное дисковое хранилище…………………………………………………………………………. 241

Сетевое хранилище……………………………………………………………………………………………… 242

Сервисы облачных файловых систем………………………………………………………………… 242

Блочное хранилище……………………………………………………………………………………………………… 243

Приложения блочного хранения данных…………………………………………………………… 243

RAID………………………………………………………………………………………………………………………. 243

Сеть хранения данных…………………………………………………………………………………………. 244

Облачное виртуализированное блочное хранилище……………………………………….. 244

Локальные экземпляры томов…………………………………………………………………………….. 245

Объектное хранилище………………………………………………………………………………………………….. 246

Объектные хранилища для приложений инженерии данных………………………….. 248

Поиск объектов…………………………………………………………………………………………………….. 249

Согласованность и версии объектов………………………………………………………………….. 250

Классы и уровни хранения данных……………………………………………………………………. 251

Файловые системы с хранилищем объектов……………………………………………………… 252

Системы хранения данных на основе памяти и кеша……………………………………………….. 253

Пример: Memcached и легкое кеширование объектов……………………………………… 253

Пример: Redis, кеширование памяти с дополнительной персистентностью….. 253

Распределенная файловая система Hadoop (HDFS)…………………………………………………. 253

Hadoop мертв. Да здравствует Hadoop!…………………………………………………………….. 254

Потоковое хранилище………………………………………………………………………………………………….. 254

Индексы, разбиение и кластеризация…………………………………………………………………………. 255

Эволюция от строк к столбцам…………………………………………………………………………… 255

От индексов к разделам и кластеризации………………………………………………………….. 256

Пример: Микроразбиение Snowflake…………………………………………………………………. 256

Абстракции хранения в инженерии данных………………………………………………………………………….. 257

Хранилище данных………………………………………………………………………………………………………. 258

Озеро данных………………………………………………………………………………………………………………… 258

Хранилище Data Lakehouse………………………………………………………………………………………… 259

Платформы данных……………………………………………………………………………………………………… 259

Архитектура потоково-пакетного хранения данных………………………………………………… 260

Выдающиеся идеи и тенденции в области хранения данных……………………………………………… 260

Каталог данных……………………………………………………………………………………………………………. 261

Интеграция приложения и каталога…………………………………………………………………… 261

Автоматизированное сканирование…………………………………………………………………… 261

Портал данных и социальный уровень……………………………………………………………… 261

Варианты использования каталога данных……………………………………………………… 261

Совместное использование данных……………………………………………………………………………. 262

Схема…………………………………………………………………………………………………………………………….. 262

Разделение вычислений и хранения……………………………………………………………………………. 263

Колокация вычислительных систем и хранения данных…………………………………. 263

Разделение вычислений и хранения данных……………………………………………………… 263

Гибридный подход к разделению и колокации…………………………………………………. 264

Клонирование с нулевым копированием…………………………………………………………… 266

Жизненный цикл хранения данных и их сохранность……………………………………………… 267

Горячие, теплые и холодные данные…………………………………………………………………. 267

Сохранность данных…………………………………………………………………………………………… 269

Одноарендные и мультиарендные системы хранения данных………………………………… 270

С кем вам предстоит работать……………………………………………………………………………………………….. 272

Фоновые процессы…………………………………………………………………………………………………………………… 272

Безопасность…………………………………………………………………………………………………………………. 272

Управление данными…………………………………………………………………………………………………… 273

Каталоги данных и управление метаданными…………………………………………………. 273

Версии данных в объектном хранилище……………………………………………………………. 273

Конфиденциальность…………………………………………………………………………………………… 273

DataOps………………………………………………………………………………………………………………………….. 274

Мониторинг систем……………………………………………………………………………………………… 274

Наблюдаемость и мониторинг данных……………………………………………………………… 274

Архитектура данных……………………………………………………………………………………………………. 274

Оркестровка………………………………………………………………………………………………………………….. 275

Программная инженерия……………………………………………………………………………………………… 275

Заключение………………………………………………………………………………………………………………………………. 275

Дополнительные ресурсы……………………………………………………………………………………………………….. 275

Глава 7. Поглощение данных………………………………………………………………. 277

Что такое поглощение данных?……………………………………………………………………………………………… 277

Ключевые инженерные особенности фазы поглощения………………………………………………………. 279

Ограниченность и неограниченность данных…………………………………………………………… 279

Частота………………………………………………………………………………………………………………………….. 280

Синхронное и асинхронное поглощение……………………………………………………………………. 282

Сериализация и десериализация………………………………………………………………………………… 283

Пропускная способность и масштабируемость………………………………………………………… 283

Надежность и устойчивость………………………………………………………………………………………… 284

Полезная нагрузка………………………………………………………………………………………………………… 285

Род…………………………………………………………………………………………………………………………. 285

Форма……………………………………………………………………………………………………………………. 285

Размер……………………………………………………………………………………………………………………. 286

Схема и типы данных………………………………………………………………………………………….. 286

Метаданные………………………………………………………………………………………………………….. 287

Модели Push, Pull и Poll………………………………………………………………………………………………… 288

Особенности пакетного поглощения данных……………………………………………………………………….. 289

Мгновенные снимки или дифференциальное извлечение…………………………………………. 290

Экспорт и поглощение данных на основе файлов…………………………………………………….. 290

ETL в сравнении с ELT…………………………………………………………………………………………………. 290

Вставки, обновления и размер пакета………………………………………………………………………… 291

Миграция данных…………………………………………………………………………………………………………. 291

Особенности поглощения сообщений и потоков………………………………………………………………….. 292

Эволюция схем……………………………………………………………………………………………………………… 292

Данные, поступающие с задержкой……………………………………………………………………………. 292

Порядок и многократная доставка……………………………………………………………………………… 293

Воспроизведение………………………………………………………………………………………………………….. 293

Время жизни………………………………………………………………………………………………………………….. 293

Размер сообщения………………………………………………………………………………………………………… 294

Обработка ошибок и очереди недоставленных сообщений…………………………………….. 294

Pull и Push для потребителей……………………………………………………………………………………….. 294

Местоположение………………………………………………………………………………………………………….. 295

Способы поглощения данных………………………………………………………………………………………………… 295

Прямое подключение к базе данных…………………………………………………………………………… 295

Захват изменения данных……………………………………………………………………………………………. 297

Пакетно-ориентированный CDC………………………………………………………………………… 297

Непрерывный CDC………………………………………………………………………………………………. 297

CDC и репликация баз данных……………………………………………………………………………. 298

Особенности CDC………………………………………………………………………………………………… 298

API………………………………………………………………………………………………………………………………….. 299

Очереди сообщений и платформы потоковой передачи событий…………………………… 300

Управляемые коннекторы данных……………………………………………………………………………… 301

Перемещение данных с помощью объектного хранилища………………………………………. 302

EDI…………………………………………………………………………………………………………………………………. 302

Базы данных и экспорт файлов…………………………………………………………………………………… 302

Практические вопросы, связанные с распространенными форматами файлов……… 303

Оболочка……………………………………………………………………………………………………………………….. 304

SSH…………………………………………………………………………………………………………………………………. 304

SFTP и SCP…………………………………………………………………………………………………………………….. 305

Веб-хуки………………………………………………………………………………………………………………………… 305

Веб-интерфейс………………………………………………………………………………………………………………. 306

Веб-скрейпинг……………………………………………………………………………………………………………….. 306

Устройства переноса для миграции данных……………………………………………………………… 307

Совместное использование данных……………………………………………………………………………. 308

С кем вам предстоит работать……………………………………………………………………………………………….. 308

Заинтересованные стороны выше по потоку обработки………………………………………….. 308

Заинтересованные стороны ниже по потоку обработки………………………………………….. 309

Фоновые процессы…………………………………………………………………………………………………………………… 309

Безопасность…………………………………………………………………………………………………………………. 310

Управление данными…………………………………………………………………………………………………… 310

Изменения схемы………………………………………………………………………………………………….. 310

Этика работы с данными, конфиденциальность и соответствие
нормативным требованиям…………………………………………………………………………………. 311

DataOps………………………………………………………………………………………………………………………….. 312

Проверка качества данных…………………………………………………………………………………. 313

Оркестровка………………………………………………………………………………………………………………….. 314

Программная инженерия……………………………………………………………………………………………… 315

Заключение………………………………………………………………………………………………………………………………. 315

Дополнительные ресурсы……………………………………………………………………………………………………….. 316

Глава 8. Запросы, моделирование и преобразование……………………………. 317

Запросы…………………………………………………………………………………………………………………………………….. 318

Что такое запрос?…………………………………………………………………………………………………………. 318

DDL. Язык описания данных………………………………………………………………………………. 319

DML. Язык манипулирования данными…………………………………………………………….. 319

DCL. Язык управления данными………………………………………………………………………… 319

TCL. Язык управления транзакциями………………………………………………………………… 320

Жизненный цикл запроса…………………………………………………………………………………………….. 320

Оптимизатор запросов…………………………………………………………………………………………………. 321

Повышение производительности запросов………………………………………………………………… 321

Оптимизируйте стратегию и схему соединения………………………………………………… 321

Планируйте выполнение и разберитесь в производительности запроса………… 323

Избегайте полного сканирования таблиц………………………………………………………….. 323

Изучите, как ваша база данных обрабатывает фиксации……………………………….. 324

Очистите базу данных от «мертвых» записей…………………………………………………… 326

Кешируйте результаты запросов……………………………………………………………………….. 327

Запросы к потоковым данным…………………………………………………………………………………….. 327

Основные шаблоны запросов к потокам……………………………………………………………. 328

Окна, триггеры, выдаваемая статистика и данные,
поступающие с задержкой………………………………………………………………………………….. 329

Объединение потоков с другими данными………………………………………………………… 332

Моделирование данных………………………………………………………………………………………………………….. 334

Что такое модель данных?…………………………………………………………………………………………… 335

Концептуальная, логическая и физическая модели данных…………………………………….. 336

Нормализация………………………………………………………………………………………………………………. 337

Методы моделирования пакетных аналитических данных…………………………………….. 341

Подход Инмона…………………………………………………………………………………………………….. 341

Подход Кимбалла………………………………………………………………………………………………… 344

Модель Data Vault……………………………………………………………………………………………….. 348

Широкие денормализованные таблицы…………………………………………………………….. 352

Моделирование потоковых данных…………………………………………………………………………… 354

Преобразования……………………………………………………………………………………………………………………….. 356

Пакетные преобразования…………………………………………………………………………………………… 357

Распределенные соединения……………………………………………………………………………….. 357

ETL, ELT и конвейеры обработки данных…………………………………………………………. 359

Средства преобразования на основе SQL и кода……………………………………………… 360

Шаблоны обновлений………………………………………………………………………………………….. 363

Изменения схемы………………………………………………………………………………………………….. 366

Выпас данных………………………………………………………………………………………………………. 367

Пример: Преобразование данных в Spark…………………………………………………………. 368

Бизнес-логика и производные данные……………………………………………………………….. 368

Модель MapReduce……………………………………………………………………………………………… 370

После MapReduce………………………………………………………………………………………………… 371

Материализованные представления, федерация и виртуализация запросов…………. 372

Представления……………………………………………………………………………………………………… 372

Материализованные представления………………………………………………………………….. 372

Составные материализованные представления……………………………………………….. 373

Федеративные запросы……………………………………………………………………………………….. 373

Виртуализация данных……………………………………………………………………………………….. 374

Потоковые преобразования и обработка…………………………………………………………………… 375

Основы…………………………………………………………………………………………………………………… 375

Преобразования и запросы представляют собой континуум………………………….. 376

Потоковые DAG……………………………………………………………………………………………………. 376

Микропакетный и истинно потоковый подходы………………………………………………. 377

С кем вам предстоит работать……………………………………………………………………………………………….. 378

Заинтересованные стороны выше по потоку обработки………………………………………….. 378

Заинтересованные стороны ниже по потоку обработки………………………………………….. 379

Фоновые процессы…………………………………………………………………………………………………………………… 379

Безопасность…………………………………………………………………………………………………………………. 379

Управление данными…………………………………………………………………………………………………… 380

DataOps………………………………………………………………………………………………………………………….. 381

Архитектура данных……………………………………………………………………………………………………. 381

Оркестровка………………………………………………………………………………………………………………….. 382

Программная инженерия……………………………………………………………………………………………… 382

Заключение………………………………………………………………………………………………………………………………. 383

Дополнительные ресурсы……………………………………………………………………………………………………….. 384

Глава 9. Предоставление данных для аналитики, машинного обучения и обратного ETL         386

Общие рекомендации по предоставлению данных………………………………………………………………. 387

Доверие………………………………………………………………………………………………………………………….. 387

Каков сценарий использования и кто будет пользователем?…………………………………… 388

Информационные продукты………………………………………………………………………………………… 389

Самостоятельная работа или нет?……………………………………………………………………………… 390

Описание данных и логика………………………………………………………………………………………….. 392

Сеть данных………………………………………………………………………………………………………………….. 393

Аналитика………………………………………………………………………………………………………………………………… 393

Бизнес-аналитика…………………………………………………………………………………………………………. 394

Операционная аналитика……………………………………………………………………………………………. 396

Встроенная аналитика…………………………………………………………………………………………………. 398

Машинное обучение……………………………………………………………………………………………………………….. 399

Что должен знать инженер данных о машинном обучении…………………………………………………. 400

Способы предоставления данных для аналитики и машинного обучения………………………… 401

Обмен файлами…………………………………………………………………………………………………………….. 402

Базы данных…………………………………………………………………………………………………………………. 403

Потоковые системы………………………………………………………………………………………………………. 404

Федеративные запросы………………………………………………………………………………………………… 404

Совместное использование данных……………………………………………………………………………. 405

Семантические и метрические слои……………………………………………………………………………. 406

Предоставление данных в блокнотах………………………………………………………………………… 407

Обратный ETL………………………………………………………………………………………………………………………….. 409

С кем вам предстоит работать……………………………………………………………………………………………….. 411

Фоновые процессы…………………………………………………………………………………………………………………… 412

Безопасность…………………………………………………………………………………………………………………. 412

Управление данными…………………………………………………………………………………………………… 413

DataOps………………………………………………………………………………………………………………………….. 414

Архитектура данных……………………………………………………………………………………………………. 415

Оркестровка………………………………………………………………………………………………………………….. 415

Программная инженерия……………………………………………………………………………………………… 416

Заключение………………………………………………………………………………………………………………………………. 416

Дополнительные ресурсы……………………………………………………………………………………………………….. 417

Часть III. Безопасность, конфиденциальность
и будущее инженерии данных……………………………………………….. 419

Глава 10. Безопасность и конфиденциальность……………………………………. 421

Люди…………………………………………………………………………………………………………………………………………. 422

Сила негативного мышления………………………………………………………………………………………. 422

Всегда будьте параноиками………………………………………………………………………………………… 423

Процессы………………………………………………………………………………………………………………………………….. 423

Театр безопасности или привычки соблюдения безопасности……………………………….. 423

Активная безопасность………………………………………………………………………………………………… 424

Принцип наименьших привилегий………………………………………………………………………………. 424

Разделение ответственности в облаке………………………………………………………………………… 425

Всегда создавайте резервные копии данных…………………………………………………………….. 425

Пример политики безопасности………………………………………………………………………………….. 425

Технологии……………………………………………………………………………………………………………………………….. 427

Системы исправлений и обновлений………………………………………………………………………….. 427

Шифрование………………………………………………………………………………………………………………….. 427

Шифрование в состоянии покоя………………………………………………………………………….. 427

Шифрование при передаче по сети…………………………………………………………………….. 427

Ведение журнала, мониторинг и оповещение……………………………………………………………. 428

Доступ к сети………………………………………………………………………………………………………………… 429

Безопасность при низкоуровневой инженерии данных……………………………………………. 430

Исследование вопросов внутренней безопасности…………………………………………… 430

Заключение………………………………………………………………………………………………………………………………. 431

Дополнительные ресурсы……………………………………………………………………………………………………….. 431

Глава 11. Будущее инженерии данных…………………………………………………. 432

Жизненный цикл инженерии данных никуда не денется……………………………………………………… 432

Снижение сложности и подъем простых в использовании инструментов обработки данных 433

Облачная ОС данных и улучшение взаимодействия……………………………………………………………. 434

«Корпоративная» инженерия данных……………………………………………………………………………………. 436

Названия и обязанности будут меняться………………………………………………………………………………. 437

Переход от современного стека данных к потоковому………………………………………………………… 438

Потоковый стек данных……………………………………………………………………………………………….. 439

Потоковые конвейеры и аналитические базы данных реального времени…………….. 439

Объединение данных и приложений…………………………………………………………………………… 441

Сильная обратная связь между приложениями и машинным обучением……………….. 441

Темная материя в сфере данных и восход… электронных таблиц?!………………………… 442

Заключение………………………………………………………………………………………………………………………………. 442

Приложение А. Технические детали сериализации и сжатия……………….. 444

Форматы сериализации…………………………………………………………………………………………………………… 444

Сериализация на основе строк……………………………………………………………………………………. 444

CSV: Нестандартный стандарт………………………………………………………………………….. 444

XML……………………………………………………………………………………………………………………….. 445

JSON и JSONL……………………………………………………………………………………………………….. 445

Avro……………………………………………………………………………………………………………………….. 445

Сериализация столбцов……………………………………………………………………………………………….. 445

Parquet…………………………………………………………………………………………………………………… 446

ORC……………………………………………………………………………………………………………………….. 447

Apache Arrow или сериализация в памяти…………………………………………………………. 447

Гибридная сериализация…………………………………………………………………………………………….. 448

Hudi……………………………………………………………………………………………………………………….. 448

Iceberg……………………………………………………………………………………………………………………. 449

Подсистема хранения базы данных………………………………………………………………………………………. 449

Сжатие: gzip, bzip2, Snappy и т. д…………………………………………………………………………………………… 449

Приложение Б. Облачные сети…………………………………………………………….. 451

Топология облачных сетей…………………………………………………………………………………………………….. 451

Плата за извлечение данных……………………………………………………………………………………….. 451

Зоны доступности………………………………………………………………………………………………………… 451

Регионы………………………………………………………………………………………………………………………….. 452

Специфические для GCP сети и мультирегиональное резервирование…………………… 453

Прямые сетевые подключения к облачным сервисам……………………………………………….. 454

CDN…………………………………………………………………………………………………………………………………………… 454

Будущее платы за извлечение данных………………………………………………………………………………….. 454

Предметный указатель…………………………………………………………………………. 456

Об авторах……………………………………………………………………………………………. 462

Об изображении на обложке………………………………………………………………… 463

Джо Рис

Джо Рис (Joe Reis) — специалист по инженерии и архитектуре данных для enterprise-задач

 

 

Мэтт Хоусли

Мэтт Хоусли (Matt Housley) — консультант по инженерии данных и облачным технологиям

Добавить комментарий