2 - Problemas de escalabilidad en Big Data Flashcards
- ¿Cuáles son los principales problemas de escalabilidad en sistemas de Big Data?
Manejo de grandes volúmenes de datos: La cantidad de datos puede crecer exponencialmente, y el sistema debe ser capaz de procesarlos sin degradación significativa del rendimiento.
Procesamiento en tiempo real: La latencia en la lectura y actualización de datos es un desafío, especialmente cuando se requiere procesamiento en tiempo real.
Escalabilidad horizontal: Distribuir los datos y el procesamiento en múltiples servidores puede ser complicado, especialmente cuando hay dependencias fuertes entre los datos.
- ¿Qué es el sharding y cómo afecta a los sistemas de Big Data?
Sharding es una técnica para distribuir datos en varias bases de datos físicas o servidores, permitiendo que las operaciones se realicen en paralelo.
Esto ayuda a mejorar la escalabilidad horizontal y manejar grandes volúmenes de datos.
Sin embargo, el sharding introduce complejidad en la gestión de los datos, como en:
- La consistencia
- La recomposición de los datos dispersos en diferentes shards.
- ¿Qué principios definen un sistema robusto y tolerante a fallos en Big Data?
Inmutabilidad: Los datos no se modifican una vez escritos; en lugar de ello, se agregan nuevas versiones, lo que facilita la recuperación en caso de errores.
Recomputación: En lugar de intentar corregir los datos en el momento, se pueden recalcular en base a los datos originales, lo que reduce la complejidad en la corrección de errores.
- ¿Por qué es importante la inmutabilidad en sistemas de Big Data?
La inmutabilidad es crucial porque asegura que los datos históricos permanezcan inalterados, lo que simplifica la auditoría, depuración y recuperación de errores.
Además, permite el procesamiento paralelo y en tiempo real sin problemas de concurrencia, ya que no hay conflictos de actualización.
- ¿Cómo se maneja la latencia de lectura y actualización en sistemas de Big Data?
Indexación eficiente: Facilita las búsquedas rápidas en grandes conjuntos de datos.
Procesamiento en memoria lo que reduce significativamente el tiempo de acceso (por ejemplo, utilizando tecnologías como Apache Spark).
Replicación de datos en múltiples nodos para asegurar disponibilidad y rápida recuperación en caso de fallos.
- ¿Qué se entiende por escalabilidad horizontal en una arquitectura de Big Data?
La escalabilidad horizontal implica agregar más servidores o nodos para distribuir la carga de trabajo y los datos. En lugar de mejorar las capacidades de un solo servidor (escalabilidad vertical), se distribuyen los datos y el procesamiento entre varios servidores, lo que permite manejar grandes volúmenes de datos y aumentar la capacidad del sistema.
- ¿Cómo se diferencia la arquitectura Lambda de otras arquitecturas de Big Data?
La arquitectura Lambda combina:
- procesamiento en tiempo real
- por lotes.
Y lo hace en dos capas: una capa de procesamiento en tiempo real que maneja los datos inmediatamente al llegar y una capa de procesamiento por lotes que procesa grandes volúmenes de datos históricos.
Esto contrasta con otras arquitecturas que solo se enfocan en uno de los dos métodos.
- ¿Qué significa que un sistema sea generalizado y cómo beneficia esto a Big Data?
Un sistema generalizado en Big Data significa que puede manejar diferentes tipos de datos (estructurados, semiestructurados, no estructurados) y soportar múltiples aplicaciones.
Este enfoque flexible beneficia a Big Data al permitir una integración más amplia de fuentes de datos diversas, lo que resulta en un análisis más completo y robusto.
- ¿Qué ventajas ofrece la extensibilidad en un sistema de Big Data?
La extensibilidad permite que el sistema pueda adaptarse a nuevos requerimientos, tecnologías o volúmenes de datos sin necesidad de una reestructuración completa. Esto es importante en Big Data, donde los tipos de datos y las necesidades de procesamiento cambian constantemente.
- ¿Qué son las consultas ad hoc y cuál es su papel en Big Data?
Las consultas ad hoc son consultas que no están predefinidas o planificadas con antelación. Son importantes en Big Data porque permiten explorar los datos de manera flexible y descubrir patrones inesperados o tendencias en tiempo real sin depender de consultas predefinidas.
¿Por qué es importante el mantenimiento mínimo en un sistema de Big Data?
Un sistema de Big Data con mantenimiento mínimo reduce los costos operativos y el riesgo de errores humanos. Además, permite escalar y gestionar los datos más fácilmente sin necesidad de intervenciones constantes, lo que es crucial para sistemas que manejan grandes volúmenes de datos.
¿Cómo contribuye la programación funcional al procesamiento de datos en Apache Spark?
La programación funcional es fundamental en Apache Spark porque permite tratar los datos como flujos inmutables y aplicar transformaciones de manera declarativa. Esto facilita la paralelización y escalabilidad de las operaciones de procesamiento de datos.
¿Qué desafíos presenta la compactación de datos en arquitecturas incrementales?
La compactación en arquitecturas incrementales, como Cassandra, puede ser problemática porque requiere consolidar múltiples versiones de datos en una única representación, lo que consume tiempo y recursos. Además, si no se hace correctamente, puede afectar negativamente el rendimiento del sistema.
¿Qué es el teorema CAP y cómo se aplica a sistemas distribuidos?
El teorema CAP establece que en un sistema distribuido solo se pueden garantizar dos de las siguientes tres propiedades al mismo tiempo:
* Consistencia (todos los nodos ven los mismos datos al mismo tiempo).
* Disponibilidad (el sistema responde siempre a las solicitudes).
* Tolerancia a particiones (el sistema sigue funcionando a pesar de la pérdida de comunicación entre nodos).
Este teorema es clave en la arquitectura de sistemas distribuidos, como las bases de datos de Big Data.
- ¿Cuál es la parte del teorema CAP más relevante para redes sociales y sistemas bancarios?
- En redes sociales, la disponibilidad es más importante que la consistencia perfecta. Es mejor que el sistema esté siempre disponible y los usuarios reciban actualizaciones eventualmente consistentes.
- En sistemas bancarios, la consistencia es crítica, ya que las transacciones financieras requieren precisión y sincronización inmediata entre los nodos.