View a markdown version of this page

Escenario 3: preparación de los datos de secuencia de clics para procesos de análisis de datos - Soluciones de datos de streaming en AWS con Amazon Kinesis

Escenario 3: preparación de los datos de secuencia de clics para procesos de análisis de datos

Fast Sneakers es una boutique de moda dedicada a zapatillas de moda. El precio de cualquier par de zapatos puede subir o bajar según el inventario y las tendencias, por ejemplo, que la noche anterior se viera a un famoso o una estrella del deporte usando zapatillas de marca en la televisión. Es importante que Fast Sneakers realice un seguimiento de esas tendencias y las analice para maximizar sus ingresos.

Fast Sneakers no quiere introducir gastos generales adicionales en el proyecto con una nueva infraestructura que mantener. Desea poder dividir el desarrollo entre las partes apropiadas, donde los ingenieros de datos puedan centrarse en la transformación de datos y los científicos de datos puedan trabajar en su funcionalidad de machine learning de forma independiente.

Para reaccionar rápidamente y ajustar los precios de forma automática de acuerdo con la demanda, Fast Sneakers transmite eventos importantes (como los datos de clics de interés y de compra), lo que transforma y aumenta los datos de evento y los envía a un modelo de machine learning. Su modelo de machine learning puede determinar si es necesario un ajuste de precios. Esto permite a Fast Sneakers modificar automáticamente los precios para maximizar las ganancias de sus productos.

Ajustes de precios de Fast Sneakers en tiempo real

Ajustes de precios de Fast Sneakers en tiempo real

Este diagrama de arquitectura muestra la solución de streaming en tiempo real que Fast Sneakers creó con Kinesis Data Streams, AWS Glue y DynamoDB Streams. Al aprovechar estos servicios, tiene una solución que es elástica y fiable sin necesidad de dedicar tiempo a configurar ni mantener la infraestructura de apoyo. Puede dedicar el tiempo a lo que aporta valor a su empresa si se centra en un trabajo de extracción, transformación, carga (ETL) de streaming y su modelo de machine learning.

Para comprender mejor la arquitectura y las tecnologías que se usan en su carga de trabajo, a continuación se ofrecen algunos detalles de los servicios usados.

Streaming de AWS Glue y AWS Glue

AWS Glue es un servicio ETL completamente administrado que puede utilizar para catalogar los datos, limpiarlos, completarlos y trasladarlos de manera fiable de un almacén de datos a otro. Con AWS Glue, puede reducir significativamente el coste, la complejidad y el tiempo dedicado a crear trabajos ETL. AWS Glue no tiene servidor, por lo que no hay infraestructura que configurar ni administrar. Solo paga por los recursos utilizados mientras se ejecutan sus trabajos.

Al utilizar AWS Glue, puede crear una aplicación de consumidor con un trabajo ETL de streaming de AWS Glue. Esto le permite utilizar la escritura de Apache Spark y otros módulos basados en Spark para consumir y procesar los datos de los eventos. La siguiente sección de este documento profundiza en este escenario.

AWS Glue Data Catalog

AWS Glue Data Catalog contiene referencias a datos que se usan como orígenes y destinos de sus trabajos ETL en AWS Glue. AWS Glue Data Catalog es un índice para las métricas de ubicación, esquema y tiempo de ejecución de sus datos. Puede usar la información de Data Catalog para crear y supervisar sus trabajos ETL. La información de Data Catalog se almacena como tablas de metadatos en las que cada tabla especifica un único almacén de datos. Al configurar un rastreador, puede evaluar automáticamente numerosos tipos de almacenes de datos, incluidos los almacenes conectados de DynamoDB, S3 y Java Database Connectivity (JDBC), extraer metadatos y esquemas, y, a continuación, crear definiciones de tablas en AWS Glue Data Catalog.

Para trabajar con Amazon Kinesis Data Streams en trabajos ETL de streaming de AWS Glue, una práctica recomendada consiste en definir la secuencia en una tabla de una base de datos de AWS Glue Data Catalog. Defina una tabla de origen de secuencia con la secuencia de Kinesis, uno de los muchos formatos admitidos (CSV, JSON, ORC, Parquet, Avro o un formato de cliente con Grok). Puede introducir un esquema manualmente o puede dejar este paso a su trabajo de AWS Glue para que lo determine durante el tiempo de ejecución del trabajo.

Trabajo de ETL de streaming de AWS Glue

AWS Glue ejecuta los trabajos de ETL en un entorno Apache Spark sin servidor. AWS Glue ejecuta estos trabajos en recursos virtuales que aprovisiona y gestiona en su propia cuenta de servicio. Además de poder ejecutar trabajos basados en Apache Spark, AWS Glue proporciona un nivel adicional de funcionalidad en Spark con DynamicFrames.

Los DynamicFrames son tablas distribuidas que admiten datos anidados, como estructuras y matrices. Cada registro se autodescribe y está diseñado para flexibilidad de esquemas con datos semiestructurados. Un registro en un DynamicFrame contiene tanto los datos como el esquema que describe los datos. Apache Spark DataFrames y DynamicFrames son compatibles con los scripts de ETL, y puede convertirlos de uno a otro. Los DynamicFrames proporcionan un conjunto de transformaciones avanzadas para la limpieza de datos y ETL.

Al utilizar Spark Streaming en su trabajo de AWS Glue, puede crear trabajos de ETL de streaming que se ejecuten de forma continua y consuman datos de orígenes de streaming como Amazon Kinesis Data Streams, Apache Kafka y Amazon MSK. Los trabajos pueden limpiar, combinar y transformar los datos y, a continuación, cargar los resultados en los almacenes, incluidos los almacenes de datos de Amazon S3, Amazon DynamoDB o JDBC.

AWS Glue procesa y escribe datos en periodos de 100 segundos de forma predeterminada. Esto permite que los datos se procesen de forma eficiente y que las agregaciones se realicen en los datos que lleguen más tarde de lo previsto. Puede configurar el tamaño de la ventana si lo ajuste para adaptarse a la velocidad de respuesta en comparación con la precisión de su agregación. Los trabajos de streaming de AWS Glue utilizan puntos de control para realizar un seguimiento de los datos que se han leído en Kinesis Data Stream. Para obtener una guía sobre la creación de un trabajo ETL de streaming en AWS Glue, puede consultar Agregar trabajos ETL de streaming en AWS Glue

Amazon DynamoDB

Amazon DynamoDB es una base de datos de clave-valor y documentos que ofrece un rendimiento de milisegundos de un solo dígito a cualquier escala. Se trata de una base de datos completamente administrada, de varias regiones, multiactiva y duradera, con seguridad integrada, copia de seguridad y restauración, así como almacenamiento en caché en memoria para aplicaciones a escala de Internet. DynamoDB puede gestionar más de 10 billones de solicitudes por día y puede admitir picos de más de 20 millones de solicitudes por segundo.

Captura de datos de cambios para DynamoDB Streams

Una secuencia de DynamoDB es un flujo ordenado de información sobre los cambios que se realizan en los elementos de una tabla de DynamoDB. Cuando se habilita una secuencia en una tabla, DynamoDB obtiene información sobre cada modificación de los elementos de datos de esa tabla. DynamoDB se integra con AWS Lambda para que pueda crear desencadenadores, fragmentos de código que responden automáticamente a los eventos en secuencias de DynamoDB. Con los desencadenadores, puede crear aplicaciones que reaccionen ante las modificaciones de datos en las tablas de DynamoDB.

Cuando se habilita una secuencia en una tabla, puede asociar el nombre de recurso de Amazon (ARN) de la secuencia con una función que haya escrito. Inmediatamente después de modificar un elemento de la tabla, aparece un nuevo registro en el flujo de la tabla. AWS Lambda sondea el flujo e invoca a la función Lambda de forma sincrónica cuando detecta nuevos registros de flujo.

Amazon SageMaker y puntos de conexión de servicio de Amazon SageMaker

Amazon SageMaker es una plataforma completamente administrada que permite a los desarrolladores y científicos de datos crear, entrenar e implementar modelos de machine learning de forma rápida y a cualquier escala. SageMaker incluye módulos que se pueden utilizar en conjunto o de manera independiente para crear, entrenar e implementar modelos de machine learning. Con los puntos de conexión de servicio de Amazon SageMaker, puede crear puntos de conexión alojados administrados para la inferencia en tiempo real con un modelo implementado que haya desarrollado dentro o fuera de Amazon SageMaker.

Al utilizar AWS SDK, puede invocar un punto de conexión de SageMaker que pase información de tipo de contenido junto con el contenido y, a continuación, recibir predicciones en tiempo real basadas en los datos pasados. Esto le permite mantener el diseño y el desarrollo de sus modelos de machine learning independientes del código que realiza acciones en los resultados inferidos.

De este modo, los científicos de datos se pueden centrar en el machine learning y los desarrolladores que utilizan el modelo de aprendizaje automático, en cómo lo usan en su código. Para obtener más información sobre cómo invocar un punto de conexión en SageMaker, consulte InvokeEnpoint en la referencia de la API de Amazon SageMaker.

Inferir información de datos en tiempo real

El diagrama de arquitectura anterior muestra que la aplicación web existente de Fast Sneakers ha agregado una secuencia de datos de Kinesis que contiene eventos de secuencias de clics, lo que proporciona datos de tráfico y eventos del sitio web. El catálogo de productos, que contiene información como la categorización, los atributos de producto y los precios, y la tabla de pedidos, que contiene datos como los artículos solicitados, la facturación, el envío, etc., son tablas de DynamoDB independientes. El origen de la secuencia de datos y las tablas apropiadas de DynamoDB tienen sus metadatos y esquemas definidos en AWS Glue Data Catalog para que los utilice el trabajo ETL de streaming de AWS Glue.

Al utilizar Apache Spark, Spark Streaming y DynamicFrames en su trabajo ETL de streaming de AWS Glue, Fast Sneakers puede extraer datos de la secuencia de datos y transformarlos, mediante la combinación de los datos de las tablas de productos y pedidos. Con los datos obtenidos de la transformación, los conjuntos de datos de los que se obtienen los resultados de inferencia se envían a una tabla de DynamoDB.

La secuencia de DynamoDB para la tabla desencadena una función Lambda para cada registro nuevo escrito. La función Lambda envía los registros transformados previamente a un punto de conexión de SageMaker con AWS SDK para inferir qué ajustes de precios, si los hubiera, son necesarios para un producto. Si el modelo de machine learning identifica que se requiere un ajuste del precio, la función Lambda escribe el cambio de precio en el producto en la tabla de DynamoDB del catálogo.

Resumen

Amazon Kinesis Data Streams facilita la recopilación, el procesamiento y el análisis de datos de streaming generados en tiempo real para obtener información nueva, a tiempo y tomar acciones rápidamente basándose en ella. En combinación con el servicio de integración de datos sin servidor de AWS Glue, puede crear aplicaciones de secuencias de eventos en tiempo real que preparen y combinen datos para el machine learning.

Ya que tanto Kinesis Data Streams como los servicios de AWS Glue están completamente administrados, AWS elimina el trabajo pesado e indiferenciado de administrar la infraestructura para su plataforma de macrodatos, lo que le permite centrarse en generar análisis basados en sus datos.

Fast Sneakers puede utilizar el procesamiento de eventos en tiempo real y el machine learning para permitir que su sitio web realice ajustes de precios en tiempo real totalmente automatizados, para maximizar su stock de productos. Esto aporta el mayor valor a su empresa y evita la necesidad de crear y mantener una plataforma de macrodatos.