Diseño y Despliegue de un flujo de trabajo para la creación de un AWS Lake

Objetivo del Negocio

Nuestro cliente requería que eSage Group retirase una solución de Alooma antes de que su soporte para Redshift expirase. Alooma se utilizó para mover datos de primera mano de una base de datos MariaDB alojada en Rackspace a AWS Redshift.

Solución

eSage Group realizó una fase de investigación inicial para comprender los requisitos comerciales y técnicos, el impacto potencial de la migración y evaluar las tecnologías apropiadas para retirar Alooma.

Puntos clave de la investigación inicial:

  • La base de datos de origen es MariaDB, alojada en Rackspace, pero el motor de la base de datos o el alojamiento podrían cambiar en el futuro.
  • Al rededor de 300 tablas necesitaban estar sincronizadas o replicadas de MariaDB a Redshift.
  • Se pueden agregar nuevas tablas en cualquier momento.
  • El esquema de las tablas existentes podría cambiar.
  • Todas las tablas deben configurarse para sincronizarse al menos una vez al día, y solo un conjunto de tablas debe sincronizarse cada 15 minutos, durante los días laborables.
  • Varias tablas no tienen una columna de "última actualización en" o una columna de identidad.
  • Alooma mantiene los datos sin procesar en Redshift, que es difícil de consumir para el análisis y es costoso.
  • Los datos sin procesar o una copia completa de las tablas deben mantenerse en S3 en lugar de Redshift.
  • Expertos en SQL y usuarios con menos experiencia en SQL consumen estas tablas.
  • Limitar el acceso del usuario, a solo datos relevantes para su rol, es decir, el equipo de fabricación no puede acceder a los datos financieros.

eSage Group eligió AWS Lake Formation para reemplazar a Alooma. Lake Formation crea flujos de trabajo de Glue que rastrean tablas de origen, extraen los datos y los cargan en S3. Se puede definir conexiones JDBC para permitir que Lake Formation acceda a sus bases de datos de AWS y bases de datos locales, incluidas Oracle, MySQL, Postgres, SQL Server y MariaDB. Una vez que sus datos estén en su lago de datos S3, puede definir políticas de acceso, incluidos los controles de acceso a nivel de tabla y columna y aplicar el cifrado para los datos en reposo. Luego, puede utilizar una amplia variedad de servicios analíticos y de aprendizaje automático de AWS para acceder a su lago de datos, así como a aplicaciones comerciales de terceros, como Tableau y Looker. Todo el acceso es seguro, administrado y auditable.

Se creó un flujo de trabajo de AWS Lake Formation para realizar cargas incrementales, aunque Lake Formation tiene algunas limitaciones que requieren una lógica personalizada.

  • AWS Glue Jobs realiza un seguimiento de los datos cargados durante las cargas incrementales. Por lo tanto, crear un flujo de trabajo para las tablas con carga de alta frecuencia y uno para la carga diaria no es una opción. Debido a que Glue Job mantiene los bookmarks de los datos cargados de forma independiente, este método crearía datos duplicados porque algunas tablas están en ambos tipos de trabajos.
  • De forma predeterminada, Lake Formation rastrea todas las tablas en la base de datos de origen, incluso si el trabajo cargase solo algunas de ellas. El rastreo de todas las tablas de origen durante las cargas de alta frecuencia provoca latencia no deseada.
  • No hay opción para agregar nuevas tablas al flujo de trabajo una vez que se haya creado.
  • Los Glue Jobs fallan cuando más de una tabla comienza con el mismo nombre, como por ejemplo cliente y cliente_direccion.

Para abordar las limitaciones de Lake Formation, se ha creado un script de Python personalizado para que se ejecute a través de una función AWS Lambda. La función Lambda fue activada por un evento de CloudWatch dependiendo de la hora del día en que se necesita la carga, ya sea diariamente o cada 15 min. Dependiendo del tipo de carga, la secuencia de comandos de Python configuró los trabajos de Glue en tiempo de ejecución al configurar las tablas que deben cargar, activar/desactivar el rastreador y otras tareas necesarias basadas en un archivo de configuración almacenado en S3.

Resultados

  • Huella de uso reducida del clúster Redshift y de datos sin procesar en S3.
  • Solución nativa en la nube de AWS, no se necesitan herramientas de terceros como Alooma.
  • Seguridad mejorada, gracias a la limitación del acceso de los usuarios
  • Ubicación centralizada de los datos sin procesar
  • Acceso a los datos, de administación personal
  • Con Lake Formation creamos un catálogo de datos que describe los diferentes conjuntos de datos disponibles, lo que facilita a los analistas y científicos de datos el uso de su servicio de análisis preferido. Ahora pueden usar Redshift Spectrum, Amazon Athena, etc.

Entregables

  • Flujo de trabajo AWS Lake Formation con AWS Glue Jobs personalizados.
  • Data Lake en AWS S3.
  • Data Catalog.
es_MXSpanish
en_USEnglish es_MXSpanish