¿Cuáles son las estructuras de datos utilizadas en el almacén de datos? ¿De qué manera difieren de las estructuras de datos utilizadas en la base de datos relacional?

Las bases de datos relacionales tradicionales suelen utilizar árboles B y montones para almacenar datos indexados y no indexados. Esto se debe al hecho de que el RDBMS tradicional está optimizado para cargas de trabajo que consisten en operaciones frecuentes de inserción / actualización / eliminación y selecciones de esquema amplio (es decir, conteo (*)). Esto es algo que los árboles B manejan realmente bien y probablemente no haya una mejor estructura de datos para ese caso de uso.

Los almacenes de datos tienen diferentes casos de uso y sirven diferentes cargas de trabajo de consulta. Los datos no cambian con tanta frecuencia y se agregan principalmente (como punto final de la tubería de datos caliente-caliente-frío), mientras que las consultas en el almacén generalmente involucran solo unas pocas columnas y alguna forma de agregación (consultas analíticas).

Debido a que usualmente operamos solo en un pequeño número de columnas (es decir, raramente recuperamos todos los datos de fila por fila) y manejamos una gran cantidad de datos, los datos de la tabla generalmente se almacenan en un formato comprimido de columna principal, en lugar de un formato de fila principal ( comúnmente utilizado en índices agrupados basados ​​en B-tree). De esta forma, conservamos el espacio utilizado (a medida que implementamos conceptos como longitud de ejecución, codificación Huffman, algoritmos de compresión genéricos y especializados) y brindamos la capacidad de acceder a columnas individuales, según lo dicte la naturaleza de la carga de trabajo.

Dichas estructuras de datos se denominan típicamente índices de almacén de columnas. El uso de la palabra ‘índice’, aquí, es engañoso, ya que la estructura no es realmente un índice, en el sentido tradicional, por lo que no proporciona la capacidad de realizar búsquedas rápidas de puntos, filtros o consultas de rango. La estructura suele ir acompañada de mapas de bits y filtros Bloom que facilitan las uniones hash, así que agréguelos a su lista de estructura de datos.

Por supuesto, esto solo se aplica a las tablas que contienen datos de hechos. Las tablas que contienen datos de dimensión (es decir, un conjunto relativamente estrecho y discreto de valores ampliamente utilizados) todavía se almacenan como árboles B.

Hay muchos almacenes de datos diferentes y muchas tecnologías diferentes utilizadas. Los relacionales usualmente usan lo que he descrito.

En primer lugar, estás comparando un elefante con un caballo. Hay una gran diferencia entre el almacenamiento de datos y la base de datos relacional.

Data Warehousing no es más que un mecanismo para almacenar datos históricos de la organización bajo un esquema unificado en un solo sitio. El almacenamiento de datos tiene en general dos categorías. uno es ETL y el otro informa.
Las bases de datos relacionales son el contenedor para almacenar el almacén de datos.

More Interesting

¿Cuál es el enfoque algorítmico para el problema spoj SPOJ.com - Problema ROBOTGRI?

¿Cuáles son los tiempos de ejecución para insertar un elemento en un LinkedList en la cabeza, el final y en algún lugar en el medio?

¿Son los algoritmos de detección de imágenes el futuro de Silicon Valley?

Cómo escribir un algoritmo para un programa complicado que tiene muchos bucles, conmutadores y otros procesos dentro de una instrucción if

¿Por qué el ordenamiento rápido se denomina 'rápido' incluso cuando tiene complejidad O (n2) en el peor de los casos?

¿Dónde puedo encontrar un algoritmo de ordenación que maneje los números dentro de las cadenas correctamente?

¿Qué es un algoritmo que calculará si se puede pagar la cantidad [math] n [/ math] si tenemos un suministro ilimitado de monedas para cada valor entre [math] a [/ math] y [math] b [/ math] ?

Cómo explicar el análisis de casos promedio del algoritmo de ordenación rápida

¿Por qué la clasificación de montón se considera un algoritmo in situ?

¿Cuáles son algunos libros similares a Programming Pearls?

¿Cuán específicamente la memoria de la clase de almacenamiento cambiará las arquitecturas, los ecosistemas (incluidas las opciones de lenguaje de programación) y los algoritmos para big data?

Cómo mejorar las habilidades de algoritmo en Java

Cómo convertir el ciclo while en declaraciones if

¿Qué es el algoritmo para completar la etiqueta de inicio HTML faltante en Java?

¿Es necesario aprender un algoritmo antes de aprender cualquier lenguaje de programación?