Crea sistemas de inventario en tiempo real para venta minorista

En esta solución, se proporciona un análisis detallado de la arquitectura necesaria para implementar una infraestructura de inventario en tiempo real en Google Cloud Platform. Los sistemas de inventario en tiempo real están diseñados para actualizar los sistemas de almacenamiento de datos apenas ocurra un cambio en el inventario. Por ejemplo, en una tienda minorista, los datos de inventario se pueden actualizar de forma automática en cuanto se vende un artículo o incluso cuando la mercancía se traslada de una parte de la tienda a otra.

A medida que los minoristas adoptan cada vez más estrategias para trabajar tanto en línea como sin conexión y en situaciones con canales múltiples, necesitan soluciones técnicas para enfrentar los desafíos asociados con estos enfoques. El inventario en tiempo real existe en la intersección de las mejoras en la experiencia del cliente, las mejoras en la eficiencia operativa y la reducción del tiempo de salida al mercado de soluciones innovadoras.

Con el inventario en tiempo real, los minoristas pueden mejorar la experiencia del cliente, ya que se logra que los vendedores de la tienda pasen más tiempo con los compradores y ayuden a los clientes a encontrar más rápido los productos que buscan. Los minoristas también pueden obtener importantes ganancias en la eficiencia operativa si pueden saber con exactitud dónde se encuentra el inventario de productos y la cantidad de productos disponibles en cualquier momento. Las estadísticas prácticas sobre la precisión y el movimiento del inventario también proporcionan información vital que los minoristas necesitan para ajustar la forma en que presentan los productos al mercado y llevan a los clientes a cada canal de ventas.

Para que el inventario en tiempo real funcione, los minoristas deben implementar la infraestructura adecuada y hacer que esté disponible en cualquier momento. Eso significa aprovechar las características de una arquitectura basada en la nube, lo que incluye una infraestructura de procesamiento con escalamiento elástico, sistemas de software administrados que reducen la complejidad administrativa, y el mejor procesamiento y almacenamiento de datos de su clase.

En el diagrama siguiente, se muestra la arquitectura de un sistema de inventario en tiempo real que usa Google Cloud Platform en el backend. En el resto del artículo, se describen los componentes y sus interacciones.

El sistema de inventario en tiempo real usa varios servicios de Cloud Platform.

Seguimiento de inventario

Los sistemas de seguimiento de inventario en tiendas minoristas suelen usar una combinación de productos etiquetados, lectores de etiquetas y una puerta de enlace responsable de transmitir los datos de inventario. Estos sistemas emplean etiquetas RFID porque son ligeras y fáciles de adjuntar a los productos, como las etiquetas de precio. Los lectores de etiquetas están ubicados por toda la tienda, lo que garantiza que todo el espacio físico se pueda analizar en busca de etiquetas RFID. Según el tamaño y el diseño físico del espacio comercial, se pueden implementar una o más puertas de enlace. Estos componentes recopilan datos de los análisis pasivos y activos de cada lector, y los transmiten a la infraestructura centralizada.

Según los requisitos comerciales y técnicos, la recopilación de datos puede variar desde la captura de todos los eventos hasta la agregación de eventos por tiempo y otros metadatos útiles. Por ejemplo, todos los eventos de llegada y salida del inventario podrían capturarse y enviarse de forma inmediata, mientras que la reubicación del inventario dentro de la tienda podría agregarse en una sola transmisión diaria. Una vez que se recopilan los datos, la puerta de enlace es responsable de autenticarse en el servicio de transferencia de datos de inventario, establecer un vínculo seguro y transmitir los datos.

Según el diseño o las limitaciones del espacio físico y los requisitos técnicos, la implementación de los sistemas de seguimiento de inventario puede ser bastante compleja. Podría ser útil buscar ayuda de los socios del ecosistema en la implementación y configuración de la infraestructura de seguimiento de inventario. Para obtener más información sobre cómo trabajar con socios, consulta la Comunidad de socios de Google Cloud Platform.

Transferencia de datos

En los sistemas y la infraestructura de los inventarios en tiempo real, el servicio de transferencia recibe de forma periódica datos de inventario de cada tienda y los pasa a los servicios posteriores. Este servicio debe satisfacer varios requisitos funcionales. Debe tener alta disponibilidad, ser capaz de escalar de forma elástica a medida que el flujo de datos de inventario aumenta o disminuye, y proporcionar un tiempo de respuesta de baja latencia a las puertas de enlace a nivel de la tienda. Como parte de la transferencia de datos de inventario, el servicio también debe autenticar y autorizar las puertas de enlace individuales a nivel de la tienda para garantizar que solo los dispositivos conocidos y aprovisionados de manera correcta envíen datos.

Si se cumplen esos requisitos, Google App Engine es una solución adecuada. App Engine es una plataforma para la compilación y la implementación rápida de aplicaciones web escalables sin tener que aprovisionar o configurar servidores individuales. App Engine tiene la capacidad de aumentar o reducir la escala de forma automática y en tiempo real, según los patrones de tráfico entrante. App Engine, con su balanceo de cargas integrado, división de tráfico, control de versiones y análisis de seguridad, es una plataforma adecuada para las necesidades de la transferencia de datos de inventario en tiempo real.

Servicios de mensajes

En las implementaciones de infraestructura de nube, la mensajería es un componente vital para que las aplicaciones y servicios se comuniquen en tiempo real.

Google Cloud Pub/Sub es un servicio de mensajería en tiempo real completamente administrado que permite que las aplicaciones y los servicios envíen y reciban mensajes con esquemas de entrega de inserción o extracción. Cloud Pub/Sub admite semánticas de entrega de mensajes de uno a uno, de uno a varios o de varios a varios, lo que permite que múltiples aplicaciones y servicios independientes se comuniquen en tiempo real.

En esta solución, el componente de mensajería entrega datos desde la aplicación de transferencia de inventario a varios componentes posteriores. En primer lugar, inserta flujos de datos de inventario en Google Cloud Dataflow para el procesamiento de datos en tránsito, como se describe en la sección siguiente. En segundo lugar, proporciona un mecanismo de notificación que alerta a múltiples aplicaciones cuando los datos de inventario cambian, como se describe en Integración con aplicaciones y servicios.

Procesamiento y persistencia

El procesamiento de transmisión es el servicio principal de un sistema de inventario en tiempo real. Este servicio recibe transmisiones de datos de inventario que se entregan a través del componente de mensajería, examina cada actualización entrante de datos de inventario y aplica reglas en tránsito y acciones salientes, como la persistencia. Las reglas en tránsito podrían consistir en agregaciones basadas en el tiempo o listas completas centradas en artículos, tiendas o regiones individuales. El servicio debe ser un mecanismo de procesamiento de transmisión de propósito general, capaz de aumentar o disminuir la escala de forma elástica según la capacidad de procesamiento de los datos entrantes, de procesar las agregaciones en ventanas temporales deslizantes y de insertar datos sin procesar o agregados en múltiples servicios de persistencia.

Cloud Dataflow maneja estos tipos de cargas de trabajo. Cloud Dataflow consta de dos componentes principales: un conjunto de SDK que se puede usar a fin de definir una canalización de tareas de procesamiento de datos y un servicio administrado para ejecutar de forma dinámica las canalizaciones de procesamiento de datos. El servicio administrado de Cloud Dataflow es capaz de distribuir cargas de trabajo de procesamiento de datos a través de múltiples instancias de VM de Compute Engine, con fragmentación y rebalanceo de la carga de trabajo en tránsito.

En situaciones de inventario en tiempo real, Cloud Dataflow extrae datos de transmisión de Cloud Pub/Sub y crea vistas deslizantes basadas en el tiempo a partir de los datos entrantes. En cada ventana de datos, puedes aplicar una serie de operaciones o transformaciones con el SDK de Cloud Dataflow. Estas transformaciones aplican funciones como contar, filtrar o agregar los datos contenidos en cada ventana.

En el diagrama siguiente se ilustra cómo puedes procesar las cargas de trabajo de inventario en tiempo real. Cada fase de la canalización de procesamiento finaliza con la conservación de los datos de salida en un sistema de almacenamiento de datos específico: Google Cloud Bigtable, Google Cloud BigQuery y Google Cloud SQL.

Los datos fluyen desde Cloud Pub/Sub hasta el almacenamiento a través de la canalización de Cloud Dataflow.

Eventos de series temporales

Como se muestra en el diagrama, cada elemento de la transmisión de datos de inventario entrante se escribe como un evento de serie temporal individual en Cloud Bigtable, que es un servicio de base de datos NoSQL completamente administrado para macrodatos. Cloud Bigtable se basa en la infraestructura de base de datos interna de Bigtable de Google, la misma que usan la Búsqueda de Google, Google Analytics, Google Maps y Gmail. El servicio proporciona un almacenamiento coherente, de baja latencia y alta capacidad de procesamiento, lo que lo hace ideal para almacenar cada evento de inventario. Los eventos individuales se almacenan para las estadísticas predictivas sin conexión o los análisis de macrodatos relacionados, como la optimización de la cadena de suministro, mediante herramientas como las implementaciones administradas de Apache Spark o Apache Hadoop con Google Cloud Dataproc o Cloud Dataflow.

Los esquemas de Cloud Bigtable usan una clave de fila individual asociada con una serie de columnas. Para las cargas de trabajo de inventario en tiempo real, las transmisiones de datos de eventos se almacenan como datos de series temporales, lo que significa que los modelos de datos para las tablas deben ser "altos y estrechos". Los casos prácticos posteriores para estos conjuntos de datos juegan un papel importante en la estructura de datos, que debe admitir consultas rápidas y un filtrado y procesamiento de salida mínimos. Puede ser útil usar una estrategia que incorpore la desnormalización de datos: escribir los mismos elementos de datos varias veces con diferentes esquemas de clave-valor.

Por ejemplo, un esquema centrado en los elementos de inventario usa el formato de tabla siguiente:

Clave de fila
Columnas
UPC + Timestamp
Store ID, Location, Reader y Style

Otro esquema usa una estructura más específica para las tiendas:

Clave de fila
Columnas
Store ID + Timestamp
UPCs, Location y Reader

Por último, un esquema combinado usa una estructura similar al ejemplo siguiente:

Clave de fila
Columnas
UPC + Store ID + Timestamp
Location, Reader y Style

Cuando usas Cloud Bigtable, es importante considerar la localización de los datos y la distribución de las lecturas y escrituras para maximizar el rendimiento. Con esto en cuenta, el último esquema sería la opción más apropiada, ya que admitiría una distribución más amplia de escrituras y evitaría los hotspots de datos. Con este esquema, un solo producto no puede afectar de forma negativa el rendimiento porque Store ID se concatena con el producto UPC.

En última instancia, la estructura correcta (o estructuras si deseas aplicar la desnormalización), depende de cómo pretendes usar los datos. Si deseas obtener más información sobre las recomendaciones de diseño de esquemas, consulta Diseño de esquemas en Cloud Bigtable para datos de series temporales.

Eventos agregados

Para propósitos de análisis o inteligencia empresariales, puedes cargar transmisiones de inventario entrantes en BigQuery, una solución de almacenamiento de datos completamente administrada para cargas de trabajo SQL ad-hoc en datos de inventario. BigQuery separa el almacenamiento y el procesamiento para que cada función escale de forma independiente, lo que significa que las consultas sobre GB o TB de datos se pueden ejecutar en cuestión de segundos.

Según la canalización de Cloud Dataflow antes descrita, la salida a BigQuery se puede desnormalizar en varias tablas. Cada tabla podría contener una vista diferente de las transmisiones de inventario entrantes. Por ejemplo, las tablas podrían organizarse por niveles de agregación, como por hora, diario y semanal, y por dimensiones múltiples, como UPC y Store ID.

De manera similar a las bases de datos relacionales, los esquemas y modelos de datos de BigQuery brindan compatibilidad con filas y columnas, y también admiten el uso de columnas JSON con datos anidados. Esto significa que una fila individual puede almacenar datos anidados de pares clave-valor. La compatibilidad con datos JSON incorporados en filas individuales permite diseños de esquema más complejos que coinciden con los casos prácticos típicos del almacén de datos, como los esquemas en estrella, en copo de nieve, o de constelación de hechos.

Más allá del almacenamiento de datos de inventario, BigQuery es un sistema adecuado para casos prácticos de almacenamiento de datos minoristas más amplios. Por ejemplo, si importas los datos de compras de clientes o de la cadena de suministro, puedes crear representaciones de datos y esquemas complejos que aprovechen todos los datos disponibles.

Recuentos transaccionales

En las cargas de trabajo de inventario en tiempo real, se requiere una fuente de información para almacenar y administrar recuentos de inventario precisos en todo momento. Según la canalización de Cloud Dataflow descrita antes, las transmisiones de datos de inventario se examinan con detenimiento y se extraen eventos particulares, como los nuevos envíos de inventario y el inventario saliente mediante compras o envíos. Esta información se usa para actualizar los recuentos de inventario por tienda. Para una carga de trabajo transaccional de baja latencia como esta, Google Cloud SQL es la opción de almacenamiento de datos más adecuada.

Cloud SQL es una implementación de MySQL nativa en la nube completamente administrada, con compatibilidad integrada para la replicación. Debido a que se basa en MySQL, Cloud SQL admite muchas aplicaciones y marcos de trabajo. Cloud SQL ofrece copia de seguridad y restablecimiento integrados, implementaciones de alta disponibilidad y replicación de lectura. Estas características son útiles cuando varias aplicaciones y servicios necesitan consultar con frecuencia los recuentos del inventario.

Para las cargas de trabajo de conteo de inventario, en la tabla siguiente se muestra un esquema de ejemplo que puedes usar para almacenar estos datos en un formato fácil de consultar y actualizar:

Tipo
VARCHAR
VARCHAR
INT
TIMESTAMP
Columna
Store ID
UPC
Count
Last Updated

Puedes agregar columnas al esquema según los otros metadatos que puedan necesitar los sistemas posteriores, como las aplicaciones para la tienda o la oficina administrativa, y las integraciones de terceros. Por razones de rendimiento y de integridad de los datos, también podría ser adecuado crear un índice compuesto con los campos Store ID y UPC a fin de realizar búsquedas rápidas, y configurar la marca de tiempo Last Updated para que se actualice de forma automática cada vez que se modifique una fila en particular.

Integración en aplicaciones y servicios

El objetivo de los sistemas de inventario en tiempo real es proporcionar mayor precisión, visibilidad y estadísticas para el movimiento de inventario a través de la cadena de suministro. Uno de los requisitos clave para estos sistemas es integrarse en aplicaciones y servicios que requieran estos datos de manera fácil, escalable y segura. Varios requisitos de negocios dictan los tipos de aplicaciones y servicios que deben integrarse.

Los siguientes son algunos ejemplos de integraciones de servicios:

  • Publicación de feeds de datos de información de inventario, como marca, estilo y conteo, para guiar las campañas de visualización o publicidad en Búsqueda.
  • Unir las estadísticas de compras en línea y sin conexión con los perfiles de los compradores

Los siguientes son algunos ejemplos de integraciones de aplicaciones:

  • Aplicaciones orientadas a los vendedores de la tienda para administrar las tareas de inventario local, que se pueden entregar a través de sistemas de punto de venta o tablets.
  • Proporcionar API basadas en estándares para integrarse en sistemas y aplicaciones de oficina administrativa, lo que incluye la planificación de recursos empresariales, la administración de procesos comerciales, la cadena de suministro y las apps financieras.

Muchos sistemas de software empresarial empaquetados admiten la integración con sistemas externos mediante API basadas en HTTP para datos de consumo, lo que simplifica el proceso de integración.

App Engine es adecuado para brindarles a estos tipos de aplicaciones y servicios acceso de alta disponibilidad y baja latencia a datos de inventario vitales. Las aplicaciones de App Engine pueden aprovechar Google Cloud Endpoints para la creación y la implementación rápida de API de REST. Estas API son de fácil acceso desde aplicaciones web o móviles mediante bibliotecas cliente generadas. Este enfoque puede reducir el tiempo total de desarrollo. Las aplicaciones de App Engine también admiten múltiples enfoques de autenticación, lo que hace sencillo el control y la medición del acceso a clientes específicos.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...