Blog de Amazon Web Services (AWS)

Cómo extraer valor de sus datos con Data Lakes y análisis en AWS

Hugo Rozestraten y Felipe Santos

Cada vez es más común ver empresas con procesos de toma de decisiones basados en datos, impulsados por modelos de negocio cada vez más digitales y distribuidos, centrados en la experiencia y lealtad de usuarios y consumidores en general.

Definir una estrategia de datos eficiente es fundamental para trabajar en este modelo, y permitir el acceso a la información desde el uso de los servicios que ofrece su empresa es crucial para tomar decisiones oportunas en respuesta a los cambios del mercado.

Una práctica cada vez más generalizada en el mercado es el uso de lagunas de datos para almacenar, procesar y servir información de manera segura, de rendimiento y de bajo costo.

 

¿ Por qué Data Lakes?

Data Lake es un estándar de diseño que tiene como objetivo (entre otros) estandarizar el almacenamiento de datos originados en sistemas generalmente transaccionales con el fin de permitir el acceso a ellos de manera controlada. La idea es tener un único repositorio para cualquier dato o fuente de datos en una organización.

Los Data Lakes son repositorios de datos estructurados y no estructurados, es decir, no es necesario hacer ningún tipo de definición de formato de datos para su almacenamiento, pero hay tipos de archivos que se recomiendan y que ayudan en el acceso y compresión, como Parquet y ORC entre otros.

Este enfoque facilita el proceso de captura de datos, descubre las fuentes de datos para la competencia de acceso para tareas analíticas, ya que los datos ya residen en el Data Lake y facilita el proceso de lectura/acceso. Por lo tanto, el Data Lake en sí mismo se convierte en la «fuente de verdad» sobre cualquier dato capturado, y ya no requiere acceso a las bases de datos de los sistemas responsables de ellos.

Desde el punto de seguridad y control de acceso hasta los datos, aplicar políticas de seguridad y auditar el acceso a cualquier dato se convierte en una tarea menos compleja y centralizada.

Durante muchos años hemos vivido con empresas que toman decisiones basadas en entornos de inteligencia empresarial, consumiendo datos de un Data Warehouse que generalmente se basa en bases de datos estructuradas y feeds, básicamente, en extractos de bases de datos relacionales y/o archivos provenientes de sistemas. Y esa estrategia funcionó y sigue siendo una realidad, pero el volumen, la velocidad y la variedad de datos recopilados en estos días hace que esta práctica deba complementarse con algo que pueda abarcar nuevos tipos de datos que complementen la visión para la toma de decisiones.

La idea detrás de Data Lakes es que las empresas almacenen y utilicen datos importantes de cualquier fuente que tengan (CRMs, ERPS, Sitios web, Aplicaciones móviles, Dispositivos móviles, Sensores, etc.) en el volumen que necesiten, a la velocidad que se generan los datos, y que los datos son accesibles para realizar análisis importantes exploratorios para el negocios.

Imagine una empresa que tiene una aplicación móvil y un sitio web para la interacción con el cliente, Data Lake debe permitir que los datos de navegación web en el sitio o aplicación estén relacionados con el historial de productos ya adquiridos por un cliente, así como las interacciones que esta persona ha tenido con algún tipo de canal de comunicación del empresa. Con este enfoque, es posible identificar intereses, deseos y frustraciones eventuales en la relación del cliente con la empresa, para ofrecer potencialmente algo que satisfaga lo que el cliente está buscando, o incluso reparar una situación no deseada.

Vista de integración de datos de AWS

Almacén de datos con Data Lake.

La realidad actual es que los datos de aplicaciones, los datos de dispositivos de Internet de las Cosas (IOT), como cámaras y sensores de los más diversos propósitos, registros de aplicaciones, imágenes, interacciones de redes sociales, videos, audio de diversas fuentes y diferentes formatos son importantes fuentes de información hoy en día.

Entonces es necesario tener acceso a los datos transaccionales que llegaron al Data Warehouse, así como a los nuevos datos que han surgido, permitiendo estas correlaciones.

Un ejemplo interesante es el caso de las tiendas inteligentes como Amazon Go donde todas estas técnicas se aplican a la formación de modelos de inteligencia artificial que reconocen productos, clientes y sus acciones de compra. Después de aplicar los modelos en producción, hacen que no haya necesidad de pasar por el cajero para cobrar por los productos comprados, automáticamente se liberan y cobran a la aplicación al salir de la tienda.

Aunque parezca simple, en el entrenamiento de estos modelos se utilizan miles de muestras de imágenes, lo que da cada vez más confiabilidad a los modelos entrenados y para ello se requiere una gran área de almacenamiento y análisis de datos, utilizando así Data Lake.

Cómo ensamblar un Data Lake

Algunos puntos clave para un lago de datos son:

·      Un lugar único para almacenar datos con alta escalabilidad y rentabilidad;

·      Almacenamiento seguro que soporta varios formatos;

·      Capacidad individual y/o conjunta de procesamiento/análisis de cada fuente de datos;

·      La capacidad de admisión continúa a medida que se generan los datos;

·      Controles de acceso e información centralizada de datos (metadatos);

Data Lake es un entorno vivo, tiene que ser capaz en el futuro de recibir nuevas fuentes, entregar datos a una nueva herramienta de análisis, almacenar y procesar nuevos formatos de archivo que puedan surgir, como sucedió con JSON, Avro, ORC, Parquet, jpg, mp4, etc.

Cómo AWS le ayuda a crear un lago de datos

Los intentos de montar Data Lakes en un entorno local con sus propias máquinas han demostrado a lo largo de los años que se trata de una estrategia de alto costo y riesgo de ejecución. Con el fuerte vínculo entre la capacidad de almacenamiento y procesamiento, y la imprevisibilidad del crecimiento, además de los altos costos y, a veces, los procesos burocráticos de compra y preparación de hardware, muchos proyectos han caído en desuso y pérdida de credibilidad por áreas no técnicas.

La computación en la nube con un enfoque de capacidad flexible para el uso de recursos bajo demanda, la ganancia de escala y los valores de almacenamiento de una décima a una centésima parte del almacenamiento local trajo una nueva realidad y permitió la construcción de Data Lakes, lo que permitió a las empresas extraer valor empresarial a través de la relación de estos datos. en un tiempo de comercialización más interesante que los enfoques basados en la infraestructura local.

Hoy en día, más de 10.000 (10.000) empresas han construido y mantenido sus lagos de datos en AWS.

Varios clientes crearon su Data Lake en AWS utilizando principalmente servicios administrados y arquitecturas basadas en eventos con recursos de procesamiento desacoplados del almacenamiento.

Data Lake: ingesta, almacenamiento, análisis y disponibilidad de datos

AWS Lake Formation

AWS Lake Formation es el servicio de AWS que centraliza y facilita la configuración de un lago de datos seguro en días y ayuda a recopilar y catalogar datos de bases de datos y almacenamiento de objetos, mover datos al nuevo lago de datos de Amazon S3, borrar y clasificar datos mediante la máquina Algoritmos de aprendizaje y proteger el acceso a datos confidenciales.

Los usuarios pueden acceder a un catálogo de datos centralizado que describe los datasets disponibles y su uso adecuado. Por lo tanto, los usuarios utilizan estos conjuntos de datos con sus servicios de análisis y aprendizaje automático preferidos, como Amazon Redshift, Amazon, Athena y (en versión beta hasta ahora en este artículo) Amazon EMR para Apache Spark.  AWS Lake Formation aprovecha los recursos disponibles en AWS Glue.

Desde la ingestión, preparación y uso de datos, Lake Formation añade controles de acceso granulares a nivel de columna y supervisión de gestión y operaciones para la resolución de problemas y la auditoría.

Descripción general de las etapas y la anchura en la consola Lake Formation

 

Catálogo centralizado y único

AWS Glue Data Catalog es el catálogo centralizado de todos los metadatos de Data Lake. Mediante un catalogo de dados centralizado, almacena información sobre las bases de datos y tablas que se encuentran en Data Lake, que residen en Amazon S3 o en orígenes de datos relacionales.

Tener un catálogo centralizado permite que todas las herramientas analíticas tengan la misma vista sobre los datos, por ejemplo, alguien agregó una nueva columna o agregó un nuevo comentario describiendo un campo, todas las herramientas tienen esta vista de los cambios.

Almacenamiento sin acoplar, seguro e ilimitado

Amazon S3 es la piedra angular de la arquitectura de Data Lake en AWS.  Amazon S3  es una matriz de objetos que admite cualquier formato y tamaño de archivo desde bytes hasta terabytes en un único archivo. Es un servicio escalable para Exabytes sin asignación previa, lo que significa que paga cuánto usa y usa lo que realmente necesita.

Características de Amazon S3  ideales para un lago de datos:

·      Duradero: 99,99999999999% de durabilidad, cada archivo se replica al menos seis veces dentro de la región donde se crea;

·      El servicio cumple con los siguientes programas, certificados por terceros:

o   Controles de sistema y organización (SOC)

o   Estándar de seguridad de datos de la industria de tarjetas de pago (PCI DSS)

o   Programa Federal de Gestión de Riesgos y Autorizaciones (FedRAMP)

o   Ley de Portabilidad y Responsabilidad de Seguros Médicos (HIPAA)

·      Los datos se pueden cifrar de forma nativa mediante la solución Amazon KMS, con claves generadas a partir de su cuenta o traídos por usted sin penalización de rendimiento;

·      Auditoría nativa y facilitada;

·      Control delgado del acceso por objeto, carpeta o área (bucket);

·      Alto rendimiento de escritura y lectura por ingestión y herramientas de análisis;

·      Completamente desacoplado de la informática, el área de almacenamiento puede crecer de forma independiente al reducir los costos de crecimiento del entorno;

En el modelo de seguridad compartida, AWS proporciona seguridad hasta la disponibilidad del uso del servicio y las herramientas completas para implementar políticas de seguridad en los servicios que está utilizando, como el cifrado en tránsito y en reposo, las reglas y políticas de permisos y la administración de acceso.

Ingestión de datos en Data Lake AWS

Fuentes de datos como bases de datos relacionales incrementalmente o con CDC (Change Data Capture), bases de datos NoSQL, registros de servidor de aplicaciones, datos de sensores se pueden ingerir continuamente según las características.

A continuación se muestra una serie de servicios gestionados de AWS para facilitar el envío o la captura de datos para su ingestión en Data Lake.

Servicios administrados para ingestión continua, streaming o CDC:

·      AWS gestiona totalmente Amazon Kinesis Data Streams  y Amazon Kinesis Data Firehose y se utilizan para transmitir datos como datos de navegador web o aplicaciones. Firehose entrega datos directamente particionados en Amazon S3 y respetando las definiciones hechas en su catálogo.  Además de la ingestión, Amazon Kinesis Data Streams se utiliza ampliamente para análisis en tiempo real;

·      AWS Data Migration Service (DMS) se utiliza para la replicación continua de los cambios de la base de datos en operaciones de inserción, eliminación y actualización, replicando en Amazon S3Amazon Kinesis, o Amazon Redshift, en un escenario de Data Lake;

·       Amazon Managed Streaming for Apache Kafka también se utiliza para streaming en tiempo real y análisis, que funciona en una plantilla de temas de «publicación» y «suscripción»;

·      AWS IoT Core es un servicio administrado para conectar y recibir mensajes de miles de millones de dispositivos conectados. AWS IoT Core también facilita el uso de servicios de AWS como AWS Lambda, Amazon Kinesis, Amazon S3, Amazon SagMaker, Amazon DynamoDB, Amazon CloudWatch, AWS CloudTrail y Amazon QuickSight.

Opciones para la ingesta de microbatches con intervalos de minutos a horas o carga completa:

·       Amazon Glue ETL tiene plantillas automatizadas para cargas iniciales e incrementales, que normalmente se utilizan en entornos de tamaño mediano, entregando datos a Amazon S3;

·      Amazon EMR (Elastic Map Reduce) tiene herramientas como Sqoop para cargar grandes volúmenes de datos en paralelo desde una conexión a las bases de datos de origen;

·      AWS Data Migration Service (DMS) también se puede utilizar para cargas iniciales completas con varias tablas en paralelo que entregan datos directamente a Amazon S3;

 

Opciones para la ingesta de archivos:

 

·       AWS Transfer for SFTP es un servicio SFTP administrado que tiene Amazon S3, como destino o origen final, lo que facilita la introducción de datos de aplicaciones que ya están trabajando en el modelo de servicio SFTP;

·       AWS Data Sync es un servicio para automatizar y acelerar el envío de datos a Amazon S3, trabajando con aceleradores WAN y cifrado. Data Sync aumenta la velocidad de transferencia hasta 10 veces;

·       AWS Snowball es un servicio de transferencia de datos basado en un dispositivo físico con discos que se envía al cliente y se devuelve a AWS para volúmenes de Terabytes;

Herramientas de transformación de datos del Data Lake

AWS dispone de un conjunto de potentes herramientas para elegir en función de diferentes volúmenes de datos y necesidades de procesamiento.

Opción para microbatches o procesamiento de datos por streaming:

·       AWS Lambda le permite crear arquitecturas de datos basadas en eventos. Una función Lambda reacciona a un evento de llegada de archivos, registros que llegan a una secuencia, mensajes en una cola, datos de sensores en la plataforma IoT, etc.

Opciones para lotes de Gigabytes a Terabytes:

·       Amazon Glue ETL ofrece dos modalidades diferentes de procesamiento:

o   SparkScala o PySpark, Apache Spark ETL Jobs contiene la lógica empresarial que ejecuta trabajos ETL en AWS Glue. Puede supervisar los trabajos para comprender las métricas de tiempo de ejecución, como el éxito, la duración y la hora de inicio. La salida de un trabajo son sus datos transformados, escritos en una ubicación que especifique.

o   El shell de Python ejecuta scripts de Python como un shell. Con una tarea de shell de Python, puede ejecutar scripts compatibles con Python 2.7 o Python 3.6. Puede utilizar estos trabajos para programar y realizar tareas que no requieran trabajos de ETL de Spark.

Opciones para lotes de datos altos, Terabytes a Petabytes:

Amazon EMR  es un servicio gestionado que le permite aprovechar un amplio conjunto de lenguajes y marcos para Big Data en AWS. Puede utilizar los siguientes componentes en EMR Release 5 para lotes: Hadoop, Hive, Livy, Cerdo, Presto, Spark, Sqoop y Tez.

Los precios de Amazon EMR dependen del tipo de instancia y del número de instancias EC2 que implemente, así como de la región en la que se ejecute el clúster. Los precios bajo demanda ofrecen tarifas bajas, pero puede reducir aún más los costes comprando instancias reservadas o instancias puntuales. Las instancias puntuales pueden ofrecer ahorros significativos, hasta una décima parte de los precios bajo demanda en algunos casos con una buena aplicabilidad de lotes.

 

Análisis en tiempo real

Los análisis en tiempo real se producen a medida que los datos entran en la plataforma e incluso antes de que se depositen en Data Lake. Los datos de entrada se procesan mediante una herramienta de análisis en tiempo real como Amazon Kinesis Data Analytics, otra herramienta lee los mismos datos y los deposita en Data Lake, como Amazon Kinesis Data Firehose.

 

Herramientas para análisis en tiempo real:

·       Amazon Kinesis Data Analytics es la forma más sencilla de analizar los datos de transmisión, obtener información práctica y responder en tiempo real a las necesidades empresariales y de los clientes. Amazon Kinesis Data Analytics reduce la complejidad de crear, administrar e integrar aplicaciones de streaming con otros servicios de AWS.

o   Los usuarios de SQL pueden consultar fácilmente datos de streaming o crear aplicaciones de streaming completas utilizando plantillas y un editor SQL interactivo.

o   Los desarrolladores de Java pueden crear rápidamente aplicaciones sofisticadas de transmisión mediante Apache Flink, bibliotecas Java de código abierto e integraciones con AWS para transformar y analizar datos en tiempo real.

·      Con Amazon EMR, procese datos en tiempo real de Amazon Kinesis,  Apache Kafka u otros flujos de datos con Spark Streaming. Ejecute el análisis de transmisión de forma tolerante a errores y escriba los resultados en Amazon S3 o HDFS almacenados en el clúster.

·      En un contexto en tiempo real, las plantillas de aprendizaje automático con formación se pueden aplicar desde los puntos finales de Amazon Sagemaker consumidos con las herramientas anteriores o mediante las funciones de AWS Lambda. Más información en este blog: https://aws.amazon.com/es/blogs/machine-learning/call-an-amazon-sagemaker-model-endpoint-using-amazon-api-gateway-and-aws-lambda/

Herramientas de análisis interactivo

Herramientas con motor SQL nativo:

Amazon Athena es un servicio de consultas interactivo sin servidor que facilita el análisis de datos directamente en Amazon S3 mediante SQL estándar. Con algunas acciones de AWS Management Console, puede señalar a Athena los datos almacenados en Amazon S3 y empezar a utilizar SQL estándar para ejecutar consultas ad-hoc y recibir resultados en cuestión de segundos.

 Amazon Redshift es un servicio de almacenamiento de datos a escala de petabytes totalmente administrado en la nube. Puede comenzar con unos pocos cientos de gigabytes de datos y escalar a un petabyte o más. Esto le permite utilizar sus datos para adquirir nuevos conocimientos para su empresa y sus clientes.

Con Amazon Redshift Spectrum puede ejecutar consultas de manera eficiente y recuperar datos estructurados y semiestructurados de archivos de Amazon S3 a través del catálogo de metadatos Glue sin tener que cargar datos en las tablas de Amazon Redshift. Las consultas de Redshift Spectrum aplican paralelismo masivo para ejecutar datasets grandes muy rápidamente.

Portátiles para científicos de datos:

 Amazon SagMaker ofrece a todos los desarrolladores y científicos de datos la capacidad de crear, entrenar e implementar rápidamente modelos de aprendizaje automático con portátiles, utilizando bibliotecas de código abierto como Tensorflow, Scikit learning, MXNET y cualquier otra cosa que elijan. Amazon SageMaker es un servicio totalmente gestionado que abarca todo el flujo de trabajo de aprendizaje automático para etiquetar y preparar los datos, elegir un algoritmo, entrenar, ajustar y optimizar el modelo para la implementación, predecir y tomar medidas. Sus modelos entran en producción más rápido con mucho menos esfuerzo y menos coste.

Los notebooks EMR son entornos Jupyter integrados en la consola de Amazon EMR que le permiten crear rápidamente portátiles Jupyter, conectarlos a clústeres de Spark y abrir el editor de notebooks Jupyter en la consola para ejecutar consultas y códigos de forma remota. Un bloc de notas EMR se guarda en Amazon S3 independientemente del clúster para ofrecer almacenamiento duradero, acceso rápido y flexibilidad. Puede tener varios portátiles abiertos, adjuntar varios portátiles en un único clúster y volver a utilizar un portátil en distintos clústeres.

Visualización de datos:

Amazon Quicksight es una herramienta de visualización totalmente integrada con los servicios de análisis de Amazon Athena y Amazon Redshift, así como datos directos en S3 o bases de datos gestionadas en Amazon RDS, entre otros.

Como servicio administrado, QuickSight le permite crear y publicar fácilmente paneles interactivos que incluyen ML Insights. Se puede acceder a los paneles desde cualquier dispositivo e integrarlos en aplicaciones, portales y sitios web.

Abstracto

En esta publicación describimos las características y componentes de un Data Lake y cómo AWS facilita la creación, el control y la seguridad de un lago de datos, con los servicios de AWS Lake Formation, y todos los servicios que interactúan con él, como Amazon Kinesis y AWS Glue, Amazon Athena, Amazon Redshift, Amazon EMR y Amazon Quicksight.,

Desde la ingestión hasta el consumo de datos, usted encuentra en este post varias herramientas para cada tipo de necesidad y volumen de datos.

 

Haga más con Data Lakes en AWS:

Siga nuestra serie de publicaciones de blog de Data Lake para aprender a crear y extraer valor de su lago de datos de AWS.