Blog de Amazon Web Services (AWS)

Integración de Amazon EMR con Amazon Redshift

En el pasado, los datos analíticos se analizaban en base a técnicas de Business Intelligence (BI) utilizando bases relacionales, porque básicamente los sistemas del proveedor o, como se los conoce en BI, los sistemas fuente (sistemas que la compañía usa para el control de inventario, finanzas, CRM, etc.) se almacenaron en bases relacionales y esta fue la única forma de análisis.

Las bases de Data Warehouse (DW), como se conocen este tipo de entornos, concentran todos los datos de la empresa, formando una vista única del negocio y otorgando el poder de analizar el conjunto. La escala de datos de este tipo de entorno es alrededor de Terabytes (TB) y su mantenimiento y escala en entornos locales es complejo dada la cantidad de máquinas que se requieren para almacenar esta cantidad de datos. La mayoría de estos datos se consumen a través de herramientas de visualización de BI en informes predefinidos, o para un grupo más pequeño de usuarios con acceso a través de consultas SQL.

Para enriquecer el análisis, además de los datos relacionales, actualmente utilizamos datos no relacionales, como datos de sensores y registros, y datos semiestructurados, que generalmente no forman parte del DW de la empresa, como clima, demografía, censo y redes sociales. Estos últimos datos no forman parte de este entorno porque son datos muy complejos para adquirir y cargar en bases relacionales.

Este concepto de análisis más amplio, que utiliza múltiples fuentes, se llama Data Lake y hoy en día se ha convertido en algo común dada la facilidad de adquisición, manejo y ejecución que los entornos de Big Data han traído a las empresas. Otra cosa que trajo Data Lakes fue la capacidad de usar datos en tiempo real, creando así un entorno completo, receptivo y muy útil para la toma de decisiones, campañas, etc.

Como resultado, se sabe que los entornos de Data Lakes almacenan datos de Exabytes (EB) a Petabytes (PB), además de agregar nuevos motores analíticos basados en Hadoop, Spark, Hive, Presto, etc. que permiten el acceso y el procesamiento de estos datos. Sin embargo, es engañoso pensar que los entornos DW dejaron de existir con la llegada de Data Lakes. De hecho, estos entornos son complementarios, y reunir estos conceptos forma una visión aún más completa del negocio, entregando informes aún más completos en menos tiempo a los tomadores de decisiones.

Si los entornos DW en las instalaciones ya se consideran complejos y costosos debido a todas las licencias y el mantenimiento del servidor, imagine los entornos de Data Lakes que tienen una escala mucho mayor. En esta publicación mostraremos cómo AWS ayuda a los clientes a mantener entornos complejos a un costo reducido.

AWS ofrece una cartera de servicios integral, segura, escalable y rentable que permite a los clientes construir su lago de datos en la nube y analizar todos sus datos con el conjunto más amplio de enfoques analíticos. Como resultado, más organizaciones están ejecutando sus data lakes y analytics en AWS que en cualquier otro lugar, confiando en AWS para ejecutar sus cargas de trabajo de datos analíticos. Puede consultar algunos casos haciendo clic aquí.

Los elementos de la cartera analítica de AWS incluyen Amazon EMR (Elastic Map Reduce), que es la plataforma Hadoop administrada por AWS, y Amazon Redshift, una base de columnas específica para las cargas de trabajo de DW. Es sobre ellos de lo que hablaremos en esta publicación.

Amazon EMR

Amazon EMR es una plataforma Hadoop administrada por AWS que le permite crear clústeres de Hadoop sin tener que conocer a fondo la instalación de los componentes del clúster, ya que las plantillas EMR le permiten elegir los elementos más comunes para la instalación. utilizado en grupos de Hadoop. Una vez que el cluster está en funcionamiento, todos los elementos elegidos están instalados y listos para usar.

Características importantes

  • AWS mantiene las plantillas y las actualiza constantemente. Puede elegir entre varias versiones según su necesidad.
  • Posibilidad de instalar paquetes diferentes a los presentes en la plantilla (con el clúster en el aire) o mediante bootstrap (ingestión de un script para la instalación) durante la creación del clúster.
  • Elija el número de nodos maestros, asegurando su conmutación por error en caso de falla.
  • Clúster transitorio, lo que significa que solo está encendido durante el tiempo que sea necesario, evitando que tenga que pagar por un clúster que no tiene que estar encendido todo el tiempo. Para esto dos cosas son fundamentales:
    • Uso del catálogo de metadatos de AWS Glue (puedes elegir usarlo en Hive, Spark o Presto)
    • Capacidad para leer y escribir datos en Amazon S3
  • Durante la configuración, también puede elegir si el cluster estará activo hasta que lo termine o si terminará automáticamente al final de una ejecución (Paso) es decir, solo servirá para ejecutar una carga de trabajo específica ( Ej: un ETL o una transformación programada). Este cluster se termina, asegurando que pague solo por el tiempo de ejecución.

A continuación, se presentan algunas de las opciones de inicio del cluster EMR:

Otro elemento que le brinda la mejor utilización de los recursos computacionales y, por lo tanto, una mejor utilización de su presupuesto es la escalabilidad automática del cluster, que le permite a su cluster aumentar y disminuir automáticamente los recursos computacionales (números de nodo) según las políticas definidas por usted, asegurando que se absorbe el uso máximo y que puede mantener su cluster al mínimo cuando no hay una utilización significativa, ahorrando su presupuesto.

También es posible usar instancias reservadas de hasta un 75% de ahorro en el precio final (con contratos de 1 o 3 años) o incluso usar instancias Spot, que son capacidades informáticas no utilizadas que ofrece AWS con descuentos de hasta 90% sobre el precio normal. El uso combinado de estas dos formas de pago permite el mejor costo operativo total (TCO).

En resumen, Amazon EMR tiene las siguientes características:

  • Clusters transitorios o a largo plazo;
  • Escalabilidad basada en políticas predefinidas o manuales;
  • Soporte Hadoop y Spark incluido;
  • Uso de instancias Spot;
  • Los datos pueden usar el clúster HDFS o la integración S3 para el acceso a los datos y la persistencia de los resultados (o ambos al mismo tiempo);
  • Integración del catálogo de metadatos de Glue (para Spark, Hive y / o Presto);
  • Supervise el rendimiento de su clúster a través de Amazon Cloudwatch y audite a través de AWS Cloudtrail.
  • Monitoreo automatizado para el reemplazo automático de nodos en caso de problemas;
  • Cifrado en reposo y en tránsito;
  • Aislamiento de red a través de VPC (Virtual Private Cloud);
  • Controle el acceso y los permisos a través de Identity and Access Management (IAM), integración con Microsoft AD o Kerberos.

Amazon Redshift

Amazon Redshift es una base de datos columnar específica para cargas de trabajo analíticas. Considerado como una arquitectura de procesamiento paralelo masivo (MPP) o Shared Nothing (donde las cargas de trabajo de un nodo no influyen en los demás), Redshift divide la carga de trabajo entre nodos y, por lo tanto, logra escalas de datos Exabyte con rendimiento extremo. La arquitectura a continuación muestra la arquitectura interna de Redshift.

Leader Node recibe conexiones, almacena metadatos y estadísticas de tablas y crea planes de ejecución de consultas. Él es el orquestador del entorno Redshift que entrega las tareas del plan de ejecución a Compute Nodes. Solo los nodos de cálculo se facturan y cuentan como nodos del cluster, es decir, el nodo de líder no cuenta como procesamiento y, por lo tanto, no se factura.

Otra característica de Amazon Redshift es que a través de Redshift Spectrum, puede acceder a los datos que están en Amazon S3 y que están catalogados en el catálogo de metadatos de Glue. Esto le da a Redshift acceso a los mismos datos a los que accedemos a través de Athena o incluso EMR (siempre que esté utilizando el catálogo de metadatos de Glue), manteniendo así una vista única de sus datos de Data Lake en Amazon S3, evitando datos duplicados y economía generadora

Con Redshift Spectrum, puede acceder a sus datos de Data Lake en Amazon S3, así como colocar los datos históricos de su clúster Redshift en él. También puede acceder a ellos cuando sea necesario manteniendo su clúster con los datos que realmente importan y ahorrando dinero en su cuenta de AWS.

En resumen, Amazon Redshift ofrece:

  • Cargas de datos analíticos de rendimiento extremo;
  • De Gigabytes a Exabytes de datos;
  • Arquitectura MPP (el rendimiento lineal aumenta con el aumento de nodos en el clúster);
  • Acceso a sus datos de Data Lake en S3 y acceso al almacenamiento de datos históricos en S3 a través de Redshift Spectrum;
  • Redshift Spectrum admite archivos Parquet, ORC, AVRO, Grok o CSV;
  • Mantenimiento inteligente con Auto Analyze (recopilación de estadísticas), Auto Vacuum (recuperación de espacio en disco) y Auto WLM (Workload Management);
  • Escala de concurrencia: escala su clúster automáticamente para resolver picos de procesamiento resolviendo colas de consultas. Por cada 24 horas que su clúster se active, tiene derecho a 1 hora de uso gratuito de Concurrency Scaling.
  • Cambio de tamaño elástico: para cuando necesite hacer crecer o reducir su clúster en minutos;
  • Ejecución de procedimientos almacenados en PL/PgSQL.

Formas de integrar Amazon EMR, Amazon Redshift y Amazon S3

Integración con el comando “Copiar”:

El comando copiar carga datos de varias fuentes de datos, como Amazon S3, Amazon EMR (HDFS), Amazon DynamoDB, o incluso un servidor SSH remoto en Amazon Redshift, materializando estos datos en tablas. Básicamente, se necesitan 3 parámetros para realizar un comando de copia:

  • Nombre de la tabla;
  • Dirección de origen de datos [Amazon S3, Amazon EMR (HDFS), Amazon DynamoDB o SSH];
  • Autorización, como función de acceso (IAM_ROLE) o usando las teclas (TECLA DE ACCESO y TECLA SECRETA).

Ejemplo de sintaxis del comando Copiar:

copy <nombre_de_la_tabla>
from ‘s3://<fuente_de_datos>
iam_role ‘arn:aws:iam::<aws-account-id>:role/<role-name>‘;

Integración del catálogo de metadatos de AWS Glue:

Como se mencionó anteriormente, Amazon EMR, Amazon Athena y Amazon Redshift pueden ver los datos que están catalogados en los metadatos de Amazon Glue. A continuación, se muestra una arquitectura de referencia que ilustra este concepto.

Y con respecto a la migración, ¿qué opciones tenemos?

Algunas herramientas de mercado o incluso herramientas nativas (incluidas en la licencia de su base de datos) pueden ayudarlo a migrar a AWS. Si no tiene este tipo de herramienta/licencia, ofrecemos un servicio llamado AWS Database Migration Service (DMS) que lo ayuda a migrar y/o replicar datos (CDC) de manera fácil y segura desde sus bases de datos y/o almacenes de datos de AWS con simplicidad y bajo costo.

Con respecto al esquema de la base de datos (tablas, procedimientos, etc.), tenemos una herramienta llamada AWS Schema Conversion Tool (SCT), que ayuda a convertir sus bases de datos relacionales y/o almacenes de datos en bases de datos abiertas. fuente o servicios nativos de AWS como Amazon Aurora y Redshift. En algunos casos, la migración es simple y directa. En otros, el SCT genera un informe que ayuda mucho a prepararse y saber cuáles serán los desafíos en este viaje.

Un ejemplo del uso de estas herramientas se puede ver a continuación:

Se puede obtener información adicional de Amazon EMR, Amazon Redshift, Amazon S3, Amazon Athena, Amazon Glue, AWS Database Migration Service (DMS) y la documentación de AWS Schema Conversion Tool (SCT).

Vea también nuestro Webinar bajo demanda acerca de Amazon Redshit y Amazon EMR en nuestra página Weninars 2019, donde puede encontrar otros webinars bajo demanda y suscribirse a los siguientes.


Autor:

Ricardo Serafim, Specialist Solutions Architect: Analytics