¿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.