Introducción a Amazon Redshift

Última actualización: 20/11/2021

En esta introducción al servicio Amazon Redshift aprenderás cómo te puede resultar útil en tu estrategia de datos en la nube. Repasaremos su funcionamiento, sus ventajas, su arquitectura y particularidades para que puedas empezar a usarlo de manera adecuada en tus proyectos big data.

Amazon Redshift: Introducción

¿Qué es Redshift?

Amazon Redshift es el servicio de Data Warehouse en la nube disponible en AWS que nos permite realizar consultas analíticas en SQL para big data de manera eficiente.

Es una base de datos MPP (Procesamiento paralelo masivo) que analiza datos usando múltiples nodos en paralelo. Cada uno de estos nodos se encarga de ejecutar un subconjunto de la consulta sobre los datos.

Nos proporciona las funcionalidades necesarias para implementar las consultas de alto rendimiento que alimenten procesos de BI, analítica en tiempo real y entrenamiento de modelos de machine learning con SQL.

Ventajas como Data Warehouse

AWS Amazon Web Services Logo

Redshift es uno de los cloud data warehouses más populares. Aporta una gran potencia analítica de forma flexible y muy fácil de usar, integrado completamente con otros servicios del ecosistema de AWS como Amazon S3 o AWS Glue.

La configuración y la gestión de algunas actividades como la replicación, el backup y las actualizaciones son automáticas. Muchas tareas administrativas también se pueden automatizar a través de scripts. Redshift ofrece APIs con las que se puede interactuar a través de llamadas o de la consola de AWS, por ejemplo, para escalar el clúster de manera programática. También es compatible con Terraform como herramienta para automatizar los despliegues.

Redshift tiene un coste flexible, por lo que se paga por lo que se usa. Existen dos modelos: bajo demanda y el uso de instancias reservadas. De esta forma ofrece varias opciones para ajustarse a los requisitos de cada usuario.

Permite definir colas para diferentes tipos de procesos mediante Redshift Workload Management (WLM). Esta funcionalidad es muy útil para separar los procesos ETL y las consultas analíticas de reporting. También, se puede limitar el número de consultas concurrentes. Es importante asegurar que los procesos ETL son eficientes para obtener los mejores resultados al añadir datos de manera consistente y segura.

Arquitectura

A continuación describiré los elementos que forman parte de la arquitectura de un clúster de Amazon Redshift.

Nodo Líder: Este nodo sirve de punto de entrada al clúster y gestiona las comunicaciones con las aplicaciones cliente. El resto de nodos de cómputo son transparentes para estas aplicaciones externas. Se encarga de desarrollar el plan de ejecución de las consultas y de distribuirlas a los nodos de cómputo, de forma que asigna a cada uno la porción de los datos que reside en ellos. Las consultas que no referencian tablas almacenadas en los nodos de cómputo ejecutan en el nodo líder directamente.

Nodos de cómputo: Estos nodos ejecutan el fragmento de consulta que les ha asignado el nodo líder. Cuando han terminado sus operaciones, devuelven los resultados intermedios al líder para que pueda devolver el resultado total al cliente. Estos nodos particionan sus recursos computacionales (memoria y disco) en slices.

Slices: Son las particiones de los nodos de cómputo. Ejecutan las operaciones en paralelo para acelerar el procesamiento. El número de slices de cada nodo viene determinado por la capacidad y el tipo de nodo de cómputo del clúster. Es importante elegir bien la forma de distribuir las tablas mediante claves, de forma que las filas se distribuyan de manera repartida en los slices disponibles.

Arquitectura Redshift AWS
Arquitectura de Redshift

Redshift está limitado a 100 nodos y 16TB de almacenamiento por nodo (Sin usar Redshift Spectrum), por lo que sí tiene un límite en la capacidad de almacenar datos. Aunque no separa completamente el cómputo del almacenamiento, sí que consigue alcanzar unos precios de almacenamiento muy baratos.

Redshift Spectrum vs Athena

Redshift Spectrum es una de las funcionalidades de Redshift más potentes. Permite obtener una escalabilidad ilimitada de cómputo sin añadir nuevos nodos al clúster. Para ello, gestiona consultas SQL directamente sobre S3, por lo que no necesita copiar los datos en el clúster y evita las limitaciones de escalabilidad que hemos visto.

Amazon Athena también permite realizar consultas SQL interactivas directamente sobre el almacenamiento de objetos en S3 mediante un servicio serverless. Athena solo permite crear tablas externas, por lo que el acceso a s3 es de solo lectura mediante ANSI SQL. Como vemos, Athena y Redshift Spectrum no almacenan datos, sino que usan Spark para procesar los datos del Data Lake.

Ambos servicios basan su coste en la cantidad de datos accedidos, y es el mismo por cara TB de datos escaneado.

Athena está basado en Presto, tiene UDFs para aplicar funciones y consultar columnas y se integra con AWS Glue como catálogo de datos y con AWS Lake Formation para administrar los permisos en las tablas y columnas. Con este servicio no tienes que preocuparte de tener suficientes recursos computacionales ya que es totalmente gestionado. También, proporciona conectores open source para federar consultas SQL en servicios como DynamoDB, Apache HBase, Amazon DocumentDB, Redshift, AWS CloudWatch Metrics y bases de datos compatibles con JDBC como MySQL y PostgreSQL.

Redshift Spectrum es parte del stack de Redshift, y nos permite tener un control más fino del rendimiento al estar ligado a un clúster. En el caso de que no necesites el data warehouse y simplemente quieras analizar tus datos en S3, Athena es, por tanto, un servicio más adecuado.

Alternativas a Redshift

Como alternativas a Redshift deberemos considerar Azure Synapse Analytics y Snowflake. Synapse Analytics nos aporta la alternativa en el ecosistema de Microsoft Azure mientras que Snowflake es una alternativa agnóstica a cloud.

Cursos de Redshift y Siguientes Pasos

Aquí tienes dos cursos de Udemy que te recomiendo hacer para profundizar algo más en Redshift. Aprenderás todo lo que necesitas para usar este servicio de manera profesional:

Paso 1:

Desarrollo y administración de Amazon Redshift

Desarrollo y administración de Amazon Redshift

Este curso te permitirá aprender todos los conceptos que necesitarás para desarrollar con Amazon Redshift y administrarlo de forma correcta. Está actualizado este año y explica todas las funcionalidades actuales de la plataforma.

Paso 2:

Práctica con Amazon Redshift

Con el curso práctico aprenderás a usar Redshift mediante ejercicios y ejemplos. Incluye conceptos sobre carga de datos, configuración y distribución de carga en el clúster.

Preguntas Frecuentes Redshift – FAQ

¿Redshift es una base de datos?

Redshift sí es una base de datos NoSQL columnar orientada a analítica y usada como Data Warehouse. Su capa de consulta usa el lenguaje SQL y es ofrecida como servicio en AWS.

¿Para qué se usa Redshift?

Los casos de uso más comunes de Redshift son alrededor del Data Warehouse empresarial. Permite implementar consultas muy rápidas que sirvan a procesos analíticos en tiempo real, business intelligence y machine learning.

¿Cuál es la diferencia entre Redshift y RDS?

Redshift y RDS son bases de datos como servicio en la nube de AWS. Amazon RDS se usa generalmente como base de datos tradicional OLTP con una estructura orientada a filas. Redshift usa una estructura columnar y está orientada a analítica y reporting como un Data Warehouse empresarial.

¿Cuál base de datos usa Redshift?

Amazon Redshift está basada en la base de datos relacional PostgreSQL.

Deja una respuesta