Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast

Dieser Beitrag ist eine gemeinsame Zusammenarbeit mit Andries Engelbrecht und James Sun von Snowflake, Inc.

Die Cloud-Computing-Revolution hat es Unternehmen ermöglicht, Unternehmens- und Organisationsdaten ohne Einschränkungen bei der Kapazitätsplanung oder Datenaufbewahrung zu erfassen und aufzubewahren. Jetzt, mit vielfältigen und riesigen Reserven an Längsschnittdaten, sind Unternehmen zunehmend in der Lage, neue und wirkungsvolle Wege zu finden, ihre digitalen Assets zu nutzen, um bessere und fundiertere Entscheidungen bei kurz- und langfristigen Planungsentscheidungen zu treffen. Die Zeitreihenprognose ist eine einzigartige und grundlegende Wissenschaft, die es Unternehmen ermöglicht, chirurgische Planungsentscheidungen zu treffen, um das Kundendienstniveau gegen oft konkurrierende Ziele einer optimalen Rentabilität auszugleichen.

Bei AWS arbeiten wir manchmal mit Kunden zusammen, die sich für unseren Technologiepartner entschieden haben Schneeflocke um ein Cloud-Datenplattform-Erlebnis bereitzustellen. Eine Plattform zu haben, die jahrelange historische Daten abrufen kann, ist leistungsfähig – aber wie können Sie diese Daten nutzen, um nach vorne zu schauen und die Beweise von gestern zu nutzen, um für morgen zu planen? Stellen Sie sich vor, Sie hätten nicht nur das, was passiert ist, in Snowflake verfügbar – Ihre einzige Version der Wahrheit –, sondern auch einen angrenzenden Satz nicht isolierter Daten, der eine probabilistische Vorhersage für Tage, Wochen oder Monate in die Zukunft bietet.

In einer kollaborativen Lieferkette kann der Austausch von Informationen zwischen Partnern die Leistung verbessern, die Wettbewerbsfähigkeit steigern und die Verschwendung von Ressourcen reduzieren. Das Teilen Ihrer Zukunftsprognosen kann mit erleichtert werden Snowflake-Datenfreigabe, die es Ihnen ermöglicht, nahtlos und sicher mit Ihren Geschäftspartnern zusammenzuarbeiten und geschäftliche Erkenntnisse zu gewinnen. Wenn viele Partner ihre Prognosen teilen, kann dies dazu beitragen, den Bullwhip-Effekt in der vernetzten Lieferkette zu kontrollieren. Sie können effektiv verwenden Snowflake-Marktplatz um Ihre Vorhersageanalysen aus Datensätzen zu monetarisieren, die in erstellt wurden Amazon-Prognose.

In diesem Beitrag erörtern wir, wie Sie eine automatisierte Zeitreihen-Prognoselösung mit Snowflake und Forecast implementieren.

Wesentliche AWS-Services, die diese Lösung ermöglichen

Forecast bietet mehrere hochmoderne Zeitreihenalgorithmen und verwaltet die Zuweisung von ausreichend verteilter Rechenkapazität, um die Anforderungen nahezu aller Workloads zu erfüllen. Mit Forecast erhalten Sie kein einzelnes Modell; Sie erhalten die Stärke vieler Modelle, die für jede Zeitreihe im Satz zu einem eindeutig gewichteten Modell weiter optimiert werden. Kurz gesagt, der Dienst liefert die gesamte Wissenschaft, Datenverarbeitung und Ressourcenverwaltung in einem einfachen API-Aufruf.

AWS Step-Funktionen stellt einen Prozess-Orchestrierungsmechanismus bereit, der den gesamten Arbeitsablauf verwaltet. Der Dienst kapselt API-Aufrufe mit Amazonas Athena, AWS Lambdaund Forecast, um eine automatisierte Lösung zu erstellen, die Daten aus Snowflake sammelt, Forecast verwendet, um historische Daten in zukünftige Vorhersagen umzuwandeln, und die Daten dann in Snowflake erstellt.

Verbundabfragen von Athena können eine Verbindung zu mehreren Unternehmensdatenquellen herstellen, einschließlich Amazon DynamoDB, Amazon RedShift, Amazon OpenSearch-Dienst, MySQL, PostgreSQL, Redis und andere beliebte Datenspeicher von Drittanbietern wie Snowflake. Datenkonnektoren werden als Lambda-Funktionen ausgeführt – Sie können diesen Quellcode verwenden, um beim Starten von zu helfen Amazon Athena Lambda Snowflake-Konnektor und verbinden mit AWS PrivateLink oder über ein NAT-Gateway.

Lösungsüberblick

Eines der Dinge, die wir bei AWS oft tun, ist daran zu arbeiten, Kunden bei der Verwirklichung ihrer Ziele zu helfen und gleichzeitig die Last der undifferenzierten Schwerstarbeit zu beseitigen. Vor diesem Hintergrund schlagen wir Folgendes vor Lösung Um AWS- und Snowflake-Kunden zu unterstützen, führen Sie die folgenden Schritte aus:

  1. Exportieren Sie Daten aus Snowflake. Sie können flexible Metadaten verwenden, um die erforderlichen historischen Daten zu entladen, die von einem sofort einsatzbereiten Workflow gesteuert werden.
  2. Importieren Sie Daten in Forecast. Unabhängig von Anwendungsfall, Branche oder Umfang ist der Import vorbereiteter Dateneingaben einfach und automatisiert.
  3. Trainieren Sie ein hochmodernes Zeitreihenmodell. Sie können Zeitreihenprognosen automatisieren, ohne die zugrunde liegende Datenwissenschaft oder Hardwarebereitstellung zu verwalten.
  4. Generieren Sie Rückschlüsse auf das trainierte Modell. Von Prognosen erstellte Ausgaben können für jeden Zweck einfach verwendet werden. Sie sind als einfache CSV- oder Parquet-Dateien verfügbar Amazon Simple Storage-Service (Amazon S3).
  5. Verwenden Sie Verlaufs- und Zukunftsvorhersagen nebeneinander direkt in Snowflake.

Das folgende Diagramm veranschaulicht, wie ein automatisierter Workflow implementiert wird, der es Snowflake-Kunden ermöglicht, von hochgenauen Zeitreihenvorhersagen zu profitieren, die von Forecast, einem von AWS verwalteten Service, unterstützt werden. Das hier angebotene Design ist anwendungsfall- und branchenübergreifend und extrahiert zunächst historische Daten aus Snowflake. Als nächstes übermittelt der Workflow die vorbereiteten Daten für die Zeitreihenberechnung. Schließlich sind Vorhersagen für zukünftige Perioden nativ in Snowflake verfügbar, wodurch ein nahtloses Benutzererlebnis für gemeinsame AWS- und Snowflake-Kunden geschaffen wird.

Obwohl diese Architektur nur die wichtigsten technischen Details hervorhebt, ist die Lösung einfach zusammenzustellen, manchmal innerhalb von 1–2 Werktagen. Wir stellen Ihnen funktionierenden Beispielcode zur Verfügung, um Ihnen das undifferenzierte schwere Heben beim Erstellen der Lösung allein und ohne Vorsprung zu ersparen. Nachdem Sie herausgefunden haben, wie Sie dieses Muster für eine Workload implementieren, können Sie den Prognoseprozess für alle in Snowflake gespeicherten Daten wiederholen. In den folgenden Abschnitten skizzieren wir die wichtigsten Schritte, mit denen Sie eine automatisierte Pipeline erstellen können.

Extrahieren Sie historische Daten aus Snowflake

In diesem ersten Schritt verwenden Sie SQL, um zu definieren, welche Daten prognostiziert werden sollen, und lassen eine Athena Federated Query eine Verbindung zu Snowflake herstellen, Ihr benutzerdefiniertes SQL ausführen und den resultierenden Datensatz auf Amazon S3 speichern. Für die Prognose müssen historische Trainingsdaten vor der Aufnahme auf Amazon S3 verfügbar sein; Daher dient Amazon S3 als Zwischenspeicher zwischen Snowflake und Forecast. Wir verwenden Athena in diesem Design, um Snowflake und andere heterogene Datenquellen zu ermöglichen. Wenn Sie es vorziehen, besteht ein anderer Ansatz darin, den COPY-Befehl von Snowflake und die Speicherintegration zu verwenden, um Abfrageergebnisse in Amazon S3 zu schreiben.

Unabhängig vom verwendeten Transportmechanismus skizzieren wir nun, welche Art von Daten Forecast benötigt und wie Daten definiert, aufbereitet und extrahiert werden. Im folgenden Abschnitt beschreiben wir, wie Sie Daten in Forecast importieren.

Der folgende Screenshot zeigt, wie ein Datensatz in seinem nativen Snowflake-Schema aussehen könnte.

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Obwohl dieser Screenshot zeigt, wie die Daten in ihrem natürlichen Zustand aussehen, erfordert Forecast, dass Daten in drei verschiedene Datensätze umgewandelt werden:

  • Zielzeitreihe – Dies ist ein erforderlicher Datensatz, der die Zielvariable enthält und zum Trainieren und Vorhersagen eines zukünftigen Werts verwendet wird. Allein dieser Datensatz dient als univariates Zeitreihenmodell.
  • Verwandte Zeitreihen – Dies ist ein optionaler Datensatz, der zeitliche Variablen enthält, die eine Beziehung zur Zielvariablen haben sollten. Beispiele hierfür sind variable Preise, Werbemaßnahmen, hyperlokaler Veranstaltungsverkehr, Daten zu wirtschaftlichen Aussichten – alles, was Ihrer Meinung nach dazu beitragen könnte, Abweichungen in der Zielzeitreihe zu erklären und eine bessere Prognose zu erstellen. Das zugehörige Zeitreihen-Dataset verwandelt Ihr univariates Modell in ein multivariates, um die Genauigkeit zu verbessern.
  • Artikelmetadaten – Dies ist ein optionaler Datensatz, der kategoriale Daten über das prognostizierte Element enthält. Artikelmetadaten helfen oft, die Leistung neu eingeführter Produkte zu steigern, die wir als a Kaltstart.

Wenn der Umfang jedes der Prognose-Datasets definiert ist, können Sie Abfragen in Snowflake schreiben, die die richtigen Datenfelder aus den erforderlichen Quelltabellen mit den richtigen Filtern beziehen, um die gewünschte Teilmenge von Daten zu erhalten. Im Folgenden finden Sie drei beispielhafte SQL-Abfragen, die zum Generieren jedes Datensatzes verwendet werden, den Forecast für ein bestimmtes Szenario für die Lebensmittelbedarfsplanung benötigt.

Wir beginnen mit der Zielzeitreihenabfrage:

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

Die optionale Abfrage verwandter Zeitreihen ruft Kovariaten wie Preis und Werbung ab:

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

Die Elementmetadatenabfrage ruft eindeutige kategoriale Werte ab, die dabei helfen, dem prognostizierten Element Dimensionen zu verleihen und es weiter zu definieren:

select DISTINCT ITEM_ID, FOOD_CATEGORY, FOOD_CUISINE
from DEMO.FOOD_DEMAND

Wenn die Quellabfragen definiert sind, können wir über eine Athena Federated Query eine Verbindung zu Snowflake herstellen, um die Abfragen zu senden und die resultierenden Datasets für die Verwendung in Prognosen zu speichern. Weitere Informationen finden Sie unter Fragen Sie Snowflake mit Athena Federated Query ab und verbinden Sie sich mit Daten in Ihrem Amazon S3-Data Lake.

Das Athena Snowflake Connector GitHub-Repo hilft bei der Installation des Snowflake-Konnektors. Das Prognose MLOps GitHub-Repo hilft bei der Orchestrierung aller in diesem Beitrag definierten Makroschritte und macht sie wiederholbar, ohne Code schreiben zu müssen.

Importieren Sie Daten in Forecast

Nachdem wir den vorherigen Schritt abgeschlossen haben, befindet sich ein Zielzeitreihen-Datensatz in Amazon S3 und kann in Forecast importiert werden. Darüber hinaus können auch die optionalen zugehörigen Zeitreihen- und Elementmetadaten-Datensätze vorbereitet und zur Aufnahme bereit sein. Mit dem bereitgestellten Prognose-MLOps-Lösung, alles, was Sie hier tun müssen, ist, die Step Functions-Zustandsmaschine zu initiieren, die für das Importieren von Daten verantwortlich ist – es ist kein Code erforderlich. Forecast startet einen Cluster für jeden der von Ihnen bereitgestellten Datensätze und bereitet die Daten für den Dienst zur Verwendung für die Erstellung von ML-Modellen und Modellrückschlüssen vor.

Erstellen Sie ein Zeitreihen-ML-Modell mit Genauigkeitsstatistiken

Nachdem die Daten importiert wurden, werden hochgenaue Zeitreihenmodelle einfach durch Aufrufen einer API erstellt. Dieser Schritt ist in einer Step Functions-Zustandsmaschine eingekapselt, die die Forecast-API initiiert, um mit dem Modelltraining zu beginnen. Nachdem das Prädiktormodell trainiert wurde, exportiert die Zustandsmaschine die Modellstatistiken und Vorhersagen während des Backtest-Fensters an Amazon S3. Backtest-Exporte können von Snowflake als externe Stufe abgefragt werden, wie im folgenden Screenshot gezeigt. Wenn Sie möchten, können Sie die Daten in einer internen Stufe speichern. Der Punkt ist, die Backtest-Metriken zu verwenden, um die Leistungsstreuung von Zeitreihen in Ihrem bereitgestellten Datensatz zu bewerten.

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Zukunftsvorhersagen erstellen

Mit dem aus dem vorherigen Schritt trainierten Modell ruft eine speziell entwickelte Step Functions-Zustandsmaschine die Prognose-API auf, um zukunftsbezogene Prognosen zu erstellen. Forecast stellt einen Cluster bereit, um die Inferenz durchzuführen, und zieht die importierten Zielzeitreihen, zugehörigen Zeitreihen und Artikelmetadaten-Datasets durch ein benanntes Prädiktormodell, das im vorherigen Schritt erstellt wurde. Nachdem die Vorhersagen generiert wurden, schreibt die Zustandsmaschine sie in Amazon S3, wo sie erneut als externe Snowflake-Stufe abgefragt oder als interne Stufe in Snowflake verschoben werden können.

Verwenden Sie die zukunftsbezogenen Vorhersagedaten direkt in Snowflake

AWS hat für diesen Schritt keine vollständig automatisierte Lösung entwickelt; Mit der Lösung in diesem Beitrag wurden die Daten jedoch bereits in den vorherigen zwei Schritten von Forecast erzeugt. Sie können die Ausgaben als umsetzbare Ereignisse behandeln oder Business-Intelligence-Dashboards auf den Daten erstellen. Sie können die Daten auch verwenden, um zukünftige Produktionspläne und Bestellungen zu erstellen, zukünftige Einnahmen zu schätzen, Personalressourcenpläne zu erstellen und vieles mehr. Jeder Anwendungsfall ist anders, aber der Zweck dieses Schritts besteht darin, die Vorhersagen an die richtigen Verbrauchersysteme in Ihrer Organisation oder darüber hinaus zu liefern.

Das folgende Code-Snippet zeigt, wie Amazon S3-Daten direkt in Snowflake abgefragt werden:

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);

Weitere Informationen zum Einrichten von Berechtigungen finden Sie unter Option 1: Konfigurieren einer Snowflake-Speicherintegration für den Zugriff auf Amazon S3. Zusätzlich können Sie die verwenden AWS-Servicekatalog um die Amazon S3-Speicherintegration zu konfigurieren; Weitere Informationen finden Sie auf der GitHub Repo.

Initiieren Sie einen zeitplanbasierten oder ereignisbasierten Workflow

Nachdem Sie eine Lösung für Ihre spezifische Workload installiert haben, besteht Ihr letzter Schritt darin, den Prozess nach einem Zeitplan zu automatisieren, der für Ihre individuellen Anforderungen sinnvoll ist, z. B. täglich oder wöchentlich. Die Hauptsache ist, zu entscheiden, wie der Prozess gestartet werden soll. Eine Methode besteht darin, Snowflake zum Aufrufen der Step Functions-Zustandsmaschine zu verwenden und dann die Schritte seriell zu orchestrieren. Ein anderer Ansatz besteht darin, Zustandsmaschinen miteinander zu verketten und den Gesamtdurchlauf zu starten Amazon EventBridge Regel, die Sie so konfigurieren können, dass sie von einem Ereignis oder einer geplanten Aufgabe aus ausgeführt wird, z. B. jeden Sonntagabend um 9:00 Uhr GMT-8.

Zusammenfassung

Mit der größten Erfahrung; die zuverlässigste, skalierbarste und sicherste Cloud; und dem umfassendsten Angebot an Services und Lösungen ist AWS der beste Ort, um den Wert Ihrer Daten zu erschließen und in Erkenntnisse umzuwandeln. In diesem Beitrag haben wir Ihnen gezeigt, wie Sie einen automatisierten Zeitreihen-Prognose-Workflow erstellen. Bessere Prognosen können zu besseren Kundenservice-Ergebnissen, weniger Verschwendung, weniger ungenutzten Lagerbeständen und mehr Liquidität in der Bilanz führen.

Wenn Sie bereit sind, Prognosen zu automatisieren und zu verbessern, sind wir hier, um Sie auf Ihrem Weg zu unterstützen. Wenden Sie sich an Ihr AWS- oder Snowflake-Kontoteam, um noch heute loszulegen, und fragen Sie nach einem Prognose-Workshop, um zu sehen, welche Art von Wert Sie aus Ihren Daten ziehen können.


Über die Autoren

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Bosco Albuquerque ist Sr. Partner Solutions Architect bei AWS und verfügt über mehr als 20 Jahre Erfahrung in der Arbeit mit Datenbank- und Analyseprodukten von Anbietern von Unternehmensdatenbanken und Cloud-Anbietern. Er hat Technologieunternehmen dabei geholfen, Datenanalyselösungen und -produkte zu entwerfen und zu implementieren.

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Frank Dallezotte ist Sr. Solutions Architect bei AWS und arbeitet leidenschaftlich gerne mit unabhängigen Softwareanbietern zusammen, um skalierbare Anwendungen auf AWS zu entwerfen und zu erstellen. Er hat Erfahrung in der Erstellung von Software, der Implementierung von Build-Pipelines und der Bereitstellung dieser Lösungen in der Cloud.

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Andries Engelbrecht ist Principal Partner Solutions Architect bei Snowflake und arbeitet mit strategischen Partnern zusammen. Er arbeitet aktiv mit strategischen Partnern wie AWS zusammen, um Produkt- und Serviceintegrationen sowie die Entwicklung gemeinsamer Lösungen mit Partnern zu unterstützen. Andries verfügt über mehr als 20 Jahre Erfahrung im Bereich Daten und Analytik.

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Charles Laughlin ist Principal AI/ML Specialist Solutions Architect und arbeitet im Time Series ML-Team bei AWS. Er hilft bei der Gestaltung der Amazon Forecast-Service-Roadmap und arbeitet täglich mit verschiedenen AWS-Kunden zusammen, um ihre Unternehmen mit modernsten AWS-Technologien und Vordenkertum zu transformieren. Charles hat einen MS in Supply Chain Management und hat die letzten zehn Jahre in der Konsumgüterindustrie gearbeitet.

Automatisieren Sie Ihre Zeitreihenprognosen in Snowflake mit Amazon Forecast PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.James Sun. ist Senior Partner Solutions Architect bei Snowflake. James verfügt über mehr als 20 Jahre Erfahrung in den Bereichen Speicherung und Datenanalyse. Vor Snowflake hatte er mehrere leitende technische Positionen bei AWS und MapR inne. James hat an der Stanford University promoviert.

Zeitstempel:

Mehr von AWS Maschinelles Lernen