Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast

Ce billet est une collaboration avec Andries Engelbrecht et James Sun de Snowflake, Inc.

La révolution du cloud computing a permis aux entreprises de capturer et de conserver des données d'entreprise et organisationnelles sans contraintes de capacité ou de conservation des données. Aujourd'hui, avec des réserves diverses et vastes de données longitudinales, les entreprises sont de plus en plus en mesure de trouver des moyens novateurs et percutants d'utiliser leurs actifs numériques pour prendre de meilleures décisions éclairées lors de la prise de décisions de planification à court et à long terme. La prévision de séries chronologiques est une science unique et essentielle qui permet aux entreprises de prendre des décisions de planification chirurgicale pour aider à équilibrer les niveaux de service client par rapport à des objectifs souvent concurrents de rentabilité optimale.

Chez AWS, nous travaillons parfois avec des clients qui ont sélectionné notre partenaire technologique Flocon pour offrir une expérience de plate-forme de données cloud. Disposer d'une plate-forme capable de rappeler des années et des années de données historiques est puissant, mais comment pouvez-vous utiliser ces données pour anticiper et utiliser les preuves d'hier pour planifier demain ? Imaginez non seulement avoir ce qui s'est passé disponible dans Snowflake - votre version unique de la vérité - mais aussi un ensemble adjacent de données non cloisonnées qui offre une prévision probabiliste pour des jours, des semaines ou des mois dans le futur.

Dans une chaîne d'approvisionnement collaborative, le partage d'informations entre partenaires peut améliorer les performances, accroître la compétitivité et réduire le gaspillage des ressources. Le partage de vos prévisions futures peut être facilité avec Partage de données de flocon de neige, qui vous permet de collaborer de manière transparente avec vos partenaires commerciaux en toute sécurité et d'identifier des informations commerciales. Si de nombreux partenaires partagent leurs prévisions, cela peut aider à contrôler l'effet coup de fouet dans la chaîne d'approvisionnement connectée. Vous pouvez utiliser efficacement Marché aux flocons de neige pour monétiser vos analyses prédictives à partir de jeux de données produits dans Prévisions Amazon.

Dans cet article, nous expliquons comment mettre en œuvre une solution de prévision automatisée de séries chronologiques à l'aide de Snowflake et Forecast.

Services AWS essentiels qui permettent cette solution

Forecast fournit plusieurs algorithmes de séries chronologiques de pointe et gère l'allocation d'une capacité de calcul distribuée suffisante pour répondre aux besoins de presque toutes les charges de travail. Avec Forecast, vous n'obtenez pas un seul modèle ; vous obtenez la force de nombreux modèles qui sont encore optimisés dans un modèle pondéré de manière unique pour chaque série temporelle de l'ensemble. En bref, le service fournit toute la science, le traitement des données et la gestion des ressources dans un simple appel API.

Fonctions d'étape AWS fournit un mécanisme d'orchestration de processus qui gère le flux de travail global. Le service encapsule les appels d'API avec Amazone Athéna, AWS Lambdaet Forecast pour créer une solution automatisée qui collecte les données de Snowflake, utilise Forecast pour convertir les données historiques en prévisions futures, puis crée les données dans Snowflake.

Les requêtes fédérées Athena peuvent se connecter à plusieurs sources de données d'entreprise, y compris Amazon DynamoDB, Redshift d'Amazon, Service Amazon OpenSearch, MySQL, PostgreSQL, Redis et d'autres magasins de données tiers populaires, tels que Snowflake. Les connecteurs de données s'exécutent en tant que fonctions Lambda. Vous pouvez utiliser ce code source pour vous aider à lancer le Connecteur Amazon Athena Lambda Snowflake et se connecter avec Lien privé AWS ou via une passerelle NAT.

Vue d'ensemble de la solution

L'une des choses que nous faisons souvent chez AWS est de travailler pour aider les clients à atteindre leurs objectifs tout en supprimant le fardeau du travail lourd indifférencié. Dans cette optique, nous proposons ce qui suit sur mesure pour aider les clients AWS et Snowflake à effectuer les étapes suivantes :

  1. Exportez les données de Snowflake. Vous pouvez utiliser des métadonnées flexibles pour décharger les données historiques nécessaires pilotées par un flux de travail prêt à l'emploi.
  2. Importez des données dans Forecast. Quel que soit le cas d'utilisation, l'industrie ou l'échelle, l'importation des entrées de données préparées est simple et automatisée.
  3. Entraînez un modèle de série chronologique de pointe. Vous pouvez automatiser les prévisions de séries chronologiques sans gérer la science des données sous-jacente ou le provisionnement du matériel.
  4. Générez une inférence par rapport au modèle entraîné. Les extrants produits par les prévisions sont faciles à consommer pour n'importe quel usage. Ils sont disponibles sous forme de simples fichiers CSV ou Parquet sur Service de stockage simple Amazon (Amazon S3).
  5. Utilisez l'historique et les prévisions futures côte à côte directement dans Snowflake.

Le diagramme suivant illustre comment mettre en œuvre un flux de travail automatisé qui permet aux clients Snowflake de bénéficier de prédictions de séries chronologiques très précises prises en charge par Forecast, un service géré par AWS. Transcendant les cas d'utilisation et l'industrie, la conception proposée ici extrait d'abord les données historiques de Snowflake. Ensuite, le flux de travail soumet les données préparées pour le calcul de séries chronologiques. Enfin, les prédictions des périodes futures sont disponibles nativement dans Snowflake, créant une expérience utilisateur transparente pour les clients AWS et Snowflake communs.

Bien que cette architecture ne mette en évidence que les détails techniques clés, la solution est simple à mettre en place, parfois en 1 à 2 jours ouvrables. Nous vous fournissons un exemple de code de travail pour vous aider à éliminer le travail lourd et indifférencié de la création de la solution seul et sans une longueur d'avance. Après avoir découvert comment implémenter ce modèle pour une charge de travail, vous pouvez répéter le processus de prévision pour toutes les données stockées dans Snowflake. Dans les sections qui suivent, nous décrivons les étapes clés qui vous permettent de créer un pipeline automatisé.

Extraire les données historiques de Snowflake

Dans cette première étape, vous utilisez SQL pour définir les données que vous souhaitez prévoir et laissez une requête fédérée Athena se connecter à Snowflake, exécuter votre SQL personnalisé et conserver l'ensemble d'enregistrements résultant sur Amazon S3. Les prévisions nécessitent que les données d'entraînement historiques soient disponibles sur Amazon S3 avant l'ingestion ; par conséquent, Amazon S3 sert de tampon de stockage intermédiaire entre Snowflake et Forecast. Nous présentons Athena dans cette conception pour activer Snowflake et d'autres sources de données hétérogènes. Si vous préférez, une autre approche consiste à utiliser la commande Snowflake COPY et l'intégration du stockage pour écrire les résultats de la requête dans Amazon S3.

Quel que soit le mécanisme de transport utilisé, nous décrivons maintenant le type de données dont les prévisions ont besoin et comment les données sont définies, préparées et extraites. Dans la section qui suit, nous décrivons comment importer des données dans Forecast.

La capture d'écran suivante montre à quoi pourrait ressembler un ensemble de données dans son schéma Snowflake natif.

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Bien que cette capture d'écran montre à quoi ressemblent les données dans leur état naturel, Forecast nécessite que les données soient formées en trois ensembles de données différents :

  • Série chronologique cible – Il s'agit d'un ensemble de données obligatoire contenant la variable cible et utilisé pour entraîner et prédire une valeur future. Seul, cet ensemble de données sert de modèle de série chronologique univarié.
  • Séries chronologiques connexes – Il s'agit d'un ensemble de données facultatif qui contient des variables temporelles qui doivent avoir une relation avec la variable cible. Les exemples incluent la tarification variable, les efforts promotionnels, le trafic événementiel hyperlocal, les données sur les perspectives économiques - tout ce qui, selon vous, pourrait aider à expliquer les écarts dans la série chronologique cible et à produire de meilleures prévisions. L'ensemble de données de séries chronologiques associé transforme votre modèle univarié en multivarié pour améliorer la précision.
  • Métadonnées de l'élément – Il s'agit d'un ensemble de données facultatif contenant des données catégorielles sur l'élément prévu. Les métadonnées des articles contribuent souvent à améliorer les performances des produits récemment lancés, que nous appelons un démarrage à froid.

Avec la portée de chacun des ensembles de données Forecast définie, vous pouvez écrire des requêtes dans Snowflake qui sourcent les champs de données corrects à partir des tables sources nécessaires avec les filtres appropriés pour obtenir le sous-ensemble de données souhaité. Voici trois exemples de requêtes SQL utilisées pour générer chaque ensemble de données dont Forecast a besoin pour un scénario de planification de la demande alimentaire spécifique.

Nous commençons par la requête de série chronologique cible :

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

La requête optionnelle de série temporelle connexe extrait des covariables telles que le prix et la promotion :

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

La requête de métadonnées d'élément récupère des valeurs catégorielles distinctes qui aident à donner une dimension et à définir plus précisément l'élément prévu :

select DISTINCT ITEM_ID, FOOD_CATEGORY, FOOD_CUISINE
from DEMO.FOOD_DEMAND

Une fois les requêtes source définies, nous pouvons nous connecter à Snowflake via une requête fédérée Athena pour soumettre les requêtes et conserver les ensembles de données résultants à des fins de prévision. Pour plus d'informations, reportez-vous à Interrogez Snowflake à l'aide d'Athena Federated Query et joignez-vous aux données de votre lac de données Amazon S3.

Les Dépôt GitHub du connecteur Athena Snowflake aide à installer le connecteur Snowflake. La Prévision MLOps GitHub dépôt aide à orchestrer toutes les macro-étapes définies dans cet article et les rend reproductibles sans écrire de code.

Importer des données dans Forecast

Une fois l'étape précédente terminée, un ensemble de données de série chronologique cible se trouve dans Amazon S3 et est prêt à être importé dans Forecast. En outre, les ensembles de données facultatifs de séries temporelles et de métadonnées d'éléments connexes peuvent également être préparés et prêts pour l'ingestion. Avec le fourni Solution MLOps de prévision, tout ce que vous avez à faire ici est de lancer la machine d'état Step Functions responsable de l'importation des données - aucun code n'est nécessaire. Forecast lance un cluster pour chacun des ensembles de données que vous avez fournis et prépare les données pour que le service les utilise pour la création de modèles ML et l'inférence de modèles.

Créer un modèle ML de série chronologique avec des statistiques de précision

Une fois les données importées, des modèles de séries chronologiques très précis sont créés simplement en appelant une API. Cette étape est encapsulée dans une machine d'état Step Functions qui lance l'API Forecast pour démarrer la formation du modèle. Une fois le modèle de prédicteur formé, la machine d'état exporte les statistiques et les prédictions du modèle pendant la fenêtre de backtest vers Amazon S3. Les exportations de backtest peuvent être interrogées par Snowflake en tant qu'étape externe, comme illustré dans la capture d'écran suivante. Si vous préférez, vous pouvez stocker les données dans une étape interne. Le but est d'utiliser les métriques de backtest pour évaluer la répartition des performances des séries chronologiques dans votre ensemble de données fourni.

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Créer des prévisions futures

Avec le modèle formé à partir de l'étape précédente, une machine d'état Step Functions spécialement conçue appelle l'API Forecast pour créer des prévisions futures. Forecast provisionne un cluster pour effectuer l'inférence et extrait les ensembles de données importés de séries chronologiques cibles, de séries chronologiques associées et de métadonnées d'éléments via un modèle de prédicteur nommé créé à l'étape précédente. Une fois les prédictions générées, la machine d'état les écrit sur Amazon S3, où, encore une fois, elles peuvent être interrogées sur place en tant qu'étape externe Snowflake ou déplacées dans Snowflake en tant qu'étape interne.

Utilisez les données de prédiction futures directement dans Snowflake

AWS n'a pas créé de solution entièrement automatisée pour cette étape ; Cependant, avec la solution de cet article, les données ont déjà été produites par Forecast lors des deux étapes précédentes. Vous pouvez traiter les sorties comme des événements exploitables ou créer des tableaux de bord d'informatique décisionnelle sur les données. Vous pouvez également utiliser les données pour créer de futurs plans de fabrication et bons de commande, estimer les revenus futurs, élaborer des plans de ressources en personnel, etc. Chaque cas d'utilisation est différent, mais le but de cette étape est de fournir les prédictions aux bons systèmes de consommation dans votre organisation ou au-delà.

L'extrait de code suivant montre comment interroger les données Amazon S3 directement depuis 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);

Pour plus d'informations sur la configuration des autorisations, reportez-vous à Option 1 : configuration d'une intégration de stockage Snowflake pour accéder à Amazon S3. De plus, vous pouvez utiliser le Catalogue de services AWS pour configurer l'intégration du stockage Amazon S3 ; plus d'informations sont disponibles sur le GitHub repo.

Initier un flux de travail basé sur un calendrier ou sur un événement

Après avoir installé une solution pour votre charge de travail spécifique, votre dernière étape consiste à automatiser le processus selon un calendrier adapté à vos besoins uniques, par exemple quotidiennement ou hebdomadairement. L'essentiel est de décider comment démarrer le processus. Une méthode consiste à utiliser Snowflake pour appeler la machine d'état Step Functions, puis à orchestrer les étapes en série. Une autre approche consiste à enchaîner les machines d'état et à démarrer l'exécution globale à travers un Amazon Event Bridge règle, que vous pouvez configurer pour s'exécuter à partir d'un événement ou d'une tâche planifiée, par exemple, à 9h00 GMT-8 chaque dimanche soir.

Conclusion

Avec le plus d'expérience; le cloud le plus fiable, évolutif et sécurisé ; et l'ensemble de services et de solutions le plus complet, AWS est le meilleur endroit pour libérer la valeur de vos données et les transformer en informations. Dans cet article, nous vous avons montré comment créer un flux de travail automatisé de prévision de séries chronologiques. De meilleures prévisions peuvent entraîner de meilleurs résultats de service client, moins de gaspillage, moins de stocks inutilisés et plus de liquidités au bilan.

Si vous êtes prêt à automatiser et à améliorer les prévisions, nous sommes là pour vous aider tout au long de votre parcours. Contactez votre équipe de compte AWS ou Snowflake pour commencer dès aujourd'hui et demandez un atelier de prévision pour voir quel type de valeur vous pouvez débloquer à partir de vos données.


À propos des auteurs

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Bosco Albuquerque est un architecte de solutions partenaire senior chez AWS et a plus de 20 ans d'expérience de travail avec des produits de base de données et d'analyse de fournisseurs de bases de données d'entreprise et de fournisseurs de cloud. Il a aidé des entreprises technologiques à concevoir et à mettre en œuvre des solutions et des produits d'analyse de données.

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Franck Dallezotte est un architecte de solutions senior chez AWS et est passionné par le travail avec des éditeurs de logiciels indépendants pour concevoir et créer des applications évolutives sur AWS. Il a de l'expérience dans la création de logiciels, la mise en œuvre de pipelines de construction et le déploiement de ces solutions dans le cloud.

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Andries Engelbrecht est un architecte de solutions de partenaire principal chez Snowflake et travaille avec des partenaires stratégiques. Il est activement engagé avec des partenaires stratégiques comme AWS pour soutenir les intégrations de produits et de services ainsi que le développement de solutions conjointes avec des partenaires. Andries a plus de 20 ans d'expérience dans le domaine des données et de l'analyse.

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Charles Laughlin est architecte principal de solutions spécialisées en IA/ML et travaille au sein de l'équipe Time Series ML chez AWS. Il aide à façonner la feuille de route du service Amazon Forecast et collabore quotidiennement avec divers clients AWS pour les aider à transformer leurs activités à l'aide des technologies AWS de pointe et d'un leadership éclairé. Charles est titulaire d'une maîtrise en gestion de la chaîne d'approvisionnement et a passé la dernière décennie à travailler dans l'industrie des biens de consommation emballés.

Automatisez vos prévisions de séries chronologiques dans Snowflake à l'aide d'Amazon Forecast PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Jacques Soleil est un architecte de solutions de partenaire principal chez Snowflake. James a plus de 20 ans d'expérience dans le stockage et l'analyse de données. Avant Snowflake, il a occupé plusieurs postes techniques de direction chez AWS et MapR. James est titulaire d'un doctorat de l'Université de Stanford.

Horodatage:

Plus de Apprentissage automatique AWS