Data Warehouse vs Database

Hemos hablado anteriormente sobre muchos conceptos como: #Data-Streaming, #Big-Data, #Data-Warehouse, etc… pero, nunca antes, hemos explicado claramente la diferencia entre un Data Warehouse y una Database. Vamos a por ello:

AWS Redshift Data Warehouse

¿Qué es un Data Warehouse?

Un #Data-Warehouse es un sistema que reúne datos de muchas fuentes diferentes dentro de una organización para la elaboración de informes y el análisis. Los informes creados a partir de consultas complejas dentro de un #Data-Warehouse se utilizan para tomar decisiones empresariales.

En términos más amplios, un #Data-Warehouse es una vista consolidada de un depósito de datos físico o lógico recopilado de varios sistemas. El objetivo principal de un #Data-Warehouse es proporcionar una correlación entre los datos de los sistemas existentes, también se utilizan para el procesamiento analítico en línea (OLAP), que utiliza consultas complejas para analizar en lugar de procesar transacciones.

¿Qué es una Base de Datos?

Una base de datos contiene información organizada en columnas, filas y tablas que se indexa periódicamente para hacer más accesible el acceso a la información relevante. Muchas empresas y organizaciones crean y gestionan bases de datos utilizando un sistema de gestión de bases de datos. Se puede utilizar un software especial de DBMS para crear y almacenar el inventario de productos y la información de los clientes, por ejemplo.

Las organizaciones suelen utilizar bases de datos para el procesamiento de transacciones en línea (OLTP). El software de base de datos debe proporcionar un acceso fácil a la información y una consulta rápida para que las transacciones puedan llevarse a cabo de forma eficiente. Las bases de datos se denominan a menudo sistemas operativos, lo que significa que se utilizan para procesar las transacciones diarias de una organización.

Mientras que la mayoría de las bases de datos de lectura, escritura y generación de informes son normalmente administradas por un administrador de bases de datos, algunas bases de datos transaccionales proporcionan atomicidad, consistencia, aislamiento y durabilidad (ACID) para asegurar que la información contenida en la base de datos sea consistente y que cualquier transacción que se lleve a cabo sea completa.

Data Warehouse vs Database

Los #Data-Warehouse y las bases de datos son sistemas de datos relacionales, pero fueron construidos para servir a diferentes propósitos. Un #Data-Warehouse está construido para almacenar grandes cantidades de datos históricos y permitir consultas rápidas y complejas a través de todos los datos, normalmente utilizando el Procesamiento Analítico en Línea (OLAP). En cambio, se crearon las bases de datos para almacenar las transacciones actuales y permitir un acceso rápido a transacciones específicas para los procesos de negocio en curso, conocida como Procesamiento de Transacciones en Línea (OLTP).

AWS Redshift Vs RDS

Bien, seguramente uno de los servicios, en el caso de AWS, que nos viene a la cabeza cuando hablamos de #Data-Warehouse es AWS Redshift y cuando hablamos de base de datos, es AWS RDS. Sin duda alguna, AWS Redshift tiene bastantes ventajas sobre otros #Data-Warehouse ya que está completamente gestionado y puede escalar hasta petabytes de datos ofreciendo un gran rendimiento incluso para consultas complejas. Su naturaleza columnar con Postgres como estándar de consulta lo hace muy popular para casos de uso analítico y de informes. Hoy en día es muy común utilizar Redshift como el almacén de datos de red troncal para sistemas ETL o ELT de alta fiabilidad.

Escalando

La capacidad de escalar es uno de los factores más importantes a tener en cuenta a la hora de elegir entre diferentes bases de datos. Tanto AWS Redshift como el AWS RDS permiten a los clientes escalar según su presupuesto y sus necesidades de rendimiento. Dado que RDS se basa en instancias virtualizadas, su escalado se realiza mediante la reconfiguración de las capacidades de la instancia virtual. El escalado sólo toma unos pocos minutos y se puede hacer en unos pocos clics en la consola AWS. Redshift se basa en una arquitectura más compleja y significa que la escalabilidad no es tan perfecta como en AWS RDS. Las instancias de Redshift con soporte para redimensionamiento elástico pueden hacerlo en pocos minutos, pero la ventana de tiempo no disponible de la base de datos es ciertamente mayor que la de AWS RDS. Dicho esto, el límite de escala es mayor para Redshift cuando se trata de almacenamiento. AWS Redshift también tiene una opción llamada “concurrency scaling” que puede ser usada para soportar un número virtualmente ilimitado de usuarios concurrentes sin una caída en el rendimiento de las consultas.

Capacidad de almacenamiento

El mayor diferenciador entre AWS Redshift y RDS es la capacidad de almacenamiento y el límite hasta el que se puede escalar. Con AWS Redshift, el almacenamiento puede escalarse a petabytes de datos. El límite de AWS Redshift es 2 PB con su instancia de tipo ds2.8xlarge. Con AWS RDS, ya que trabaja con instancias virtualizadas individuales, el límite de almacenamiento está en el rango de TBs y variará de acuerdo con el motor de base de datos elegido. Para el servidor SQL la capacidad de almacenamiento está limitada a 16 TB, mientras que el motor de aurora puede escalar hasta 64 TB. Todos los demás tipos de motores pueden escalar hasta 32 TB de datos.

Replicación de datos

Una carga de trabajo importante en cualquier ETL será la carga de datos de diferentes fuentes. Dado que estos servicios tienen una arquitectura completamente diferente, el procedimiento de carga también es diferente. Con RDS, esto está estrechamente relacionado con el motor de base de datos subyacente que se está utilizando. Al importar los datos se utilizarán los comandos específicos del motor. Del mismo modo, las herramientas para exportar también dependerán de los tipos de motor de origen y destino como mysqldump para MySQL o pg_dump para Postgres. Para Redshift, la importación de datos implicará copiar los datos completos a S3 y cargarlos usando el comando COPY.