Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake za pomocą Amazon Forecast

Ten post powstał we współpracy z Andriesem Engelbrechtem i Jamesem Sun z Snowflake, Inc.

Rewolucja przetwarzania w chmurze umożliwiła firmom przechwytywanie i przechowywanie danych firmowych i organizacyjnych bez ograniczeń związanych z planowaniem pojemności i przechowywaniem danych. Teraz, dzięki zróżnicowanym i ogromnym rezerwom danych podłużnych, firmy coraz częściej są w stanie znaleźć nowatorskie i skuteczne sposoby wykorzystania swoich zasobów cyfrowych do podejmowania lepszych i świadomych decyzji podczas podejmowania krótko- i długoterminowych decyzji planistycznych. Prognozowanie szeregów czasowych to unikalna i niezbędna nauka, która pozwala firmom podejmować decyzje dotyczące planowania chirurgicznego, aby pomóc zrównoważyć poziom obsługi klienta z często konkurencyjnymi celami optymalnej rentowności.

W AWS czasami współpracujemy z klientami, którzy wybrali naszego partnera technologicznego Snowflake dostarczanie platformy danych w chmurze. Posiadanie platformy, która może przywoływać dane historyczne z wielu lat, jest potężne — ale jak możesz wykorzystać te dane, aby spojrzeć w przyszłość i wykorzystać wczorajsze dowody do planowania jutra? Wyobraź sobie, że w Snowflake masz dostęp nie tylko do tego, co się wydarzyło — twojej pojedynczej wersji prawdy — ale także do sąsiedniego zestawu danych, które nie są podzielone na silosy, które oferują probabilistyczną prognozę na kilka dni, tygodni lub miesięcy w przyszłość.

We wspólnym łańcuchu dostaw wymiana informacji między partnerami może poprawić wydajność, zwiększyć konkurencyjność i zmniejszyć marnotrawstwo zasobów. Udostępnianie przyszłych prognoz może być ułatwione dzięki Udostępnianie danych w płatkach śniegu, co umożliwia bezproblemową, bezpieczną współpracę z partnerami biznesowymi i identyfikowanie statystyk biznesowych. Jeśli wielu partnerów podzieli się swoimi prognozami, może to pomóc w kontrolowaniu efektu byczego bicza w połączonym łańcuchu dostaw. Możesz skutecznie wykorzystać Rynek płatków śniegu zarabiać na analizach predykcyjnych z zestawów danych wyprodukowanych w Prognoza Amazon.

W tym poście omawiamy, jak wdrożyć zautomatyzowane rozwiązanie do prognozowania szeregów czasowych przy użyciu płatka śniegu i prognozy.

Niezbędne usługi AWS, które umożliwiają to rozwiązanie

Prognoza udostępnia kilka najnowocześniejszych algorytmów szeregów czasowych i zarządza przydzielaniem wystarczającej mocy obliczeniowej rozproszonej, aby zaspokoić potrzeby niemal każdego obciążenia. Dzięki Forecast nie otrzymujesz jednego modelu; otrzymujesz siłę wielu modeli, które są dodatkowo zoptymalizowane do unikalnie wyważonego modelu dla każdej serii czasowej w zestawie. Krótko mówiąc, usługa dostarcza całą wiedzę naukową, obsługę danych i zarządzanie zasobami w prostym wywołaniu interfejsu API.

Funkcje kroków AWS udostępnia mechanizm aranżacji procesów, który zarządza całym przepływem pracy. Usługa hermetyzuje wywołania API za pomocą Amazonka Atena, AWS Lambdai Forecast, aby utworzyć zautomatyzowane rozwiązanie, które zbiera dane z usługi Snowflake, używa funkcji Forecast do konwertowania danych historycznych na przyszłe prognozy, a następnie tworzy dane w Snowflake.

Zapytania federacyjne Athena mogą łączyć się z kilkoma źródłami danych przedsiębiorstwa, w tym Amazon DynamoDB, Amazonka Przesunięcie ku czerwieni, Usługa Amazon OpenSearch, MySQL, PostgreSQL, Redis i inne popularne magazyny danych innych firm, takie jak Snowflake. Łączniki danych działają jako funkcje Lambda — możesz użyć tego kodu źródłowego, aby pomóc w uruchomieniu Amazon Athena Lambda Złącze płatka śniegu i łączyć się z Prywatny link AWS lub przez bramę NAT.

Omówienie rozwiązania

Jedną z rzeczy, które często robimy w AWS, jest pomoc klientom w realizacji ich celów, a jednocześnie usuwanie ciężaru niezróżnicowanego podnoszenia ciężkich przedmiotów. Mając to na uwadze, proponujemy następujące rozwiązanie aby pomóc klientom AWS i Snowflake wykonać następujące kroki:

  1. Eksportuj dane z Snowflake. Możesz użyć elastycznych metadanych, aby zwolnić niezbędne dane historyczne oparte na gotowym przepływie pracy.
  2. Importuj dane do prognozy. Bez względu na przypadek użycia, branżę lub skalę importowanie przygotowanych danych wejściowych jest łatwe i zautomatyzowane.
  3. Trenuj najnowocześniejszy model szeregów czasowych. Możesz zautomatyzować prognozowanie szeregów czasowych bez zarządzania podstawową nauką o danych lub udostępnianiem sprzętu.
  4. Generuj wnioskowanie na podstawie wytrenowanego modelu. Opracowane przez prognozy dane wyjściowe są łatwe do wykorzystania w dowolnym celu. Są dostępne jako proste pliki CSV lub Parquet na Usługa Amazon Simple Storage (Amazonka S3).
  5. Korzystaj z historii i prognoz na przyszłość bezpośrednio w Snowflake.

Poniższy diagram ilustruje, jak wdrożyć zautomatyzowany przepływ pracy, który umożliwia klientom Snowflake korzystanie z bardzo dokładnych prognoz szeregów czasowych obsługiwanych przez Forecast, usługę zarządzaną przez AWS. Wykraczając poza przypadki użycia i branżę, oferowany tutaj projekt najpierw wydobywa dane historyczne z płatka śniegu. Następnie workflow przesyła przygotowane dane do obliczenia szeregów czasowych. Wreszcie, prognozy przyszłych okresów są dostępne natywnie w Snowflake, tworząc bezproblemową obsługę dla wspólnych klientów AWS i Snowflake.

Chociaż ta architektura podkreśla tylko kluczowe szczegóły techniczne, rozwiązanie jest proste do złożenia, czasami w ciągu 1-2 dni roboczych. Zapewniamy działający przykładowy kod, który pomaga usunąć niezróżnicowany ciężar związany z samodzielnym tworzeniem rozwiązania i bez przewagi. Gdy odkryjesz, jak zaimplementować ten wzorzec dla jednego obciążenia, możesz powtórzyć proces prognozowania dla dowolnych danych przechowywanych w Snowflake. W kolejnych sekcjach przedstawiamy kluczowe kroki, które umożliwiają zbudowanie zautomatyzowanego potoku.

Wyodrębnij dane historyczne z płatka śniegu

W tym pierwszym kroku używasz SQL, aby określić, jakie dane chcesz prognozować, i pozwalasz federacyjnemu zapytaniu Athena łączyć się z Snowflake, uruchamiać spersonalizowany SQL i utrwalać wynikowy zestaw rekordów w Amazon S3. Prognoza wymaga, aby historyczne dane treningowe były dostępne w Amazon S3 przed przyjęciem; dlatego Amazon S3 służy jako pośredni bufor pamięci między Snowflake a Forecast. W tym projekcie wykorzystujemy Athenę, aby umożliwić korzystanie z płatków śniegu i innych heterogenicznych źródeł danych. Jeśli wolisz, innym podejściem jest użycie polecenia Snowflake COPY i integracji pamięci masowej do zapisywania wyników zapytań w Amazon S3.

Niezależnie od zastosowanego mechanizmu transportu, przedstawiamy teraz rodzaj danych potrzebnych do prognozowania oraz sposób definiowania, przygotowywania i ekstrakcji danych. W poniższej sekcji opisujemy, jak importować dane do prognozy.

Poniższy zrzut ekranu przedstawia, jak zestaw danych może wyglądać w natywnym schemacie Snowflake.

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Chociaż ten zrzut ekranu pokazuje, jak dane wyglądają w ich naturalnym stanie, Prognoza wymaga, aby dane były ukształtowane w trzy różne zestawy danych:

  • Docelowe szeregi czasowe – Jest to wymagany zestaw danych zawierający zmienną docelową i służy do uczenia i przewidywania przyszłej wartości. Sam ten zestaw danych służy jako jednowymiarowy model szeregów czasowych.
  • Powiązane serie czasowe – Jest to opcjonalny zbiór danych, który zawiera zmienne czasowe, które powinny mieć związek ze zmienną docelową. Przykładami są zmienne ceny, działania promocyjne, ruch związany z wydarzeniami hiperlokalnymi, dane dotyczące perspektyw ekonomicznych — wszystko, co uważasz, może pomóc w wyjaśnieniu odchyleń w docelowych szeregach czasowych i stworzeniu lepszej prognozy. Powiązany zestaw danych szeregów czasowych przekształca model jednowymiarowy w wielowymiarowy, aby zwiększyć dokładność.
  • Metadane pozycji – Jest to opcjonalny zbiór danych zawierający dane kategoryczne dotyczące prognozowanej pozycji. Metadane produktów często pomagają zwiększyć wydajność nowo wprowadzonych produktów, które nazywamy chłodny początek.

Mając zdefiniowany zakres każdego zestawu danych Prognozy, możesz pisać zapytania w Snowflake, które pozyskują prawidłowe pola danych z niezbędnych tabel źródłowych z odpowiednimi filtrami, aby uzyskać żądany podzbiór danych. Poniżej przedstawiono trzy przykładowe zapytania SQL używane do generowania każdego zestawu danych, którego Prognoza potrzebuje dla określonego scenariusza planowania zapotrzebowania na żywność.

Zaczynamy od zapytania o docelowe szeregi czasowe:

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

Opcjonalne powiązane zapytanie szeregów czasowych pobiera współzmienne, takie jak cena i promocja:

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

Zapytanie o metadane elementu pobiera różne wartości kategoryczne, które pomagają nadać wymiar i dokładniej zdefiniować prognozowany element:

select DISTINCT ITEM_ID, FOOD_CATEGORY, FOOD_CUISINE
from DEMO.FOOD_DEMAND

Po zdefiniowaniu zapytań źródłowych możemy połączyć się z Snowflake za pomocą zapytania federacyjnego Athena w celu przesłania zapytań i utrwalenia wynikowych zestawów danych na potrzeby prognozowania. Aby uzyskać więcej informacji, zobacz Wysyłaj zapytania do Snowflake za pomocą Athena Federated Query i dołączaj do danych w swoim jeziorze danych Amazon S3.

Połączenia Athena Snowflake Connector repozytorium GitHub pomaga zainstalować złącze płatka śniegu. The Prognoza MLOps repozytorium GitHub pomaga zaaranżować wszystkie kroki makr zdefiniowane w tym poście i sprawia, że ​​są powtarzalne bez pisania kodu.

Importuj dane do prognozy

Po wykonaniu poprzedniego kroku docelowy zestaw danych szeregów czasowych znajduje się w Amazon S3 i jest gotowy do zaimportowania do programu Forecast. Ponadto opcjonalne powiązane szeregi czasowe i zestawy danych metadanych pozycji mogą być również przygotowane i gotowe do przetwarzania. Z dostarczonym Prognozowanie rozwiązania MLOps, wszystko, co musisz tutaj zrobić, to uruchomić maszynę stanów Step Functions odpowiedzialną za importowanie danych — nie jest potrzebny żaden kod. Prognoza uruchamia klaster dla każdego dostarczonego zestawu danych i przygotowuje dane do użycia przez usługę na potrzeby budowania modelu ML i wnioskowania o modelu.

Utwórz model ML szeregów czasowych ze statystykami dokładności

Po zaimportowaniu danych bardzo dokładne modele szeregów czasowych są tworzone po prostu przez wywołanie interfejsu API. Ten krok jest hermetyzowany w maszynie stanów Step Functions, która inicjuje interfejs API prognozy w celu rozpoczęcia uczenia modelu. Po przeszkoleniu modelu predykcyjnego maszyna stanu eksportuje statystyki modelu i prognozy w oknie analizy historycznej do usługi Amazon S3. Eksporty backtestu są odpytywane przez Snowflake jako etap zewnętrzny, jak pokazano na poniższym zrzucie ekranu. Jeśli wolisz, możesz przechowywać dane na etapie wewnętrznym. Chodzi o to, aby użyć metryk testu historycznego do oceny rozrzutu wydajności szeregów czasowych w dostarczonym zbiorze danych.

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Twórz prognozy na przyszłość

W przypadku modelu przeszkolonego na podstawie poprzedniego kroku specjalnie skonstruowany automat stanów Step Functions wywołuje interfejs API prognoz w celu tworzenia prognoz z datą przyszłą. Prognoza udostępnia klaster w celu przeprowadzenia wnioskowania i ściąga zaimportowane docelowe szeregi czasowe, powiązane szeregi czasowe i zestawy danych metadanych elementów za pomocą nazwanego modelu predyktora utworzonego w poprzednim kroku. Po wygenerowaniu prognoz maszyna stanu zapisuje je do Amazon S3, gdzie ponownie można je odpytywać jako zewnętrzny etap Snowflake lub przenieść do Snowflake jako etap wewnętrzny.

Korzystaj z prognozowanych danych z przyszłością bezpośrednio w Snowflake

AWS nie zbudował w pełni zautomatyzowanego rozwiązania dla tego kroku; jednak dzięki rozwiązaniu opisanemu w tym poście dane zostały już wygenerowane przez Forecast w poprzednich dwóch krokach. Możesz traktować dane wyjściowe jako zdarzenia umożliwiające działanie lub budować pulpity nawigacyjne analizy biznesowej na danych. Możesz również użyć danych do tworzenia przyszłych planów produkcyjnych i zamówień zakupu, szacowania przyszłych przychodów, tworzenia planów zasobów kadrowych i nie tylko. Każdy przypadek użycia jest inny, ale celem tego kroku jest dostarczenie prognoz do właściwych systemów konsumenckich w organizacji lub poza nią.

Poniższy fragment kodu pokazuje, jak wysyłać zapytania do danych Amazon S3 bezpośrednio z poziomu 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);

Aby uzyskać więcej informacji o konfigurowaniu uprawnień, zobacz Opcja 1: Konfigurowanie integracji pamięci masowej Snowflake w celu uzyskania dostępu do Amazon S3. Dodatkowo możesz użyć Katalog usług AWS skonfigurować integrację pamięci masowej Amazon S3; więcej informacji jest dostępnych na GitHub repo.

Zainicjuj przepływ pracy oparty na harmonogramie lub zdarzeniach

Po zainstalowaniu rozwiązania dla konkretnego obciążenia, ostatnim krokiem jest zautomatyzowanie procesu zgodnie z harmonogramem, który ma sens dla Twoich unikalnych wymagań, takich jak dzienny lub tygodniowy. Najważniejsze jest, aby zdecydować, jak rozpocząć proces. Jedną z metod jest użycie Snowflake do wywołania maszyny stanu Step Functions, a następnie seryjnej orkiestracji kroków. Innym podejściem jest połączenie maszyn stanów razem i rozpoczęcie ogólnego przebiegu Most zdarzeń Amazona regułę, którą można skonfigurować do uruchamiania ze zdarzenia lub zaplanowanego zadania — na przykład o 9:00 GMT-8 w każdą niedzielę wieczorem.

Wnioski

Z największym doświadczeniem; najbardziej niezawodna, skalowalna i bezpieczna chmura; i najbardziej kompleksowy zestaw usług i rozwiązań, AWS to najlepsze miejsce do uwolnienia wartości z Twoich danych i przekształcenia ich w wgląd. W tym poście pokazaliśmy, jak utworzyć zautomatyzowany przepływ pracy prognozowania szeregów czasowych. Lepsze prognozowanie może prowadzić do lepszych wyników obsługi klienta, mniejszej ilości odpadów, mniej nieużywanych zapasów i większej ilości gotówki w bilansie.

Jeśli chcesz zautomatyzować i ulepszyć prognozowanie, jesteśmy tutaj, aby wesprzeć Cię w Twojej podróży. Skontaktuj się z zespołem ds. kont AWS lub Snowflake, aby rozpocząć już dziś, i poproś o warsztaty prognostyczne, aby zobaczyć, jaką wartość możesz odblokować ze swoich danych.


O autorach

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Bosko Albuquerque jest starszym architektem rozwiązań partnerskich w AWS i ma ponad 20-letnie doświadczenie w pracy z bazami danych i produktami analitycznymi od dostawców baz danych dla przedsiębiorstw i dostawców chmury. Pomagał firmom technologicznym w projektowaniu i wdrażaniu rozwiązań i produktów do analizy danych.

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Franka Dallezotte'a jest starszym architektem rozwiązań w AWS i pasjonuje się współpracą z niezależnymi dostawcami oprogramowania w celu projektowania i tworzenia skalowalnych aplikacji na AWS. Ma doświadczenie w tworzeniu oprogramowania, wdrażaniu lejków budowania i wdrażaniu tych rozwiązań w chmurze.

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Andriesa Engelbrechta jest głównym architektem rozwiązań dla partnerów w firmie Snowflake i współpracuje ze strategicznymi partnerami. Aktywnie współpracuje z partnerami strategicznymi, takimi jak AWS, wspierając integrację produktów i usług, a także tworzenie wspólnych rozwiązań z partnerami. Andries ma ponad 20-letnie doświadczenie w dziedzinie danych i analityki.

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Karol Śmiech jest głównym architektem rozwiązań AI/ML i pracuje w zespole Time Series ML w AWS. Pomaga kształtować mapę drogową usługi Amazon Forecast i codziennie współpracuje z różnymi klientami AWS, aby pomóc w transformacji ich firm przy użyciu najnowocześniejszych technologii AWS i przywództwa myślowego. Charles posiada tytuł magistra zarządzania łańcuchem dostaw i spędził ostatnią dekadę pracując w branży towarów konsumpcyjnych.

Zautomatyzuj prognozowanie szeregów czasowych w Snowflake, korzystając z Amazon Forecast PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jakub Słońce jest starszym architektem rozwiązań dla partnerów w firmie Snowflake. James ma ponad 20-letnie doświadczenie w zakresie przechowywania i analizy danych. Przed Snowflake piastował kilka wyższych stanowisk technicznych w AWS i MapR. James jest doktorem Uniwersytetu Stanforda.

Znak czasu:

Więcej z Uczenie maszynowe AWS