Curso
Los datos son la base de las organizaciones modernas, pero el enorme volumen de información que se recopila y almacena puede ser difícil de gestionar. La clave del éxito está en organizar y analizar bien esos datos para descubrir insights valiosos que impulsen decisiones informadas.
Aquí es donde entra en juego el data warehousing. Es una solución potente que permite a las empresas consolidar y optimizar sus datos para analizarlos con eficiencia. Y, cuando hablamos de data warehousing, AWS Redshift destaca como una de las mejores opciones.
En este artículo, veremos en detalle AWS Redshift, sus funciones principales, ventajas y buenas prácticas para la configuración, la carga de datos, las consultas, el ajuste de rendimiento, la seguridad y las integraciones.
Tanto si eres profesional de datos como si lideras un negocio y quieres sacar más partido a tus datos, aquí encontrarás los conocimientos y herramientas que necesitas para tener éxito con AWS Redshift.
¿Qué es el data warehousing?
El data warehousing es el proceso de recopilar, almacenar y gestionar grandes volúmenes de datos estructurados procedentes de distintas fuentes dentro de una organización.
El objetivo principal de un data warehouse es ofrecer un repositorio centralizado de información al que se pueda acceder, analizar y utilizar fácilmente para reporting y para la toma de decisiones.
Los data warehouses están diseñados para soportar consultas complejas y análisis de datos, lo que permite a las empresas extraer insights valiosos.
La importancia del data warehousing
Adoptar un data warehouse puede aportar a las organizaciones numerosos beneficios:

Importancia del data warehousing
- Toma de decisiones informada: El data warehousing facilita decisiones basadas en datos al dar acceso sencillo a históricos y tendencias.
- Mejor calidad de datos: Integra y depura datos de múltiples fuentes, garantizando consistencia y precisión para obtener insights fiables.
- Más eficiencia: Los usuarios pueden acceder y consultar grandes volúmenes de datos sin afectar a los sistemas operacionales, lo que permite decidir a tiempo.
- Ventaja competitiva: Los insights obtenidos ayudan a identificar nuevas oportunidades, optimizar procesos y ganar ventaja en el mercado.
- Escalabilidad y rendimiento: Los data warehouses están preparados para manejar grandes volúmenes y consultas complejas, manteniendo un rendimiento constante a medida que crecen las necesidades.
Visión general de AWS Redshift
¿Qué es AWS Redshift?
AWS Redshift es un servicio de data warehousing totalmente gestionado en la nube que permite almacenar y analizar conjuntos de datos a escala de petabytes. Con AWS Redshift Serverless, puedes acceder y analizar datos sin necesidad de configurar manualmente un data warehouse aprovisionado.

Amazon Redshift (Source)
El servicio aprovisiona recursos automáticamente y escala de forma inteligente la capacidad del data warehouse para garantizar un rendimiento rápido, incluso con cargas de trabajo exigentes e impredecibles. Solo pagas por los recursos que utilizas: no hay cargos cuando el data warehouse está inactivo.
AWS Redshift permite cargar datos y empezar a consultar de inmediato usando Amazon Redshift query editor v2 o tu herramienta de business intelligence (BI) preferida. Ofrece la mejor relación precio-rendimiento y funciones SQL familiares en un entorno sencillo y sin administración.
Independientemente del tamaño del conjunto de datos, AWS Redshift ofrece consultas rápidas utilizando las mismas herramientas basadas en SQL y aplicaciones de BI que se usan habitualmente hoy.
Funciones y ventajas clave de AWS Redshift
AWS Redshift aporta múltiples funciones y beneficios para ayudar a las organizaciones a almacenar, gestionar y analizar grandes volúmenes de datos con eficiencia. A continuación se ilustran algunas de las funciones y ventajas más importantes:

Funciones y ventajas de AWS Redshift
Funciones clave
- Escalabilidad: Redshift puede escalar desde unos cientos de gigabytes hasta un petabyte o más.
- Almacenamiento columnar y compresión: Usa almacenamiento columnar y compresión de datos para optimizar el rendimiento de las consultas.
- Totalmente gestionado: Elimina la necesidad de configuración y mantenimiento manual.
- Seguridad: Incluye cifrado en reposo y en tránsito, integración con VPC y roles de IAM.
- Interfaz SQL familiar: Ofrece una interfaz SQL conocida y compatibilidad con las principales herramientas de BI.
Beneficios clave
- Rendimiento: Permite análisis rápidos gracias a consultas optimizadas.
- Rentabilidad: Solo pagas por el almacenamiento y cómputo que consumes.
- Facilidad de uso: Puedes comenzar a consultar y visualizar datos rápidamente.
- Escalabilidad: Se adapta al crecimiento de los datos sin intervención manual.
- Integración: Facilita soluciones de datos de extremo a extremo integrándose con diversas herramientas y servicios.
Configuración de AWS Redshift
Las secciones anteriores se centraron en comprender Redshift a alto nivel. Ahora vamos a la parte técnica.
Primero veremos los principales requisitos previos para configurar AWS Redshift con éxito y, a continuación, seguiremos paso a paso el proceso de creación de un clúster de Redshift. Por último, explicaremos en detalle ajustes clave del clúster, como tipos de nodo, número de nodos y configuración de seguridad.
Requisitos previos
Antes de entrar en detalle con el caso de uso, repasemos lo que necesitas para una implementación exitosa:
- Cuenta de AWS: necesaria para acceder a los servicios de AWS; puedes crearla desde el sitio web de AWS.
- Habilidades en SQL: necesarias para extraer y organizar datos; nuestro curso de Introducción a SQL es un buen punto de partida.
- AWS IAM: Necesitas comprender AWS Identity and Access Management (IAM) para configurar los permisos correctos para las funciones de Lambda que utilices.
- Conocimientos básicos de servicios de AWS: Familiaridad con AWS EC2 y S3 para el alcance de este artículo.
- Habilidades de programación: Conocimientos básicos de Python para usar librerías y herramientas que interactúan con Redshift.
Crear y configurar un clúster de Redshift
Esta sección recoge todos los pasos para crear un clúster de Redshift desde la consola de administración de AWS en 11 sencillos pasos, como se muestra a continuación:
1. Busca Redshift en la consola y selecciona “Amazon Redshift”:

Busca y selecciona Redshift en la consola
2. Selecciona el botón “Create cluster” para iniciar la creación.

Botón de creación del clúster
3. A partir de aquí, configura el clúster indicando el identificador, el tamaño, el tipo de nodo, la zona de disponibilidad y el número de nodos.

Configuración del clúster en 8 pasos
4. En lugar de usar datos de ejemplo como se sugiere en la misma página, cargaremos datos desde un bucket de S3 para importarlos en Redshift.

Ignorar la opción de cargar datos de ejemplo
5. Puedes definir los permisos del clúster mediante roles de IAM. Esta sección puede omitirse y abordarse más adelante.

Ignorar permisos del clúster y roles de IAM
6. Deja las configuraciones por defecto de red, seguridad, copias de seguridad y mantenimiento, y selecciona “Create cluster” para crear el clúster.

Creación del clúster
7. Tras la acción anterior, verás una nueva página con el clúster recién creado. Puede tardar unos minutos; en la sección “Status” verás primero “Creating” y después “Available”.

Estado del clúster: de “Creating” a “Available”
Carga de datos en Redshift
Ya hemos creado nuestros clústeres de Redshift. Esta sección te guía por todos los pasos: desde elegir el conjunto de datos de PIB (Producto Interior Bruto) de países, regiones y mundo disponible en nuestro DataLab hasta subirlo a un bucket de S3.
Sobre los datos
Nuestros datos provienen originalmente del conjunto de datos del Banco Mundial. Recogen el PIB de países, regiones y el mundo, medido en dólares estadounidenses corrientes ($). Las regiones se refieren a agrupaciones de países, como Europa y Asia Central.
Las diez primeras observaciones tienen este aspecto:

Diez primeras observaciones de los datos de PIB
Usar AWS S3 para cargar datos
Para que S3 y Redshift se comuniquen correctamente, primero crearemos un rol de IAM y después un bucket de S3 para almacenar los datos.
Crear un rol de IAM
Crear un rol de IAM permite conectar nuestro clúster de Redshift con el bucket de S3 donde residen los datos.
La creación del rol de IAM se realiza así:
Desde la consola de administración, busca “IAM” y selecciona el logotipo de “IAM” del resultado de búsqueda.

Servicio IAM en la consola
Selecciona “Roles” para ver los roles disponibles y elige “Create role” para crear uno nuevo.

Comenzar a crear un rol nuevo
Elige “AWS service” en “Trusted entity type”, luego “Redshift” como “Use case”, y pulsa “Next” para continuar.

Pasos 5 a 8 de la creación del rol IAM
Busca “S3FullAccess” en la pestaña de búsqueda, márcalo y selecciona “Next”.

Pasos 9 a 10 de la creación del rol IAM
Por último, pon nombre al rol, revísalo y elige “Create role” para finalizar su creación.

Pasos 11 a 12 de la creación del rol IAM
Si todo va bien, aparecerá en la esquina superior un mensaje verde confirmando la creación del rol.

Mensaje de confirmación de creación del rol
Vincular el rol de IAM a Redshift
Ahora que tenemos el rol de IAM, podemos vincularlo al clúster de Redshift que creamos inicialmente, de la siguiente forma:
En la sección de clústeres, selecciona el clúster creado y, en “Actions”, elige “Manage IAM roles”.

Vincular el rol de IAM a Redshift, pasos 1 y 2
En esta sección, elige el rol de IAM creado previamente y guarda los cambios.

Vincular el rol de IAM a Redshift, pasos 3 y 4
Conectar con Redshift Query Editor
Puedes usar varias herramientas para consultar datos en Redshift. Algunas forman parte de AWS y otras son externas. En este tutorial utilizamos el editor de consultas del panel de Redshift.
Para poder usarlo, primero crearemos una conexión al editor de consultas desde la opción “Query in query editor” en la pestaña “Query data”:

Editor de consultas desde Query data
Esto te llevará a la siguiente página, donde podrás conectar a la base de datos tras darle un nombre y definir un nombre de usuario, como se muestra:

Conexión a la base de datos desde el editor de consultas
Crear una tabla para los datos
Tras pulsar “Connect”, verás la etiqueta verde “Connected” arriba y la información de la base de datos a la izquierda.

Resultado tras conectarnos a la base de datos
Como se ve arriba, todavía no hay recursos/datos en la base de datos. Antes de importar, primero debemos crear una tabla con las mismas características que los datos a importar.

Correspondencia entre las 10 primeras observaciones y las columnas de la tabla
La tabla se crea con la siguiente consulta SQL:
CREATE TABLE gdp_data (
id INTEGER PRIMARY KEY,
country_name VARCHAR(255),
country_code VARCHAR(10),
year INTEGER,
value DECIMAL(20,2)
);
Aquí tienes una explicación de la consulta, con un punto por cada columna:
id INTEGER PRIMARY KEY: crea una columna llamada "id" de tipo INTEGER y la define como clave primaria de la tabla, garantizando valores únicos por fila.country_name VARCHAR(255): crea una columna llamada "country_name" de tipo VARCHAR, que admite cadenas de hasta 255 caracteres.country_code VARCHAR(10): crea una columna llamada "country_code" de tipo VARCHAR, que admite cadenas de hasta 10 caracteres.year INTEGER: crea una columna llamada "year" de tipo INTEGER, adecuada para números enteros (en este caso, años).value DECIMAL(20,2): crea una columna llamada "value" de tipo DECIMAL, que admite números decimales con precisión de 20 dígitos y 2 decimales.
Ahora ejecutamos la consulta para crear la tabla:

Consulta para crear la tabla
Esta consulta crea una tabla llamada "gdp_data" con las columnas especificadas para almacenar los datos de PIB, como se muestra a continuación:

Tabla de datos de PIB creada a partir de la consulta SQL
Crear una tabla para los datos
Los datos se importarán a la tabla desde un bucket de S3. En esta sección cubrimos todos los pasos para crear el bucket y subir los datos.
Localiza el servicio S3 en la consola, selecciónalo y ponle un nombre, dejando el resto por defecto:

Creación del bucket de S3
Una vez creado, el bucket aparece en la lista de todos los buckets creados anteriormente.

Bucket recién creado
Desde ahí, selecciona el nombre del bucket y sube el archivo CSV del PIB que descargaste localmente.

Página para subir datos al bucket
Tras subir los datos correctamente, estarán disponibles como se ve aquí:

CSV subido al bucket
Comando COPY: sintaxis y ejemplos
¡Enhorabuena por llegar hasta aquí!
Esta sección muestra cómo copiar los datos desde S3 a Redshift de la siguiente manera.
COPY gdp_data (id, country_name, country_code, year, value)
FROM 's3://gdp-data-bucket/gdp/gdp_data.csv'
IAM_ROLE 'arn:aws:iam::654654631565:role/RedshiftS3FullAccess'
CSV
IGNOREHEADER 1;
Veamos qué está pasando aquí:
- COPY gdp_data (id, country_name, country_code, year, value): indica la tabla y las columnas en las que copiar los datos.
- FROM 's3://gdp-data-bucket/gdp/gdp_data.csv': señala el archivo de origen en el bucket de S3.
- IAM_ROLE 'arn:aws:iam::654654631565:role/RedshiftS3FullAccess': usa el rol de IAM indicado para acceder al bucket de S3.
- CSV: indica que el formato del archivo es CSV (valores separados por comas).
- IGNOREHEADER 1: indica a Redshift que ignore la primera fila, que normalmente contiene los encabezados.
El mismo código desde el editor aparece a continuación, y la operación de copia se completó con éxito en pocos segundos:

Tarea COPY completada
En lugar de subir todos los datos del CSV original, se cargó una muestra aleatoria de cien observaciones por simplicidad. Podemos previsualizarlos con la opción “Preview data” como sigue:

Vista previa de las 100 observaciones subidas aleatoriamente
Consultas de datos en Redshift
La vista previa solo muestra las diez primeras observaciones. Si queremos interactuar más con los datos para obtener insights, aquí es donde tener habilidades en SQL marca la diferencia.
En esta sección exploramos los datos con varias consultas SQL.
Consultas SQL básicas
Usaremos cinco consultas SQL para interactuar con los datos almacenados en la base de datos, empezando por la más común: seleccionar datos.
Seleccionar todos los datos
SELECT *
FROM gdp_data;

Resultado de la primera consulta
Seleccionar datos de un país concreto:
SELECT * FROM gdp_data
WHERE country_name = 'Senegal';

Resultado de la segunda consulta
Calcular el PIB medio para un año específico:
SELECT year, AVG(value) as average_gdp
FROM gdp_data
WHERE year = 2020
GROUP BY year;

Resultado de la tercera consulta
Encontrar los 5 países con mayor PIB en un año concreto:
SELECT country_name, value
FROM gdp_data
WHERE year = 2020
ORDER BY value DESC
LIMIT 5;

Resultado de la cuarta consulta
Contar el número de registros por año:
SELECT year, COUNT(*) as record_count
FROM gdp_data
GROUP BY year
ORDER BY year;

Resultado de la quinta consulta
Técnicas de consulta avanzadas
Las consultas anteriores ofrecen una visión básica de los datos; ahora veremos tres técnicas avanzadas.
Funciones de ventana
Cálculo del acumulado: esta consulta calcula el acumulado de valores de PIB por país, ordenado por año.
SELECT
country_name,
year,
value,
SUM(value) OVER (PARTITION BY country_name ORDER BY year) as running_total
FROM gdp_data;

Resultado del acumulado
Uso de CTE (expresiones de tabla comunes)
CTE para filtrar y agregar: esta consulta usa una CTE para filtrar los registros desde 2020 en adelante y después calcula el PIB medio por país.
WITH recent_data AS (
SELECT
country_name,
year,
value
FROM gdp_data
WHERE year >= 2020
)
SELECT
country_name,
AVG(value) as average_gdp
FROM gdp_data
GROUP BY country_name;

Resultado de la CTE
Uso de self joins
Calcular el crecimiento interanual del PIB: con esta consulta calculamos el crecimiento interanual del PIB por país.
SELECT
a.country_name,
a.year,
a.value as current_year_value,
b.value as previous_year_value,
(a.value - b.value) / b.value * 100 as growth_percentage
FROM gdp_data a
JOIN gdp_data b
ON a.country_name = b.country_name
AND a.year = b.year + 1;

Resultado de la consulta con self join
Optimización del rendimiento
Para asegurar un rendimiento óptimo y controlar costes, es fundamental entender qué factores influyen en el rendimiento de Redshift e implementar buenas prácticas para ajustar el clúster.
En esta sección, exploraremos los aspectos clave de la optimización del rendimiento en Redshift y ofreceremos ideas basadas en la información del clúster.
Cómo entender el rendimiento en Redshift
El rendimiento en Amazon Redshift depende de múltiples factores, desde la configuración de hardware hasta las técnicas de optimización de consultas. Comprenderlos es clave para detectar cuellos de botella y tomar mejores decisiones para mejorar el rendimiento del clúster.
Hemos configurado un clúster de Redshift con dos nodos ra3.4xlarge y el conjunto de datos utilizado ocupa solo 391 KB.
Además, la siguiente imagen muestra que la utilización de CPU del clúster se mantiene cerca del 0% durante todo el periodo, lo que indica que el clúster no se está usando de forma intensiva y podría estar sobredimensionado para nuestra carga actual.

Uso de CPU del clúster
Algunos factores clave que impactan el rendimiento de Redshift son:
- Configuración del clúster: El tipo de nodo y el número de nodos influyen mucho en el rendimiento. Es esencial elegir la configuración adecuada según los requisitos de la carga.
- Distribución y sesgo de datos: Distribuir los datos uniformemente entre nodos y minimizar el sesgo ayuda a optimizar las consultas al reducir el movimiento de datos durante la ejecución.
- Complejidad y optimización de consultas: Escribir consultas eficientes y aprovechar las funciones de optimización de Redshift puede mejorar notablemente el rendimiento.
- Gestión de cargas de trabajo: Gestionar y priorizar bien las cargas garantiza que las consultas críticas reciban los recursos necesarios y mantengan un rendimiento óptimo.
Buenas prácticas para optimizar el rendimiento
Para optimizar el rendimiento del clúster, conviene seguir buenas prácticas en el diseño de tablas y la gestión de datos. Aunque el conjunto de datos sea pequeño, aplicarlas sienta una base sólida para crecer con eficiencia.
- Estilos y claves de distribución: Elegir el estilo y la clave de distribución adecuados es clave para repartir los datos entre nodos y minimizar movimientos durante las consultas. Con un conjunto pequeño y dos nodos, como en nuestro caso, su impacto es menor, pero sigue siendo buena práctica para escalar.
- Claves de ordenación (sort keys): Seleccionar claves de ordenación en columnas que se usan para ordenar, filtrar y unir mejora mucho el rendimiento. Al ordenar los datos durante la ingesta, Redshift organiza la información para ejecutar consultas de forma óptima.
- Codificación de compresión: Aplicar compresión a las columnas según su tipo y cardinalidad reduce el almacenamiento y acelera las consultas. Redshift ofrece compresión automática al usar COPY o CREATE TABLE AS SELECT, muestreando los datos para elegir la codificación óptima.
Supervisión y mantenimiento
La monitorización y el mantenimiento regulares del clúster son esenciales para garantizar rendimiento óptimo y eficiencia en costes. La siguiente imagen desglosa nuestros costes mensuales de Redshift y revela oportunidades de optimización.

Gráfico de costes y uso para el caso de Redshift
Según la imagen, nuestro clúster de Redshift parece sobredimensionado para el conjunto de datos actual, lo que se traduce en baja utilización e ineficiencias de coste.
Con herramientas de AWS como Amazon CloudWatch y la consola de administración, podemos monitorizar métricas clave de rendimiento, como uso de CPU y rendimiento de consultas. Estas métricas ayudan a detectar posibles problemas y tomar decisiones basadas en datos para optimizar el clúster.
Dada la baja utilización, podemos considerar estas estrategias para optimizar costes:
- Pausar el clúster cuando no se use desde el Cost Optimization Hub
- Reducir el tamaño a un tipo de instancia más pequeño acorde con la carga
- Explorar Amazon Redshift Serverless si la carga es intermitente o impredecible
A medida que crezcan los datos y evolucione la carga, sigue monitorizando el rendimiento y reevalúa el dimensionamiento y las estrategias de optimización.
Seguridad y cumplimiento
Al trabajar con datos sensibles en Amazon Redshift, es importante mantener los máximos estándares de seguridad y cumplimiento. Dado el creciente número de requisitos normativos y la necesidad de proteger información sensible, implementar medidas sólidas de seguridad y cumplir las directrices de compliance es crítico para gestionar el clúster.
Cumplimiento y buenas prácticas de seguridad de datos
Cumplir con normativas sectoriales y leyes de protección de datos es una prioridad para las organizaciones que tratan información sensible. Amazon Redshift ofrece funciones y capacidades para ayudarnos a atender estos requisitos de forma eficaz.
Además del cumplimiento, aplicar buenas prácticas de seguridad de datos en Amazon Redshift es clave para proteger la información sensible frente a accesos no autorizados y posibles brechas.

Buenas prácticas de seguridad de datos
Auditorías periódicas
Realizar auditorías de seguridad con regularidad es esencial para identificar vulnerabilidades, evaluar la eficacia de las medidas existentes y asegurar el cumplimiento continuo. Ten en cuenta estas prácticas:
- Revisa periódicamente los privilegios de acceso de usuarios y elimina permisos innecesarios
- Supervisa y analiza logs para detectar actividades sospechosas o intentos de acceso no autorizados
- Realiza escaneos de vulnerabilidades y pruebas de penetración para identificar posibles debilidades
- Valida el cumplimiento de políticas internas de seguridad y regulaciones externas
Enmascaramiento de datos
El enmascaramiento de datos consiste en ocultar elementos sensibles manteniendo la estructura y formato de los datos. Al enmascarar información sensible, la protegemos de accesos no autorizados y preservamos la privacidad. Algunas opciones en Amazon Redshift:
- Enmascaramiento dinámico: enmascara datos en tiempo real según roles y permisos
- Enmascaramiento estático: crea copias enmascaradas para entornos no productivos
- Tokenización: sustituye datos sensibles por tokens irreversibles para proteger su confidencialidad
Control de acceso
Implementar mecanismos sólidos de control de acceso es crítico para que solo personas autorizadas accedan a datos sensibles en nuestro clúster de Amazon Redshift. Puedes aplicarlos así:
- Usa AWS Identity and Access Management (IAM) para gestionar autenticación y autorización.
- Implementa control de acceso basado en roles (RBAC) para conceder permisos según funciones y responsabilidades.
- Activa la autenticación multifactor (MFA) para añadir una capa extra de seguridad
- Revisa y actualiza las políticas de acceso con regularidad para mantener el principio de mínimo privilegio.


Conclusión
En este artículo hemos visto desde los fundamentos hasta aspectos avanzados del uso de Amazon Redshift para data warehousing. Empezamos entendiendo la importancia del data warehousing y cómo Amazon Redshift ofrece una solución potente, escalable y rentable para analizar grandes volúmenes con SQL.
Después recorrimos el proceso de configuración de un clúster de Amazon Redshift, incluidos los requisitos previos, la creación del clúster y los parámetros de configuración. También profundizamos en la carga de datos en Redshift usando AWS S3 y el comando COPY, con ejemplos de sintaxis y explicaciones.
Además, cubrimos lo esencial de las consultas en Redshift, desde SQL básico hasta técnicas avanzadas como funciones de ventana y joins complejos. También hablamos del ajuste de rendimiento, con buenas prácticas como estilos de distribución, sort keys y compresión.
Por último, destacamos la importancia de la seguridad y el cumplimiento en Amazon Redshift, incluyendo cifrado, control de acceso y consideraciones de compliance.
Próximos pasos
Si quieres ampliar tus conocimientos y habilidades trabajando con Amazon Redshift y AWS, te recomendamos estos recursos de DataCamp:
- Analyzing Ticket Sales Data with Amazon Redshift: un code-along práctico para analizar datos de ventas de entradas con Amazon Redshift, ganando experiencia en consultas y visualización.
- Introduction to AWS: curso introductorio y completo sobre servicios y conceptos de AWS para construir una base sólida de trabajo con AWS y Redshift.
- Introduction to Redshift: profundiza en Amazon Redshift con este curso dedicado, que cubre temas avanzados como carga de datos, optimización de consultas y troubleshooting.
Domina Amazon Redshift y aprovecha sus capacidades para extraer insights valiosos de tus datos y tomar decisiones basadas en datos.
Zoumana desarrolla herramientas de IA LLM para ayudar a las empresas a llevar a cabo la diligencia debida en materia de sostenibilidad y evaluaciones de riesgos. Anteriormente trabajó como científico de datos e ingeniero de aprendizaje automático en Axionable e IBM. Zoumana es la fundadora de la plataforma tecnológica educativa de aprendizaje entre iguales ETP4Africa. Ha escrito más de 20 tutoriales para DataCamp.
