Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast

Această postare este o colaborare comună cu Andries Engelbrecht și James Sun de la Snowflake, Inc.

Revoluția cloud computing a permis companiilor să capteze și să rețină datele corporative și organizaționale fără planificarea capacității sau constrângerile de păstrare a datelor. Acum, cu rezerve diverse și vaste de date longitudinale, companiile sunt din ce în ce mai capabile să găsească modalități noi și cu impact de a-și folosi activele digitale pentru a lua decizii mai bune și informate atunci când iau decizii de planificare pe termen scurt și lung. Prognoza serii cronologice este o știință unică și esențială care permite companiilor să ia decizii de planificare chirurgicală pentru a ajuta la echilibrarea nivelurilor de servicii clienților față de obiectivele adesea concurente de rentabilitate optimă.

La AWS, uneori lucrăm cu clienți care ne-au selectat partenerul tehnologic Fulg de nea pentru a oferi o experiență de platformă de date în cloud. A avea o platformă care poate aminti ani și ani de date istorice este puternic, dar cum poți folosi aceste date pentru a privi în viitor și a folosi dovezile de ieri pentru a planifica ziua de mâine? Imaginați-vă că nu aveți la dispoziție doar ceea ce s-a întâmplat în Snowflake – versiunea voastră unică a adevărului – ci și un set adiacent de date care nu sunt izolate, care oferă o prognoză probabilistică pentru zile, săptămâni sau luni în viitor.

Într-un lanț de aprovizionare colaborativ, schimbul de informații între parteneri poate îmbunătăți performanța, crește competitivitatea și reduce resursele risipite. Împărtășirea previziunilor viitoare poate fi facilitată cu Partajarea datelor Snowflake, care vă permite să colaborați fără probleme cu partenerii dvs. de afaceri în siguranță și să identificați informații despre afaceri. Dacă mulți parteneri își împărtășesc previziunile, aceasta poate ajuta la controlul efectului de bici în lanțul de aprovizionare conectat. Puteți utiliza eficient Piața fulgilor de zăpadă pentru a genera bani din analiza predictivă din seturile de date produse în Prognoza Amazon.

În această postare, discutăm despre cum să implementăm o soluție automată de prognoză a seriilor de timp folosind Snowflake și Forecast.

Servicii AWS esențiale care permit această soluție

Forecast oferă mai mulți algoritmi de ultimă generație în serie de timp și gestionează alocarea unei capacități de calcul distribuite suficiente pentru a răspunde nevoilor aproape oricărei sarcini de lucru. Cu Forecast, nu obțineți un singur model; obțineți puterea multor modele care sunt optimizate în continuare într-un model ponderat unic pentru fiecare serie de timp din set. Pe scurt, serviciul oferă toată știința, gestionarea datelor și gestionarea resurselor într-un simplu apel API.

Funcții pas AWS oferă un mecanism de orchestrare a procesului care gestionează fluxul de lucru general. Serviciul încapsulează apelurile API cu Amazon Atena, AWS Lambdasși Forecast pentru a crea o soluție automată care recoltează date de la Snowflake, utilizează Forecast pentru a converti datele istorice în previziuni viitoare și apoi creează datele în interiorul Snowflake.

Interogările federate Athena se pot conecta la mai multe surse de date ale întreprinderii, inclusiv Amazon DynamoDB, Amazon RedShift, Serviciul Amazon OpenSearch, MySQL, PostgreSQL, Redis și alte magazine de date terțe, cum ar fi Snowflake. Conectorii de date rulează ca funcții Lambda — puteți utiliza acest cod sursă pentru a ajuta la lansarea Conector Amazon Athena Lambda Snowflake și conectați-vă cu AWS PrivateLink sau printr-un Gateway NAT.

Prezentare generală a soluțiilor

Unul dintre lucrurile pe care le facem adesea la AWS este munca pentru a ajuta clienții să-și realizeze obiectivele, îndepărtând totodată povara greutății nediferențiate. Având în vedere acest lucru, propunem următoarele soluţie pentru a ajuta clienții AWS și Snowflake să efectueze următorii pași:

  1. Exportați datele din Snowflake. Puteți folosi metadate flexibile pentru a descărca datele istorice necesare, conduse de un flux de lucru gata de utilizare.
  2. Importați date în Forecast. Indiferent de cazul de utilizare, industrie sau scară, importarea intrărilor de date pregătite este ușor și automatizat.
  3. Antrenează un model de serie cronologică de ultimă generație. Puteți automatiza prognoza în serie de timp fără a gestiona știința datelor sau furnizarea hardware.
  4. Generați inferență față de modelul antrenat. Ieșirile produse de previziuni sunt ușor de consumat pentru orice scop. Sunt disponibile ca simple fișiere CSV sau Parquet Serviciul Amazon de stocare simplă (Amazon S3).
  5. Folosiți istoricul și previziunile viitoare una lângă alta direct în Snowflake.

Următoarea diagramă ilustrează modul de implementare a unui flux de lucru automat care le permite clienților Snowflake să beneficieze de previziuni foarte precise ale seriei cronologice susținute de Forecast, un serviciu gestionat de AWS. Transcendend cazul de utilizare și industria, designul oferit aici extrage mai întâi date istorice din Snowflake. În continuare, fluxul de lucru trimite datele pregătite pentru calculul seriilor temporale. În cele din urmă, previziunile pentru perioadele viitoare sunt disponibile nativ în Snowflake, creând o experiență de utilizator perfectă pentru clienții comuni AWS și Snowflake.

Deși această arhitectură evidențiază doar detaliile tehnice cheie, soluția este ușor de pus la punct, uneori în 1-2 zile lucrătoare. Vă oferim un exemplu de cod de lucru pentru a ajuta la eliminarea greutății nediferențiate de a crea soluția singur și fără un avans. După ce descoperiți cum să implementați acest model pentru o singură sarcină de lucru, puteți repeta procesul de prognoză pentru orice date deținute în Snowflake. În secțiunile care urmează, descriem pașii cheie care vă permit să construiți o conductă automată.

Extrageți date istorice din Snowflake

În acest prim pas, utilizați SQL pentru a defini ce date doriți să fie prognozate și lăsați o interogare federată Athena să se conecteze la Snowflake, să ruleze SQL-ul personalizat și să păstreze setul de înregistrări rezultat pe Amazon S3. Prognoza necesită ca datele istorice de antrenament să fie disponibile pe Amazon S3 înainte de ingerare; prin urmare, Amazon S3 servește ca un buffer de stocare intermediar între Snowflake și Forecast. Prezintăm Athena în acest design pentru a activa Snowflake și alte surse de date eterogene. Dacă preferați, o altă abordare este utilizarea comenzii Snowflake COPY și integrarea stocării pentru a scrie rezultatele interogării pe Amazon S3.

Indiferent de mecanismul de transport utilizat, acum descriem tipul de date necesare pentru prognoză și modul în care datele sunt definite, pregătite și extrase. În secțiunea care urmează, descriem cum să importați date în Forecast.

Următoarea captură de ecran ilustrează cum ar putea arăta un set de date în schema sa nativă Snowflake.

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Deși această captură de ecran arată cum arată datele în starea lor naturală, Forecast necesită ca datele să fie modelate în trei seturi de date diferite:

  • Seria temporală țintă – Acesta este un set de date obligatoriu care conține variabila țintă și este utilizat pentru a antrena și a prezice o valoare viitoare. Singur, acest set de date servește ca model univariat de serie de timp.
  • Serii cronologice conexe – Acesta este un set de date opțional care conține variabile temporale care ar trebui să aibă o relație cu variabila țintă. Exemplele includ prețuri variabile, eforturi promoționale, trafic de evenimente hiperlocal, date privind perspectivele economice - orice simțiți că ar putea ajuta la explicarea variației în seria temporală țintă și la producerea unei prognoze mai bune. Setul de date aferent seriilor de timp transformă modelul dvs. univariat într-un multivariat pentru a ajuta la îmbunătățirea acurateței.
  • Metadatele articolului – Acesta este un set de date opțional care conține date categorice despre articolul prognozat. Metadatele articolului ajută adesea la creșterea performanței pentru produsele nou lansate, pe care le numim a pornire la rece.

Cu domeniul de aplicare al fiecăruia dintre seturile de date Forecast definit, puteți scrie interogări în Snowflake care generează câmpurile de date corecte din tabelele sursă necesare cu filtrele adecvate pentru a obține subsetul dorit de date. Următoarele sunt trei exemple de interogări SQL utilizate pentru a genera fiecare set de date de care Forecast are nevoie pentru un scenariu specific de planificare a cererii de alimente.

Începem cu interogarea seriei temporale țintă:

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

Interogarea opțională legată de seria temporală extrage covariabile, cum ar fi prețul și promoția:

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

Interogarea metadatelor articolului preia valori categorice distincte care ajută la darea unei dimensiuni și la definirea în continuare a articolului prognozat:

select DISTINCT ITEM_ID, FOOD_CATEGORY, FOOD_CUISINE
from DEMO.FOOD_DEMAND

Cu interogările sursă definite, ne putem conecta la Snowflake printr-o interogare federată Athena pentru a trimite interogările și a persista seturile de date rezultate pentru utilizarea prognozelor. Pentru mai multe informații, consultați Interogați Snowflake folosind Athena Federated Query și alăturați-vă cu datele din lacul dvs. de date Amazon S3.

Athena Snowflake Connector GitHub repo ajută la instalarea conectorului Snowflake. The Prognoza MLOps GitHub repo ajută la orchestrarea tuturor pașilor macro definiți în această postare și îi face repetați fără a scrie cod.

Importați date în Forecast

După ce parcurgem pasul anterior, un set de date țintă în serie de timp este în Amazon S3 și gata pentru import în Forecast. În plus, seturile de date opționale legate de seriile de timp și de metadate ale articolului pot fi, de asemenea, pregătite și gata pentru ingerare. Cu furnizarea Soluție de prognoză MLOps, tot ce trebuie să faceți aici este să inițiați mașina de stare Step Functions responsabilă de importul datelor — nu este necesar niciun cod. Forecast lansează un cluster pentru fiecare dintre seturile de date pe care le-ați furnizat și pregătește datele pentru ca serviciul să le utilizeze pentru construirea modelului ML și inferența modelului.

Creați un model ML în serie de timp cu statistici de acuratețe

După ce datele au fost importate, sunt create modele de serie cronologică foarte precise prin simpla apelare a unui API. Acest pas este încapsulat într-o mașină de stare Step Functions care inițiază API-ul Forecast pentru a începe formarea modelului. După ce modelul predictor este antrenat, mașina de stat exportă statisticile și predicțiile modelului în timpul ferestrei de backtest către Amazon S3. Exporturile de backtest sunt interogabile de Snowflake ca etapă externă, așa cum se arată în următoarea captură de ecran. Dacă preferați, puteți stoca datele într-o etapă internă. Ideea este să utilizați valorile backtest pentru a evalua răspândirea performanței seriilor de timp din setul de date furnizat.

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Creați previziuni viitoare

Cu modelul antrenat de la pasul anterior, o mașină de stare Step Functions creată special apelează API-ul Forecast pentru a crea prognoze cu date viitoare. Prognoza furnizează un cluster pentru a efectua inferența și extrage seria temporală țintă importată, seria temporală aferentă și seturile de date de metadate ale articolului printr-un model de predictor numit creat în pasul anterior. După ce predicțiile sunt generate, mașina de stări le scrie pe Amazon S3, unde, încă o dată, pot fi interogate ca etapă externă Snowflake sau mutate în Snowflake ca etapă internă.

Utilizați datele de predicție datate viitoare direct în Snowflake

AWS nu a construit o soluție complet automatizată pentru acest pas; cu toate acestea, cu soluția din această postare, datele au fost deja produse de Forecast în cei doi pași anteriori. Puteți trata rezultatele ca evenimente acționabile sau puteți construi tablouri de bord de business intelligence pe date. De asemenea, puteți utiliza datele pentru a crea planuri viitoare de producție și comenzi de achiziție, pentru a estima veniturile viitoare, pentru a crea planuri de resurse de personal și multe altele. Fiecare caz de utilizare este diferit, dar scopul acestui pas este de a furniza predicțiile către sistemele consumatoare corecte din organizația dvs. sau dincolo.

Următorul fragment de cod arată cum să interogați datele Amazon S3 direct din 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);

Pentru mai multe informații despre configurarea permisiunilor, consultați Opțiunea 1: Configurarea unei integrări de stocare Snowflake pentru a accesa Amazon S3. În plus, puteți utiliza Catalog de servicii AWS pentru a configura integrarea stocării Amazon S3; mai multe informații sunt disponibile pe GitHub repo.

Inițiază un flux de lucru bazat pe program sau pe evenimente

După ce instalați o soluție pentru volumul dvs. de lucru specific, pasul final este să automatizați procesul într-un program care are sens pentru cerințele dvs. unice, cum ar fi zilnic sau săptămânal. Principalul lucru este să decideți cum să începeți procesul. O metodă este de a folosi Snowflake pentru a invoca mașina de stare Step Functions și apoi de a orchestra pașii în serie. O altă abordare este de a înlănțui mașinile de stare împreună și de a începe rularea generală printr-un Amazon EventBridge regulă, pe care o puteți configura să ruleze dintr-un eveniment sau o activitate programată, de exemplu, la 9:00 GMT-8 în fiecare duminică seara.

Concluzie

Cu cea mai mare experiență; cel mai fiabil, scalabil și sigur cloud; și cel mai cuprinzător set de servicii și soluții, AWS este cel mai bun loc pentru a debloca valoarea datelor dvs. și pentru a o transforma în perspectivă. În această postare, v-am arătat cum să creați un flux de lucru automatizat de prognoză a seriilor de timp. O prognoză mai bună poate duce la rezultate mai mari ale serviciului clienți, mai puține deșeuri, mai puține stocuri neutilizate și mai multe numerar în bilanţ.

Dacă sunteți pregătit să automatizați și să îmbunătățiți prognoza, suntem aici pentru a vă sprijini în călătoria dvs. Contactați-vă echipa de cont AWS sau Snowflake pentru a începe astăzi și solicitați un atelier de prognoză pentru a vedea ce fel de valoare puteți debloca din datele dvs.


Despre Autori

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Bosco Albuquerque este arhitect senior de soluții partener la AWS și are peste 20 de ani de experiență în lucrul cu produse de baze de date și de analiză de la furnizorii de baze de date pentru întreprinderi și furnizorii de cloud. El a ajutat companiile de tehnologie să proiecteze și să implementeze soluții și produse de analiză a datelor.

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Frank Dallezotte este arhitect senior de soluții la AWS și este pasionat de lucrul cu furnizori independenți de software pentru a proiecta și a construi aplicații scalabile pe AWS. Are experiență în crearea de software, implementarea conductelor de construcție și implementarea acestor soluții în cloud.

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Andries Engelbrecht este arhitect principal de soluții pentru parteneri la Snowflake și lucrează cu parteneri strategici. El este implicat activ cu parteneri strategici precum AWS care sprijină integrările de produse și servicii, precum și dezvoltarea de soluții comune cu partenerii. Andries are peste 20 de ani de experiență în domeniul datelor și analizei.

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Charles Laughlin este arhitect principal de soluții AI/ML Specialist și lucrează în echipa Time Series ML la AWS. El ajută la modelarea foii de parcurs a serviciilor Amazon Forecast și colaborează zilnic cu diverși clienți AWS pentru a le ajuta să-și transforme afacerile folosind tehnologii AWS de ultimă oră și lider de gândire. Charles deține un MS în managementul lanțului de aprovizionare și a petrecut ultimul deceniu lucrând în industria bunurilor de larg consum.

Automatizați-vă prognoza seriilor temporale în Snowflake folosind Amazon Forecast PlatoBlockchain Data Intelligence. Căutare verticală. Ai.James Sun este arhitect senior de soluții pentru parteneri la Snowflake. James are peste 20 de ani de experiență în stocarea și analiza datelor. Înainte de Snowflake, a ocupat mai multe funcții tehnice de conducere la AWS și MapR. James deține un doctorat la Universitatea Stanford.

Timestamp-ul:

Mai mult de la Învățare automată AWS