Saltar al contenido principal
Diseño de Aplicaciones Mediante el Uso Intensivo de Datos

Diseño de Aplicaciones Mediante el Uso Intensivo de Datos

Martin Kleppmann

Los datos están en el centro de muchos desafíos que se presentan actualmente en el diseño de sistemas. Hay que resolver cuestiones complejas, como la escalabilidad, la coherencia, la fiabilidad, la eficiencia y el mantenimiento. Además, existe una abrumadora variedad de herramientas, incluyendo bases de datos relacionales, almacenes de datos NoSQL, procesadores de flujo o p...

Editorial:
Marcombo, S. a.
Año de edición:
2022
ISBN:
978-84-267-3467-9
Páginas:
99
44,00 €
IVA incluido
Añadir a favoritos

Sinopsis

Los datos están en el centro de muchos desafíos que se presentan actualmente en el diseño de sistemas. Hay que resolver cuestiones complejas, como la escalabilidad, la coherencia, la fiabilidad, la eficiencia y el mantenimiento. Además, existe una abrumadora variedad de herramientas, incluyendo bases de datos relacionales, almacenes de datos NoSQL, procesadores de flujo o por lotes y gestores de mensajes. ¿Cuáles son las opciones correctas para nuestra aplicación? ¿Cómo podemos entender todos estos conceptos que están de moda?

Índice

Prefacio ........................................................................................................................................................ xi
Parte I. Fundamentos de los sistemas de datos
1. Aplicaciones confiables, escalables y mantenibles .................................................................... 3
Reflexiones sobre los sistemas de datos ............................................................................. 4
Confiabilidad ......................................................................................................................... 6
Fallos de hardware .......................................................................................................... 7
Errores de software ......................................................................................................... 9
Errores humanos ............................................................................................................ 9
¿Cuál es la importancia de la confiabilidad? .............................................................11
Escalabilidad ........................................................................................................................11
Descripción de la carga ................................................................................................11
Descripción del rendimiento ......................................................................................14
Enfoques para hacer frente a la carga ........................................................................18
Mantenimiento ...................................................................................................................20
Operatividad: facilitar la vida a las operaciones .......................................................20
Simplicidad: gestión de la complejidad .....................................................................22
Evolución: facilitar el cambio ......................................................................................23
Resumen ..............................................................................................................................24
Referencias ...........................................................................................................................25
2. Modelos de datos y lenguajes de consulta ................................................................................ 29
El modelo relacional frente al modelo de documentos .................................................30
El nacimiento de NoSQL .............................................................................................31
El desajuste objeto-relacional ......................................................................................32
Relaciones de muchos a uno y muchos a muchos ....................................................35
¿Están las bases de datos de documentos repitiendo la historia? ...........................38
Bases de datos relacionales frente a las de documentos en la actualidad ..............41
Lenguajes de consulta de datos .........................................................................................45
Consultas declarativas en la web .................................................................................47
Consultas de MapReduce ............................................................................................49
Modelos de datos de tipo grafo .........................................................................................52
Grafos de propiedades ..................................................................................................53
Lenguaje de consulta Cypher ......................................................................................55
Consulta de gráficos en SQL .......................................................................................57
Almacenes triples y SPARQL ......................................................................................59
Los fundamentos: Datalog ...........................................................................................63
Resumen ...............................................................................................................................66
Referencias ...........................................................................................................................67
3. Almacenamiento y recuperación ....................................................................................................... 73
Estructuras de datos que potencian la base de datos .....................................................74
Índices hash ...................................................................................................................76
SSTables y árboles LSM ................................................................................................80
Árboles B ........................................................................................................................85
Comparación de los árboles B con los árboles LSM ................................................89
Otras estructuras de indexación .................................................................................91
¿Procesamiento de transacciones o análisis?...................................................................96
Almacén de datos ..........................................................................................................98
Estrellas y copos de nieve: esquemas para el análisis ............................................ 100
Almacenamiento orientado a columnas ....................................................................... 102
Compresión de columnas ......................................................................................... 104
Orden de clasificación en el almacenamiento por columnas .............................. 107
Escritura en el almacenamiento orientado a columnas ........................................ 108
Agregación: cubos de datos y vistas materializadas .............................................. 109
Resumen ............................................................................................................................ 111
Referencias ........................................................................................................................ 112
4. Codificación y evolución .................................................................................................................. 119
Formatos de codificación de datos ................................................................................ 120
Formatos específicos para cada lenguaje ................................................................ 121
JSON, XML y variantes binarias .............................................................................. 122
Thrift y Protocol Buffers ........................................................................................... 125
Avro ............................................................................................................................. 130
Méritos de los esquemas ........................................................................................... 136
Modos de flujo de datos .................................................................................................. 137
Flujo de datos a través de bases de datos ................................................................ 137
Flujo de datos a través de servicios: REST y RPC .................................................. 140
Flujo de datos por paso de mensajes ....................................................................... 146
Resumen ............................................................................................................................ 148
Referencias ........................................................................................................................ 150
Parte II. Datos distribuidos
5. Replicación .................................................................................................................................. 161
Líderes y seguidores ......................................................................................................... 162
Replicación síncrona frente a asíncrona ................................................................. 163
Cómo configurar nuevos seguidores ....................................................................... 165
Gestión de las interrupciones de los nodos ............................................................ 166
Implementación de logs de replicación ................................................................... 169
Problemas de retardo en la replicación ......................................................................... 172
Lectura de nuestras propias escrituras .................................................................... 173
Lecturas monotónicas ............................................................................................... 175
Lecturas de prefijos coherentes ................................................................................ 176
Soluciones para el retardo en la replicación ........................................................... 178
Replicación multilíder ..................................................................................................... 178
Casos de uso de la replicación multilíder ............................................................... 179
Gestión de conflictos de escritura ............................................................................ 182
Topologías de replicación multilíder ...................................................................... 186
Replicación sin líder ........................................................................................................ 188
Escritura en la base de datos cuando un nodo no funciona ................................. 189
Limitaciones de la coherencia del quorum ............................................................. 192
Quorum descuidados y transferencias indirectas .................................................. 195
Detección de escrituras simultáneas ....................................................................... 196
Resumen ............................................................................................................................ 204
Referencias ........................................................................................................................ 206
6. Particionado ................................................................................................................................ 213
Particionado y replicación .............................................................................................. 214
Particionado de datos clave-valor .................................................................................. 215
Particionado por rangos de claves ........................................................................... 216
Particionado por hash de claves ............................................................................... 217
Cargas de trabajo desbalanceadas y mitigación de puntos calientes .................. 219
Particionado e índices secundarios ............................................................................... 220
Particionado de índices secundarios por documento ........................................... 220
Particionado de índices secundarios por término ................................................. 222
Rebalanceo de particiones .............................................................................................. 223
Estrategias de rebalanceo .......................................................................................... 224
Operaciones: rebalanceo automático o manual ..................................................... 227
Enrutamiento de solicitudes ........................................................................................... 228
Ejecución de consultas en paralelo .......................................................................... 230
Resumen ............................................................................................................................ 231
Referencias ........................................................................................................................ 232
7. Transacciones ............................................................................................................................. 237
El resbaladizo concepto de «transacción» .................................................................... 238
El significado de ACID.............................................................................................. 239
Operaciones con un solo objeto y con varios objetos ........................................... 244
Niveles de aislamiento débil ........................................................................................... 249
Lectura confirmada.................................................................................................... 250
Aislamiento de instantáneas y lectura repetitiva ................................................... 253
Cómo evitar que se pierdan las actualizaciones ..................................................... 259
Escritura desviada y fantasmas ................................................................................ 263
Serializabilidad ................................................................................................................. 269
Ejecución en serie ...................................................................................................... 270
Bloqueo en dos fases (2PL) ....................................................................................... 275
Aislamiento de instantáneas serializable (SSI) ....................................................... 279
Resumen ............................................................................................................................ 284
Referencias ........................................................................................................................ 287
8. El problema de los sistemas distribuidos ................................................................................ 293
Fallos y averías parciales ................................................................................................. 294
Computación en la nube y supercomputación ...................................................... 295
Redes poco fiables ............................................................................................................ 298
Fallos de red en la práctica ........................................................................................ 299
Detección de fallos ..................................................................................................... 300
Tiempos de espera y retardos ilimitados ................................................................ 301
Redes síncronas frente a asíncronas ........................................................................ 305
Relojes poco fiables .......................................................................................................... 308
Relojes monotónicos frente a relojes en tiempo real ............................................ 309
Sincronización y precisión del reloj ........................................................................ 310
Confianza en los relojes sincronizados ................................................................... 312
Pausas del proceso ..................................................................................................... 317
Conocimiento, verdades y mentiras .............................................................................. 322
La verdad la define la mayoría ................................................................................. 323
Fallos bizantinos......................................................................................................... 326
Modelos de sistemas y realidad ................................................................................ 329
Resumen ............................................................................................................................ 333
Referencias ........................................................................................................................ 335
9. Coherencia y consenso .............................................................................................................. 345
Garantías de coherencia .................................................................................................. 346
Linealizabilidad ................................................................................................................ 348
¿Qué hace que un sistema sea linealizable? ............................................................ 349
Confianza en la linealizabilidad ............................................................................... 354
Implementación de sistemas linealizables .............................................................. 357
El coste de la linealizabilidad .................................................................................... 360
Garantías del ordenamiento ........................................................................................... 364
Ordenamiento y causalidad ...................................................................................... 364
Ordenamiento por números de secuencia ............................................................. 369
Difusión de orden total ............................................................................................. 373
Transacciones distribuidas y consenso ......................................................................... 378
Confirmación atómica y confirmación en dos fases (2PC) ................................. 380
Transacciones distribuidas en la práctica ............................................................... 386
Consenso tolerante a fallos ....................................................................................... 391
Servicios de afiliación y coordinación ..................................................................... 397
Resumen ............................................................................................................................ 401
Referencias ........................................................................................................................ 403
Parte III. Datos derivados
10. Procesamiento por lotes ......................................................................................................... 417
Procesamiento por lotes con herramientas Unix ........................................................ 419
Análisis de un log sencillo ......................................................................................... 419
La filosofía Unix ........................................................................................................ 422
MapReduce y sistemas de archivos distribuidos ......................................................... 426
Ejecución de trabajos MapReduce ........................................................................... 428
Agrupaciones y uniones de lados reducidos .......................................................... 432
Uniones del lado del mapa ....................................................................................... 438
Resultado de los flujos de trabajo por lotes ............................................................ 441
Comparación de Hadoop con las bases de datos distribuidas ............................. 445
Más allá de MapReduce .................................................................................................. 450
Materialización del estado intermedio .................................................................... 450
Grafos y procesamiento iterativo ............................................................................. 455
API y lenguajes de alto nivel ..................................................................................... 458
Resumen ............................................................................................................................ 461
Referencias ........................................................................................................................ 463
11. Procesamiento de flujos ......................................................................................................... 471
Transmisión de flujos de eventos .................................................................................. 472
Sistemas de mensajería .............................................................................................. 473
Logs particionados ..................................................................................................... 479
Bases de datos y flujos ..................................................................................................... 484
Necesidad de mantener los sistemas sincronizados .............................................. 485
Captura de datos de cambios ................................................................................... 487
Aprovisionamiento de eventos ................................................................................ 490
Estado, flujos e inmutabilidad .................................................................................. 493
Procesamiento de flujos .................................................................................................. 498
Usos del procesamiento de flujos ............................................................................ 499
Razonamiento sobre el tiempo ................................................................................. 503
Uniones de flujos ....................................................................................................... 507
Tolerancia a fallos ...................................................................................................... 511
Resumen ............................................................................................................................ 515
Referencias ........................................................................................................................ 517
12. El futuro de los sistemas de datos ........................................................................................ 525
Integración de datos ........................................................................................................ 525
Combinación de herramientas especializadas
mediante la derivación de datos .............................................................................. 526
Procesamiento por lotes y procesamiento de flujos .............................................. 530
Desagregación de bases de datos ................................................................................... 535
Composición de las tecnologías de almacenamiento de datos ............................ 536
Diseño de aplicaciones en torno al flujo de datos ................................................. 540
Observación del estado derivado ............................................................................. 546
En busca de la corrección ............................................................................................... 552
Argumento de las bases de datos de extremo a extremo ...................................... 553
Aplicación de restricciones ....................................................................................... 558
Puntualidad e integridad .......................................................................................... 562
Confíe, pero verifique ................................................................................................ 567
Hacer lo correcto ............................................................................................................. 571
Análisis predictivo ..................................................................................................... 572
Privacidad y seguimiento .......................................................................................... 576
Resumen ............................................................................................................................ 583
Referencias ........................................................................................................................ 585
Glosario .............................................................................................................................................. 593

Artículos relacionados

Leonor Borbón Ortiz

Leonor Borbón Ortiz

Calero, Angie

¿Quién es realmente Leonor de Borbón Ortiz?Más allá de las fotografías oficiales, los discursos y los actos institucionales, existe una historia poco conocida: la de una joven que ha crecido aprendiendo a amar un destino que no ha elegido y preparándose así para asumir la máxima responsabilidad del Estado.Este libro recorre el camino que ha llevado a la primogénita de los reyes...

En stock

21,90 €

El Arte de Viajar sin Moverse del Sitio

El Arte de Viajar sin Moverse del Sitio

Rodríguez, Hilario J.

Desde que viajar se ha convertido en espectáculo y el turismo en una industria de masas, la experiencia del viaje parece haberse vaciado de sentido: destinos intercambiables, imágenes previsibles, recorridos homologados. Frente a este paisaje de consumo carente de asombro, este libro propone una inversión radical: recuperar la imaginación como territorio primero del viaje. Ins...

En stock

15,00 €

Wicked + Cartas

Wicked + Cartas

Gilly, Casey

¡Prepárate para desafiar la gravedad! Sumérgete en la sabiduría del mundo de Oz en tu próxima lectura de tarot con esta fantabulosa baraja y guía inspiradas en la magia de las películas de Universal Pictures Wicked y Wicked: For Good. Esta emocionante versión del tarot tradicional reinventa a Elphaba, Glinda, Fiyero y todos tus personajes favoritos como arquetipos clásicos del...

En stock

25,00 €

Hormonas, Metabolismo y Rendimiento

Hormonas, Metabolismo y Rendimiento

Nieto, Claudio

¿Y si no te falta disciplina, sino entender las señales que manda tu cuerpo Tu cuerpo no funciona por capricho, funciona por prioridades. Y todo cambia cuando aprendes a leerlas. Puedes entrenar, comer bien, intentar dormir más y aun así sentir que no avanzas: poca energía, mala recuperación, hambre descontrolada, estrés alto o resultados que no llegan. Este libro te ayuda a co...

En stock

23,90 €

La Noche Cayó y Ya Nadie Pudo Salvarme

La Noche Cayó y Ya Nadie Pudo Salvarme

Llanos, Cristina

«Año noventa y siete. Devil came to me para arriba, Devil came to me para abajo. Llegando a Madrid desde otra ciudad me inundaba el terror a despertar del Milagro en cualquier momento y tener que volver al Marasmo».Cristina Llanos, fundadora, compositora, vocalista y alma de Dover, uno de los grupos más importantes de la historia del rock español, vuelca por primera vez en este...

En stock

23,90 €

La Pandilla de los Peques - Empezamos el Cole

La Pandilla de los Peques - Empezamos el Cole

Greenwell, Jessica

¡Únete a esta simpática pandilla de amigos en su primer día de cole! Usa más de 150 pegatinas para ayudarles a vestirse, elegir qué llevar, llegar a la escuela y encontrar su nueva clase. Allí les espera un amable profesor que les mostrará todas las divertidas actividades que les esperan en el colegio.Con multitud de detalles en cada página para observar y comentar, los más peq...

En stock

6,50 €