DISEÑO DE APLICACIONES MEDIANTE EL USO INTENSIVO DE DATOS
-5%

DISEÑO DE APLICACIONES MEDIANTE EL USO INTENSIVO DE DATOS

KLEPPMANN,MARTIN

44,00 €
41,80 €
IVA incluido
Editorial:
MARCOMBO
Año de edición:
2022
Materia
Software
ISBN:
978-84-267-3467-9
Páginas:
618
Encuadernación:
Rústica
Colección:
INFORMATICA
44,00 €
41,80 €
IVA incluido

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

  • GUIA. DELE CONTEXTO A LA IA
    CHACÓN SARTORI, CAMILO
    El problema no es la IA. Es lo que no le contó.Pedirle algo a una inteligencia artificial parece sencillo. Basta con escribir una pregunta y pulsar enviar. Pero, si alguna vez ha pensado «no, no era eso», probablemente el problema no estaba en la herramienta, sino en el contexto que faltaba.La IA no conoce su vida, su trabajo, sus objetivos ni sus límites. Si no se los explica,...
    En stock

    9,90 €9,41 €

  • INTELIGENCIA ARTIFICIAL CON PYTHON
    SELLES RODENAS, JUAN IGNACIO
    ¿Está preparado para dejar de ser un espectador y convertirse en creador de inteligencia artificial?Inteligencia artificial con Python es una guía práctica para aprender a desarrollar aplicaciones reales de IA desde cero, sin perderse en teorías abstractas ni en fórmulas matemáticas innecesariamente complejas.A través de explicaciones claras, ejemplos de código y proyectos prog...
    En stock

    18,50 €17,58 €

  • GUÍA DE IA RESPONSABLE
    GONZALEZ SANCHEZ, ADRIAN / BELLOTO, JUAN MANUEL / PERALTA, ALFONSO
    Este libro es una obra didáctica que puede ser utilizada como material de apoyo para el aprendizaje personal de quienes estén interesados en la IA, o como guía de estudio en cursos formativos.El texto está organizado en varios capítulos que ofrecen las claves para comprender, desde un enfoque práctico los en ocasiones etéreos conceptos de IA responsable. Para ello, integra toda...
    En stock

    29,95 €28,45 €

  • INTELIGENCIA ARTIFICIAL PARA LA VIDA COTIDIANA
    TORMO NAVARRO, MARISA
    La Inteligencia Artificial está en tu móvil, en tu correo electrónico, en las recomendaciones que recibes y en muchas de las herramientas que ya utilizas. Por eso, quizá no llegas tarde. Quizás solo necesitas saber por dónde empezar.Este libro ha sido escrito para ayudarte a incorporar lA a tu vida cotidiana de forma sencilla, práctica y sin tecnicismos. Junto a AiTina, tu asis...
    En stock

    19,90 €18,91 €

  • DE LA INTELIGENCIA ARTIFICIAL A LAS TECNOLOGÍAS ADAPTATIVAS
    MERCADO GARCÍA, MERCED ALICIA
    La pregunta sobre si una máquina puede ser verdaderamente inteligente constituye uno de los fundamentos de la Inteligencia Artificial. Este libro ofrece una respuesta filosófica a esa cuestión a partir de una investigación iniciada en 2002 y enriquecida durante más de dos décadas de reflexión y estudio. Su autora revisita los conceptos de conocimiento, razón e inteligencia huma...
    En stock

    14,90 €14,16 €

  • DISEÑA ESCENARIOS IMAGINARIOS
    FOWKES, NATHAN
    Incontables películas, animaciones y videojuegos se vuelven memorables gracias a sus escenarios. Entornos envolventes, paisajes impresionantes y lugares únicos: estos son elementos clave que hacen que nuestros mundos de ficción favoritos sean tan inmersivos y especiales. Pero, ¿cómo se diseñan esos lugares En este libro, el veterano de la industria Nathan Fowkes (El príncipe de...
    En stock

    41,90 €39,81 €