Descripción
La ingeniería de datos ha crecido rápidamente en la última década. Esto ha ocasionado que muchos ingenieros de software, científicos de datos y analistas se hayan quedado estancados y busquen conseguir una visión completa de esta materia. Si quiere estar a la última y desea aprender a planificar y desarrollar sistemas para satisfacer las necesidades de su organización y las de sus clientes, este es el libro indicado. En él se explica cómo evaluar las mejores tecnologías disponibles a través del ciclo de vida del framework de la ingeniería de datos.
Los autores Joe Reis y Matt Housley detallan, en este libro, el ciclo de vida de la ingeniería de datos y muestran cómo unir una variedad de tecnologías en la nube para satisfacer las necesidades de los procesos consumidores de datos que se encuentran en las fases posteriores al ciclo de vida de la ingeniería de datos.
Gracias a esta lectura, entenderá cómo aplicar los conceptos de generación de datos, ingestión, orquestación, transformación, almacenamiento y gobernanza, que son críticos en cualquier entorno de datos, independientemente de la tecnología subyacente. Asimismo, con este libro:
‘ Obtendrá una visión concisa de todo el panorama de la ingeniería de datos
‘ Evaluará los problemas de ingeniería de datos mediante el uso integral de las mejores prácticas
‘ Sabrá elegir el conjunto más adecuado de tecnologías, arquitecturas y procesos de datos
‘ Utilizará el ciclo de vida de la ingeniería de datos para diseñar y desarrollar una arquitectura sólida
‘ Incorporará la gobernanza y la seguridad de los datos en todo el ciclo de vida de la ingeniería de datos
Joe Reis es un ‘científico en recuperación de datos’, ingeniero y arquitecto de datos.
Matt Housley es consultor de ingeniería de datos y especialista en la nube.
‘Desde hace tiempo, el mundo de los datos se encuentra en permanente evolución. Primero fueron los diseñadores. Después, los administradores de bases de datos. Luego, los CIO. A continuación, los arquitectos de datos. Este libro señala el siguiente paso en la evolución y madurez del sector. Es una lectura obligada para cualquiera que sea honesto con su profesión y su carrera’
-Bill Inmon
Creador del data warehouse
‘Fundamentos de la ingeniería de datos es una gran introducción a las actividades de mover, procesar y manejar datos. Explica la taxonomía de los conceptos de datos, sin centrarse demasiado en herramientas o en proveedores individuales, por lo que las técnicas e ideas deberían perdurar más que cualquier tendencia o producto individual. Lo recomiendo con vehemencia a cualquiera que quiera ponerse al día en ingeniería de datos o en analítica, o a los profesionales de hoy que quieran cubrir las lagunas que tengan en cuanto a su comprensión’
-Jordan Tigani
fundador y CEO de MotherDuck,
e ingeniero fundador y
Cocreador de BigQuery
Índice
Prefacio .................................................................................................................. xiii
Parte I. Fundamentos y componentes
1. Descripción de la ingeniería de datos ............................................................... 3
¿Qué es la ingeniería de datos? ................................................................... 3
Definición de ingeniería de datos ............................................................... 4
Ciclo de vida de la ingeniería de datos ...................................................... 5
Evolución del ingeniero de datos ............................................................... 6
Ingeniería de datos y ciencia de datos ..................................................... 12
Habilidades y actividades de la ingeniería de datos ................................... 13
La madurez de los datos y el ingeniero de datos .................................... 14
Formación y habilidades del ingeniero de datos ...................................... 18
Responsabilidades empresariales ........................................................... 19
Responsabilidades técnicas..................................................................... 20
El progreso de las funciones de la ingeniería de datos,
de la A a la B ...................................................................................... 23
Ingenieros de datos de la organización ...................................................... 24
Ingenieros de datos de cara a la organización y de cara al exterior ....... 24
Ingenieros de datos y otros roles técnicos ............................................... 26
Ingenieros de datos y liderazgo empresarial ........................................... 30
Conclusión .................................................................................................. 34
Recursos adicionales ................................................................................. 34
2. Ciclo de vida de la ingeniería de datos ........................................................... 37
¿Qué es el ciclo de vida de la ingeniería de datos? ................................... 37
El ciclo de vida de los datos frente al ciclo de vida
de la ingeniería de datos .......................................................................... 38
Generación: sistemas fuente ................................................................... 39
Almacenamiento ....................................................................................... 42
Ingestión ................................................................................................... 44
Transformación ........................................................................................ 48
Servicio de datos ...................................................................................... 49
Principales undercurrents en el ciclo de vida de la ingeniería de datos ..... 54
Seguridad ................................................................................................. 55
Gestión de datos ...................................................................................... 56
Operaciones de datos .............................................................................. 66
Arquitectura de datos ............................................................................... 71
Orquestación ............................................................................................ 72
Ingeniería de software .............................................................................. 74
Conclusión .................................................................................................. 76
Recursos adicionales ................................................................................. 77
3. Diseño de la buena arquitectura de datos ...................................................... 79
¿Qué es la arquitectura de datos? ............................................................. 79
Definición de arquitectura empresarial ..................................................... 79
Definición de arquitectura de datos .......................................................... 83
La «buena» arquitectura de datos ........................................................... 84
Principios de la buena arquitectura de datos .............................................. 85
Principio 1: elegir bien los componentes comunes .................................. 86
Principio 2: planificar para el fracaso ....................................................... 87
Principio 3: ser arquitecto de la escalabilidad .......................................... 88
Principio 4: la arquitectura es liderazgo ................................................... 89
Principio 5: hay que ser siempre arquitecto ............................................. 90
Principio 6: desarrollar sistemas poco acoplados .................................... 90
Principio 7: adoptar decisiones reversibles .............................................. 92
Principio 8: dar prioridad a la seguridad ................................................... 92
Principio 9: adoptar FinOps .......................................................................... 94
Principales conceptos de arquitectura ........................................................ 96
Dominios y servicios ................................................................................. 96
Sistemas distribuidos, escalabilidad y diseño para el fracaso ................. 98
Acoplamiento fuerte frente a acoplamiento débil: niveles,
monolitos y microservicios ....................................................................... 99
Acceso de usuarios: un usuario frente a varios usuarios ...................... 105
Arquitectura basada en eventos ............................................................ 105
Proyectos Brownfield frente a Greenfield............................................... 106
Ejemplos y tipos de arquitecturas de datos .............................................. 108
Almacén de datos ................................................................................... 108
Lagos de datos ....................................................................................... 112
Convergencia, lagos de datos de próxima generación y
plataforma de datos ................................................................................ 114
Pila de datos moderna ........................................................................... 114
Arquitectura Lambda .............................................................................. 115
Arquitectura Kappa ................................................................................. 116
El modelo Dataflow y la unificación de lotes y streaming ..................... 117
Arquitectura para Internet de las cosas ................................................. 118
Malla de datos ........................................................................................ 121
Otros ejemplos de arquitectura de datos ............................................... 122
¿Quién participa en el diseño de la arquitectura de datos? ...................... 123
Conclusión ................................................................................................ 123
Recursos adicionales ............................................................................... 123
4. Elección de las tecnologías en todo el ciclo de vida
de la ingeniería de datos ................................................................................ 129
Tamaño y capacidades del equipo ........................................................... 130
Velocidad de comercialización ................................................................. 131
Interoperabilidad ....................................................................................... 131
Optimización de costes y valor empresarial ............................................. 132
Coste total de propiedad ........................................................................ 132
Coste total de oportunidad de la propiedad ........................................... 133
FinOps .................................................................................................... 134
El presente frente al futuro: tecnologías inmutables
frente a transitorias ................................................................................... 135
Nuestros consejos .................................................................................. 137
Ubicación .................................................................................................. 137
Ubicación en las instalaciones ............................................................... 137
Ubicación en la nube .............................................................................. 138
Ubicación en la nube híbrida.................................................................. 142
Ubicación en la multinube ...................................................................... 143
Ubicación descentralizada: blockchain y computación de borde ......... 144
Nuestros consejos .................................................................................. 145
Argumentos para la repatriación de la nube .......................................... 146
Crear frente a comprar ............................................................................. 148
Software de código abierto .................................................................... 149
Jardines amurallados en propiedad ....................................................... 153
Nuestros consejos .................................................................................. 155
Sistema monolítico frente a sistema modular ........................................... 155
El monolito .............................................................................................. 156
Modularidad............................................................................................ 157
Patrón de monolito distribuido................................................................ 158
Nuestros consejos .................................................................................. 159
Sin servidores o con servidores ................................................................ 159
Sin servidores ......................................................................................... 160
Contenedores ......................................................................................... 161
Cómo evaluar la tecnología de servidores frente a
la de sin servidores ................................................................................ 162
Nuestros consejos .................................................................................. 163
Optimización, rendimiento y los conflictos de análisis de rendimiento ..... 164
Big Data... de los años 90 ...................................................................... 165
Comparaciones absurdas de costes ...................................................... 166
Optimización asimétrica ......................................................................... 166
Advertencia a los interesados ................................................................ 166
Los undercurrents y su impacto en la elección de las tecnologías ........... 166
Gestión de datos .................................................................................... 167
Operaciones de datos (DataOps) .......................................................... 167
Arquitectura de datos ............................................................................. 168
Ejemplo de orquestación: Airflow .......................................................... 168
Ingeniería de software ............................................................................ 169
Conclusión ................................................................................................ 169
Recursos adicionales ............................................................................... 170
Parte II. El ciclo de vida de la ingeniería de datos en profundidad
5. Generación de datos en los sistemas fuente ............................................... 173
Fuentes de datos: ¿cómo se crean los datos? ........................................ 174
Sistemas fuente: ideas principales ........................................................... 174
Archivos y datos no estructurados ......................................................... 174
API .......................................................................................................... 175
Base de datos de la aplicación (sistemas OLTP) .................................. 175
Sistema de procesamiento analítico en línea ........................................ 177
Captura de datos de cambios ................................................................ 178
Registros ................................................................................................ 178
Registros de la base de datos................................................................ 180
CRUD ..................................................................................................... 180
Patrón de solo inserción ......................................................................... 181
Mensajes y flujos .................................................................................... 182
Tipos de tiempos .................................................................................... 183
Detalles prácticos de los sistemas fuente ................................................. 184
Bases de datos ....................................................................................... 184
API .......................................................................................................... 194
Intercambio de datos .............................................................................. 196
Fuentes de datos de terceros ................................................................ 197
Colas de mensajes y plataformas de streaming de eventos ................. 198
Con quién trabajará .................................................................................. 202
Los undercurrents y su impacto en los sistemas fuente .......................... 204
Seguridad ............................................................................................... 204
Gestión de datos .................................................................................... 204
Operaciones de datos (DataOps) .......................................................... 205
Arquitectura de datos ............................................................................. 206
Orquestación .......................................................................................... 207
Ingeniería de software ............................................................................ 208
Conclusión ................................................................................................ 209
Recursos adicionales ............................................................................... 209
6. Almacenamiento ............................................................................................. 211
Ingredientes básicos del almacenamiento de datos ................................. 213
Unidad de disco magnético .................................................................... 213
Unidad de estado sólido ......................................................................... 215
Memoria de acceso aleatorio ................................................................. 216
Red y CPU ............................................................................................. 218
Serialización ........................................................................................... 218
Compresión ............................................................................................ 219
Almacenamiento en caché ..................................................................... 220
Sistemas de almacenamiento de datos .................................................... 221
Almacenamiento en una sola máquina frente
al almacenamiento distribuido ................................................................ 221
Consistencia eventual frente a consistencia fuerte ................................ 222
Almacenamiento de archivos ................................................................. 223
Almacenamiento en bloques .................................................................. 225
Almacenamiento de objetos ................................................................... 230
Sistemas de almacenamiento basados en caché y memoria ................ 236
Sistema de archivos distribuidos Hadoop .............................................. 237
Almacenamiento de streaming ............................................................... 238
Índices, particiones y clustering ............................................................. 238
Abstracciones de almacenamiento en ingeniería de datos ...................... 241
Almacén de datos ................................................................................... 241
Lago de datos ......................................................................................... 242
Data lakehouse ...................................................................................... 242
Plataformas de datos ............................................................................. 243
Arquitectura de almacenamiento de streaming a lotes .......................... 244
Grandes ideas y tendencias en materia de almacenamiento .................. 244
Catálogo de datos .................................................................................. 244
Intercambio de datos .............................................................................. 245
Esquema ................................................................................................ 246
Separación del cómputo del almacenamiento ...................................... 247
Ciclo de vida del almacenamiento de datos y retención de datos ......... 250
Almacenamiento de un solo cliente frente al de multicliente ................. 254
Con quién trabajará .................................................................................. 255
Undercurrents ........................................................................................... 256
Seguridad ............................................................................................... 256
Gestión de datos .................................................................................... 256
Operaciones de datos (DataOps) .......................................................... 257
Arquitectura de datos ............................................................................. 258
Orquestación .......................................................................................... 258
Ingeniería de software ..................................................................................... 258
Conclusión ................................................................................................ 259
Recursos adicionales ............................................................................... 259
7. Ingestión .......................................................................................................... 261
¿Qué es la ingestión de datos? ................................................................ 261
Consideraciones clave de ingeniería para la fase de ingestión ................ 263
Datos acotados frente a datos no acotados .......................................... 264
Frecuencia.............................................................................................. 265
Ingestión síncrona frente a asíncrona .................................................... 266
Serialización y deserialización ............................................................... 267
Tasa de transferencia efectiva y escalabilidad ...................................... 268
Fiabilidad y durabilidad .......................................................................... 268
Carga útil ................................................................................................ 269
Patrones push frente a pull frente a sondeo .......................................... 272
Consideraciones sobre la ingestión por lotes ........................................... 273
Extracción instantánea o diferencial ...................................................... 274
Exportación e ingestión basadas en archivos ........................................ 274
ETL frente a ELT .................................................................................... 275
Inserciones, actualizaciones y tamaño de los lotes .............................. 275
Migración de datos ................................................................................. 276
Consideraciones sobre la ingestión de mensajes y flujos ........................ 276
Evolución del esquema .......................................................................... 277
Datos tardíos .......................................................................................... 277
Pedidos y entregas múltiples ................................................................. 277
Repetición .............................................................................................. 278
Tiempo de vida ....................................................................................... 278
Tamaño del mensaje .............................................................................. 278
Tratamiento de errores y colas de letras muertas ................................. 279
Push y pull del consumidor .................................................................... 279
Ubicación................................................................................................ 279
Formas de ingestión de datos .................................................................. 280
Conexión directa a la base de datos ...................................................... 280
Captura de datos de cambios ................................................................ 281
API .......................................................................................................... 284
Colas de mensajes y plataformas de streaming de eventos ................. 285
Conectores de datos gestionados .......................................................... 286
Movimiento de datos en el almacenamiento de objetos ........................ 286
EDI.......................................................................................................... 287
Bases de datos y exportación de archivos ............................................ 287
Problemas prácticos con los formatos de archivo más habituales ........ 288
Shell ....................................................................................................... 288
SSH ........................................................................................................ 289
SFTP y SCP ........................................................................................... 289
Webhooks .............................................................................................. 290
Interfaz web ............................................................................................ 290
Raspado web ......................................................................................... 291
Dispositivos de transferencia para la migración de datos ..................... 292
Intercambio de datos .............................................................................. 292
Con quién trabajará .................................................................................. 293
Partes interesadas de las fases anteriores del proceso ........................ 293
Partes interesadas de las fases posteriores del proceso ...................... 294
Undercurrents ........................................................................................... 294
Seguridad ............................................................................................... 294
Gestión de datos .................................................................................... 295
Operaciones de datos (DataOps) .......................................................... 297
Orquestación .......................................................................................... 299
Ingeniería de software ............................................................................ 299
Conclusión ................................................................................................ 300
Recursos adicionales ............................................................................... 300
8. Consultas, modelización y transformación .................................................. 301
Consultas.................................................................................................. 302
¿Qué es una consulta? .......................................................................... 302
Vida de la consulta ................................................................................. 304
Optimizador de consultas ....................................................................... 305
Mejora del rendimiento de las consultas ................................................ 305
Consultas sobre datos de streaming ...................................................... 312
Modelado de datos ................................................................................... 318
¿Qué es el modelo de datos? ................................................................ 319
Modelos de datos conceptuales, lógicos y físicos ................................. 320
Normalización ......................................................................................... 321
Técnicas de modelización de datos analíticos por lotes ....................... 325
Modelado de datos de streaming ........................................................... 340
Transformaciones ..................................................................................... 341
Transformaciones por lotes .................................................................... 342
Vistas materializadas, federación y virtualización de consultas ............ 357
Transformaciones y procesamiento de streaming ................................. 360
Con quién trabajará .................................................................................. 364
Partes interesadas de las fases anteriores del proceso ....................... 364
Partes interesadas de la cadena de suministro ..................................... 364
Undercurrents ........................................................................................... 365
Seguridad ............................................................................................... 365
Gestión de datos .................................................................................... 365
Operaciones de datos (DataOps) .......................................................... 366
Arquitectura de datos ............................................................................. 367
Orquestación .......................................................................................... 368
Ingeniería de software ............................................................................ 368
Conclusión ................................................................................................ 369
Recursos adicionales ............................................................................... 370
9. Servicio de datos para analítica, machine learning y ETL inversa ............. 373
Consideraciones generales para el servicio de datos .............................. 374
Confianza ............................................................................................... 374
¿Cuál es el caso de uso y quién es el usuario? .................................... 375
Productos de datos ................................................................................ 376
¿Autoservicio o no? ................................................................................ 377
Definiciones de datos y lógica ................................................................ 379
Malla de datos ........................................................................................ 380
Analítica .................................................................................................... 380
Analítica empresarial .............................................................................. 380
Analítica operativa .................................................................................. 382
Analítica integrada .................................................................................. 385
Machine learning ...................................................................................... 386
Lo que el ingeniero de datos debe saber sobre ML .................................. 387
Formas del servicio de datos para analítica y ML .................................... 388
Intercambio de archivos ......................................................................... 389
Bases de datos ....................................................................................... 390
Sistemas de streaming ........................................................................... 391
Federación de Consultas ....................................................................... 391
Intercambio de datos .............................................................................. 392
Capas semánticas y métricas ................................................................ 393
Servicio de datos de notebooks ............................................................. 394
ETL inversa .............................................................................................. 396
Con quién trabajará .................................................................................. 398
Undercurrents ........................................................................................... 399
Seguridad ............................................................................................... 399
Gestión de datos .................................................................................... 400
Operaciones de datos (DataOps) .......................................................... 401
Arquitectura de datos ............................................................................. 401
Orquestación .......................................................................................... 402
Ingeniería de software ............................................................................ 403
Conclusión ................................................................................................ 403
Recursos adicionales ............................................................................... 404
Parte III. Seguridad, privacidad y el futuro de la ingeniería de datos
10. Seguridad y privacidad ................................................................................... 409
Las personas ............................................................................................ 410
El poder del pensamiento negativo ........................................................ 410
Sea siempre precavido .......................................................................... 411
Procesos................................................................................................... 411
El teatro de la seguridad frente al hábito de la seguridad .................... 411
Seguridad activa ..................................................................................... 412
Principio del mínimo privilegio ................................................................ 412
Responsabilidad compartida en la nube ............................................... 413
Haga siempre una copia de seguridad de sus datos ............................. 413
Ejemplo de política de seguridad ........................................................... 413
Tecnología ................................................................................................ 415
Sistemas de parcheo y actualización ..................................................... 415
Cifrado .................................................................................................... 415
Registro, monitorización y alertas .......................................................... 416
Acceso a la red ....................................................................................... 417
Seguridad para la ingeniería de datos de bajo nivel .............................. 418
Conclusión ................................................................................................ 419
Recursos adicionales ............................................................................... 419
11. El futuro de la ingeniería de datos ................................................................. 421
El ciclo de vida de la ingeniería de datos no va a desaparecer ............... 421
Declive de la complejidad y auge de las herramientas
de datos fáciles de usar ............................................................................ 422
Sistema operativo de datos a escala de la nube y
mejora de la interoperabilidad .................................................................. 423
Ingeniería de datos «empresarial» ........................................................... 425
Las titulaciones y las responsabilidades se transformarán… ................... 426
Más allá de la pila de datos moderna, hacia la pila de datos vivos ......... 427
Pila de datos en vivo .............................................................................. 428
Pipelines de streaming y bases de datos analíticas
en tiempo real ......................................................................................... 428
Fusión de datos con aplicaciones .......................................................... 430
Retroalimentación fuerte entre aplicaciones y ML ................................ 430
Los datos de la materia oscura y
el auge de... ¿las hojas de cálculo? ....................................................... 430
Conclusión ................................................................................................ 431
12. Detalles técnicos de serialización y compresión. ........................................ 433
13. Redes en la nube ............................................................................................ 441