DISEÑO DE APLICACIONES MEDIANTE EL USO INTENSIVO DE DATOS

DISEÑO DE APLICACIONES MEDIANTE EL USO INTENSIVO DE DATOS

KLEPPMANN, MARTIN

44,00 €
IVA incluido
Ahora no hay ¿Lo buscamos? Escribenos
Editorial:
MARCOMBO
Año de edición:
2022
Materia
Ciencia - matemáticas - cosmos
ISBN:
978-84-267-3467-9
Páginas:
618
Encuadernación:
Rústica
44,00 €
IVA incluido
Ahora no hay ¿Lo buscamos? Escribenos

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

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? En esta guía práctica, el autor Martin Kleppmann le ayuda a navegar por este variado panorama examinando los pros y los contras de las distintas tecnologías destinadas al procesamiento y almacenamiento de datos. El software cambia constantemente, pero los principios fundamentales siguen siendo los mismos. Con este libro, los ingenieros y arquitectos de software aprenderán a aplicar esas ideas en la práctica y a aprovechar al máximo los datos en las aplicaciones modernas. ' Analizar detalladamente el funcionamiento interno de los sistemas que ya utiliza, aprender a operar con ellos y utilizarlos con mayor eficacia. ' Adoptar decisiones informadas, identificando los puntos fuertes y débiles de las diferentes herramientas. ' Encontrar el equilibrio en relación con la coherencia, la escalabilidad, la tolerancia a fallos y la complejidad de las aplicaciones. ' Comprender la investigación sobre sistemas distribuidos en la que se fundamentan las bases de datos modernas. ' Echar un vistazo a lo que hay entre bambalinas en los principales servicios online y aprender de sus arquitecturas. Martin Kleppmann es investigador de sistemas distribuidos en la Universidad de Cambridge, Reino Unido. Antes desarrolló las funciones de ingeniero de software y empresario en empresas de Internet como Linkedln y Rapportive, donde trabajó en infraestructuras de datos a gran escala. Martin imparte habitualmente conferencias, es bloguero y desarrollador de código abierto.

Artículos relacionados

  • EL GRAN LIBRO DEL ECLIPSE
    RONDA, MAGELA
    Este verano llega a la Península Ibérica el primer eclipse solar total en más de un siglo Y este es el libro perfecto para vivirlo como una experiencia inolvidable. ¿Y si el cielo cambiara ante tus ojos… y supieras exactamente por qué? El gran libro del eclipse es el compañero perfecto para vivir el eclipse solar más esperado en más de un siglo. Un libro práctico y emocionante ...
    Quedan pocos

    16,95 €

  • CONSTRUIR EL MUNDO
    GRACIÁN, ENRIQUE
    «Para construir el mundo lo primero que tienes que hacer es ir de compras a una tienda especializada en partículas subatómicas…». El colosal desarrollo alcanzado por la química, la física y la astrofísica nos ha proporcionado un profundo conocimiento del mundo. Pero nos sume también en una ignorancia cada vez mayor de nuestra naturaleza interior. Una encrucijada de la que res...
    Quedan pocos

    19,90 €

  • CAZADORES DE ESTRELLAS
    BAKER, JOANNE
    ¿Qué nos atrae del cielo nocturno?¿Por qué, desde los albores de la humanidad, hemos alzado la mirada hacia el firmamento en busca de sentido? En Cazadores de estrellas, la exastrofísica y escritora Joanne Baker propone una reveladora síntesis entre ciencia y cultura para trazar la historia global de nuestra relación con el cosmos. Desde la Vía Láctea hasta los confines del un...
    Quedan pocos

    22,90 €

  • FÍSICA CUÁNTICA
    STILL, BEN
    A veces, es cierto que menos es más. Desde el gato de Schrödinger y la teletransportación cuántica hasta los átomos y la gravedad, Física cuántica es la introducción definitiva a esta materia, y contiene todo lo que necesitas para comprender los conceptos ...
    Quedan pocos

    14,96 €

  • ASTROFISICA PARA GENTE CON PRISAS NP
    NEIL DEGRASSE TYSON
    LLÉVATE LOS GRANDES ÉXITOS DEL PENSAMIENTO DONDE TÚ QUIERASHoy en día son pocos los que cuentan con el tiempo necesario para detenerse y contemplar el cosmos. En Astrofísica para gente con prisa, Neil deGrasse Tyson condensa las grandes preguntas del cosmos en breves capítulos tan claros como adictivos. Del big bang a los agujeros negros, de los quarks a la mecánica cuántica, y...
    Quedan pocos

    16,95 €

  • DIARIO DE LABORATORIO
    GARCÍA BELLO, DEBORAH
    La obra más personal de Deborah García Bello. Un ensayo deslumbrante que entrelaza ciencia, memoria y belleza para revelarnos la química invisible que une todas las cosas: la materia, la vida y el amor.¿Y si un diario pudiera contener toda la química? Diario de laboratorio es el libro más ambicioso de Deborah García Bello, la divulgadora que ha hecho de la química una forma de ...
    Quedan pocos

    20,90 €