Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Automatice su pronóstico de series temporales en Snowflake con Amazon Forecast

Esta publicación es una colaboración conjunta con Andries Engelbrecht y James Sun de Snowflake, Inc.

La revolución de la computación en la nube ha permitido que las empresas capturen y retengan datos corporativos y organizacionales sin planificación de capacidad o restricciones de retención de datos. Ahora, con diversas y vastas reservas de datos longitudinales, las empresas son cada vez más capaces de encontrar formas novedosas e impactantes de usar sus activos digitales para tomar decisiones mejores e informadas al tomar decisiones de planificación a corto y largo plazo. La previsión de series temporales es una ciencia única y esencial que permite a las empresas tomar decisiones de planificación quirúrgica para ayudar a equilibrar los niveles de servicio al cliente frente a objetivos de rentabilidad óptima que a menudo compiten entre sí.

En AWS, a veces trabajamos con clientes que han seleccionado a nuestro socio tecnológico Copo de nieve para ofrecer una experiencia de plataforma de datos en la nube. Tener una plataforma que pueda recordar años y años de datos históricos es poderoso, pero ¿cómo puede usar estos datos para mirar hacia adelante y usar la evidencia de ayer para planificar el mañana? Imagine no solo tener lo que sucedió disponible en Snowflake, su única versión de la verdad, sino también un conjunto adyacente de datos no aislados que ofrece un pronóstico probabilístico para días, semanas o meses en el futuro.

En una cadena de suministro colaborativa, compartir información entre socios puede mejorar el rendimiento, aumentar la competitividad y reducir el desperdicio de recursos. Compartir sus pronósticos futuros se puede facilitar con Intercambio de datos de copos de nieve, que le permite colaborar sin problemas con sus socios comerciales de forma segura e identificar información comercial. Si muchos socios comparten sus pronósticos, puede ayudar a controlar el efecto látigo en la cadena de suministro conectada. Puede utilizar eficazmente Mercado de copos de nieve para monetizar sus análisis predictivos a partir de conjuntos de datos producidos en Pronóstico del Amazonas.

En esta publicación, analizamos cómo implementar una solución automatizada de pronóstico de series temporales utilizando Snowflake y Forecast.

Servicios esenciales de AWS que permiten esta solución

Forecast proporciona varios algoritmos de series temporales de última generación y gestiona la asignación de suficiente capacidad informática distribuida para satisfacer las necesidades de casi cualquier carga de trabajo. Con Forecast, no obtiene un modelo; obtiene la fuerza de muchos modelos que se optimizan aún más en un modelo ponderado de forma única para cada serie temporal en el conjunto. En resumen, el servicio ofrece toda la ciencia, el manejo de datos y la gestión de recursos en una simple llamada a la API.

Funciones de paso de AWS proporciona un mecanismo de orquestación de procesos que administra el flujo de trabajo general. El servicio encapsula llamadas API con Atenea amazónica, AWS Lambday Forecast para crear una solución automatizada que recopila datos de Snowflake, usa Forecast para convertir datos históricos en predicciones futuras y luego crea los datos dentro de Snowflake.

Las consultas federadas de Athena pueden conectarse a varias fuentes de datos empresariales, incluidas Amazon DynamoDB, Desplazamiento al rojo de Amazon, Servicio Amazon OpenSearch, MySQL, PostgreSQL, Redis y otros almacenes de datos populares de terceros, como Snowflake. Los conectores de datos se ejecutan como funciones de Lambda; puede usar este código fuente para ayudar a iniciar el Conector de copo de nieve Lambda de Amazon Athena y conectarse con Enlace privado de AWS o a través de una puerta de enlace NAT.

Resumen de la solución

Una de las cosas que solemos hacer en AWS es trabajar para ayudar a los clientes a lograr sus objetivos y, al mismo tiempo, eliminar la carga del trabajo pesado indiferenciado. Con esto en mente, proponemos las siguientes a medida para ayudar a los clientes de AWS y Snowflake a realizar los siguientes pasos:

  1. Exportar datos desde Snowflake. Puede usar metadatos flexibles para descargar los datos históricos necesarios impulsados ​​por un flujo de trabajo listo para usar.
  2. Importar datos en Forecast. Independientemente del caso de uso, la industria o la escala, la importación de entradas de datos preparadas es fácil y automatizada.
  3. Entrene un modelo de serie temporal de última generación. Puede automatizar la previsión de series temporales sin gestionar la ciencia de datos subyacente o el aprovisionamiento de hardware.
  4. Generar inferencia contra el modelo entrenado. Los resultados producidos por pronósticos son fáciles de consumir para cualquier propósito. Están disponibles como archivos CSV o Parquet simples en Servicio de almacenamiento simple de Amazon (Amazon S3).
  5. Utilice el historial y las predicciones futuras en paralelo directamente en Snowflake.

El siguiente diagrama ilustra cómo implementar un flujo de trabajo automatizado que permite a los clientes de Snowflake beneficiarse de predicciones de series temporales de alta precisión compatibles con Forecast, un servicio administrado de AWS. Trascendiendo el caso de uso y la industria, el diseño que se ofrece aquí primero extrae datos históricos de Snowflake. A continuación, el flujo de trabajo envía los datos preparados para el cálculo de series temporales. Por último, las predicciones de períodos futuros están disponibles de forma nativa en Snowflake, lo que crea una experiencia de usuario perfecta para los clientes conjuntos de AWS y Snowflake.

Aunque esta arquitectura solo destaca los detalles técnicos clave, la solución es fácil de armar, a veces en 1 o 2 días hábiles. Le proporcionamos un código de muestra de trabajo para ayudar a eliminar el trabajo pesado indiferenciado de crear la solución solo y sin una ventaja inicial. Una vez que descubra cómo implementar este patrón para una carga de trabajo, puede repetir el proceso de previsión para cualquier dato almacenado en Snowflake. En las secciones que siguen, describimos los pasos clave que le permiten crear una canalización automatizada.

Extraer datos históricos de Snowflake

En este primer paso, utiliza SQL para definir qué datos desea pronosticar y permite que una consulta federada de Athena se conecte a Snowflake, ejecute su SQL personalizado y conserve el conjunto de registros resultante en Amazon S3. Forecast requiere que los datos de entrenamiento históricos estén disponibles en Amazon S3 antes de la ingesta; por lo tanto, Amazon S3 sirve como un búfer de almacenamiento intermedio entre Snowflake y Forecast. Presentamos Athena en este diseño para habilitar Snowflake y otras fuentes de datos heterogéneas. Si lo prefiere, otro enfoque es usar el comando COPY de Snowflake y la integración de almacenamiento para escribir los resultados de la consulta en Amazon S3.

Independientemente del mecanismo de transporte utilizado, ahora describimos el tipo de datos que Forecast necesita y cómo se definen, preparan y extraen los datos. En la siguiente sección, describimos cómo importar datos a Forecast.

La siguiente captura de pantalla muestra el aspecto que podría tener un conjunto de datos en su esquema Snowflake nativo.

Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Aunque esta captura de pantalla muestra cómo se ven los datos en su estado natural, Forecast requiere que los datos se configuren en tres conjuntos de datos diferentes:

  • Serie de tiempo objetivo – Este es un conjunto de datos requerido que contiene la variable objetivo y se usa para entrenar y predecir un valor futuro. Solo, este conjunto de datos sirve como un modelo de serie temporal univariante.
  • Serie temporal relacionada – Este es un conjunto de datos opcional que contiene variables temporales que deben tener una relación con la variable de destino. Los ejemplos incluyen precios variables, esfuerzos promocionales, tráfico de eventos hiperlocales, datos de perspectivas económicas: cualquier cosa que crea que podría ayudar a explicar la variación en la serie de tiempo objetivo y producir un mejor pronóstico. El conjunto de datos de serie temporal relacionado convierte su modelo univariado en uno multivariado para ayudar a mejorar la precisión.
  • Metadatos del elemento – Este es un conjunto de datos opcional que contiene datos categóricos sobre el artículo pronosticado. Los metadatos de elementos a menudo ayudan a mejorar el rendimiento de los productos recién lanzados, lo que denominamos cold start.

Con el alcance de cada uno de los conjuntos de datos de Forecast definidos, puede escribir consultas en Snowflake que obtengan los campos de datos correctos de las tablas de origen necesarias con los filtros adecuados para obtener el subconjunto de datos deseado. Los siguientes son tres ejemplos de consultas SQL que se utilizan para generar cada conjunto de datos que Forecast necesita para un escenario específico de planificación de la demanda de alimentos.

Comenzamos con la consulta de la serie temporal de destino:

select LOCATION_ID, ITEM_ID, 
DATE_DEMAND as TIMESTAMP, QTY_DEMAND as TARGET_VALUE 
from DEMO.FOOD_DEMAND

La consulta de serie temporal relacionada opcional extrae covariables como precio y promoción:

select LOCATION_ID,ITEM_ID, DATE_DEMAND as TIMESTAMP,
CHECKOUT_PRICE, BASE_PRICE,
EMAILER_FOR_PROMOTION, HOMEPAGE_FEATURED
from DEMO.FOOD_DEMAND

La consulta de metadatos del artículo obtiene distintos valores categóricos que ayudan a dar dimensión y definir aún más el artículo pronosticado:

select DISTINCT ITEM_ID, FOOD_CATEGORY, FOOD_CUISINE
from DEMO.FOOD_DEMAND

Con las consultas de origen definidas, podemos conectarnos a Snowflake a través de una consulta federada de Athena para enviar las consultas y conservar los conjuntos de datos resultantes para el uso de pronósticos. Para obtener más información, consulte Consulta Snowflake con Athena Federated Query y únete a los datos de tu lago de datos de Amazon S3.

El Athena Snowflake Connector GitHub repositorio ayuda a instalar el conector Snowflake. los Pronóstico MLOps GitHub repo ayuda a orquestar todos los pasos de macro definidos en esta publicación y los hace repetibles sin escribir código.

Importar datos en Forecast

Después de completar el paso anterior, un conjunto de datos de serie temporal de destino está en Amazon S3 y está listo para importarse en Forecast. Además, los conjuntos de datos de metadatos de artículos y series temporales relacionados opcionales también pueden prepararse y estar listos para la ingesta. con lo provisto Solución de previsión de MLOps, todo lo que tiene que hacer aquí es iniciar la máquina de estado de Step Functions responsable de importar datos; no se necesita código. Forecast lanza un clúster para cada uno de los conjuntos de datos que ha proporcionado y prepara los datos para que el servicio los use para la creación de modelos de ML y la inferencia de modelos.

Cree un modelo de aprendizaje automático de serie temporal con estadísticas de precisión

Una vez que se han importado los datos, se crean modelos de series temporales de alta precisión simplemente llamando a una API. Este paso está encapsulado dentro de una máquina de estado de Step Functions que inicia la API de pronóstico para iniciar el entrenamiento del modelo. Una vez que se entrena el modelo predictor, la máquina de estado exporta las estadísticas y predicciones del modelo durante la ventana de backtest a Amazon S3. Snowflake puede consultar las exportaciones de backtest como una etapa externa, como se muestra en la siguiente captura de pantalla. Si lo prefiere, puede almacenar los datos en una etapa interna. El objetivo es utilizar las métricas de backtest para evaluar la distribución del rendimiento de las series temporales en el conjunto de datos proporcionado.

Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Crear predicciones futuras

Con el modelo entrenado en el paso anterior, una máquina de estado de Step Functions especialmente diseñada llama a la API de pronóstico para crear pronósticos con fecha futura. Forecast aprovisiona un clúster para realizar la inferencia y extrae la serie temporal de destino importada, la serie temporal relacionada y los conjuntos de datos de metadatos de elementos a través de un modelo predictor con nombre creado en el paso anterior. Una vez que se generan las predicciones, la máquina de estado las escribe en Amazon S3, donde, una vez más, se pueden consultar en el lugar como una etapa externa de Snowflake o moverlas a Snowflake como una etapa interna.

Use los datos de predicción con fecha futura directamente en Snowflake

AWS no ha creado una solución completamente automatizada para este paso; sin embargo, con la solución en esta publicación, Forecast ya produjo datos en los dos pasos anteriores. Puede tratar los resultados como eventos accionables o crear tableros de inteligencia comercial sobre los datos. También puede usar los datos para crear futuros planes de fabricación y órdenes de compra, estimar ingresos futuros, crear planes de recursos de personal y más. Cada caso de uso es diferente, pero el objetivo de este paso es entregar las predicciones a los sistemas de consumo correctos en su organización o más allá.

El siguiente fragmento de código muestra cómo consultar los datos de Amazon S3 directamente desde Snowflake:

CREATE or REPLACE FILE FORMAT mycsvformat
type = 'CSV'
field_delimiter = ','
empty_field_as_null = TRUE
ESCAPE_UNENCLOSED_FIELD = None
skip_header = 1;

CREATE or REPLACE STORAGE INTEGRATION amazon_forecast_integration
TYPE = EXTERNAL_STAGE
STORAGE_PROVIDER = S3
STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::nnnnnnnnnn:role/snowflake-forecast-poc-role'
ENABLED = true
STORAGE_ALLOWED_LOCATIONS = (
's3://bucket/folder/forecast',
's3://bucket/folder/backtest-export/accuracy-metrics-values',
's3://bucket/folder/backtest-export/forecasted-values';

CREATE or REPLACE STAGE backtest_accuracy_metrics
storage_integration = amazon_forecast_integration
url = 's3://bucket/folder/backtest-export/accuracy-metrics-values'
file_format = mycsvformat;

CREATE or REPLACE EXTERNAL TABLE FOOD_DEMAND_BACKTEST_ACCURACY_METRICS (
ITEM_ID varchar AS (value:c1::varchar),
LOCATION_ID varchar AS (value:c2::varchar),
backtest_window varchar AS (value:c3::varchar),
backtestwindow_start_time varchar AS (value:c4::varchar),
backtestwindow_end_time varchar AS (value:c5::varchar),
wQL_10 varchar AS (value:c6::varchar),
wQL_30 varchar AS (value:c7::varchar),
wQL_50 varchar AS (value:c8::varchar),
wQL_70 varchar AS (value:c9::varchar),
wQL_90 varchar AS (value:c10::varchar),
AVG_wQL varchar AS (value:c11::varchar),
RMSE varchar AS (value:c12::varchar),
WAPE varchar AS (value:c13::varchar),
MAPE varchar AS (value:c14::varchar),
MASE varchar AS (value:c15::varchar)
)
with location = @backtest_accuracy_metrics
FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = ',' SKIP_HEADER = 1);

Para obtener más información sobre la configuración de permisos, consulte Opción 1: configurar una integración de almacenamiento de Snowflake para acceder a Amazon S3. Además, puede utilizar el Catálogo de servicios de AWS para configurar la integración de almacenamiento de Amazon S3; más información está disponible en el Repositorio GitHub.

Iniciar un flujo de trabajo basado en programaciones o eventos

Después de instalar una solución para su carga de trabajo específica, su paso final es automatizar el proceso en un horario que tenga sentido para su requisito único, como diario o semanal. Lo principal es decidir cómo iniciar el proceso. Un método es usar Snowflake para invocar la máquina de estado de Step Functions y luego orquestar los pasos en serie. Otro enfoque es encadenar máquinas de estado y comenzar la ejecución general a través de un Puente de eventos de Amazon regla, que puede configurar para que se ejecute desde un evento o una tarea programada, por ejemplo, a las 9:00 p. m. GMT-8 todos los domingos por la noche.

Conclusión

Con la mayor experiencia; la nube más confiable, escalable y segura; y el conjunto más completo de servicios y soluciones, AWS es el mejor lugar para obtener valor de sus datos y convertirlos en información. En esta publicación, le mostramos cómo crear un flujo de trabajo de pronóstico de series de tiempo automatizado. Una mejor previsión puede conducir a mejores resultados de servicio al cliente, menos desperdicio, menos inventario inactivo y más efectivo en el balance general.

Si está listo para automatizar y mejorar el pronóstico, estamos aquí para ayudarlo en su viaje. Comuníquese con su equipo de cuenta de AWS o Snowflake para comenzar hoy y solicite un taller de pronóstico para ver qué tipo de valor puede obtener de sus datos.


Acerca de los autores

Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Bosco Alburquerque es Arquitecto sénior de soluciones de socios en AWS y tiene más de 20 años de experiencia trabajando con productos de análisis y bases de datos de proveedores de bases de datos empresariales y proveedores de la nube. Ha ayudado a empresas de tecnología a diseñar e implementar soluciones y productos de análisis de datos.

Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Frank Dallezotte es Arquitecto de Soluciones Sr. en AWS y le apasiona trabajar con proveedores de software independientes para diseñar y crear aplicaciones escalables en AWS. Tiene experiencia en la creación de software, la implementación de canalizaciones de compilación y la implementación de estas soluciones en la nube.

Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Andrés Engelbrecht es Arquitecto Principal de Soluciones para Socios en Snowflake y trabaja con socios estratégicos. Participa activamente con socios estratégicos como AWS que respaldan integraciones de productos y servicios, así como el desarrollo de soluciones conjuntas con socios. Andries tiene más de 20 años de experiencia en el campo de datos y análisis.

Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.charles laughlin es Arquitecto Principal de Soluciones Especialista en IA/ML y trabaja en el equipo de ML de Serie Temporal en AWS. Ayuda a dar forma a la hoja de ruta del servicio Amazon Forecast y colabora a diario con diversos clientes de AWS para ayudar a transformar sus negocios mediante el uso de tecnologías de vanguardia y liderazgo intelectual de AWS. Charles tiene una maestría en administración de la cadena de suministro y pasó la última década trabajando en la industria de bienes de consumo empaquetados.

Automatice sus pronósticos de series temporales en Snowflake utilizando Amazon Forecast PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.james sol es Arquitecto de Soluciones Socio Senior en Snowflake. James tiene más de 20 años de experiencia en almacenamiento y análisis de datos. Antes de Snowflake, ocupó varios puestos técnicos sénior en AWS y MapR. James tiene un doctorado de la Universidad de Stanford.

Sello de tiempo:

Mas de Aprendizaje automático de AWS