هوش داده های تولیدی

پیش بینی سری زمانی خود را در Snowflake با استفاده از Amazon Forecast به صورت خودکار انجام دهید

تاریخ:

این پست یک همکاری مشترک با آندریس انگلبرشت و جیمز سان از Snowflake, Inc است.

انقلاب رایانش ابری به کسب و کارها این امکان را داده است که داده های شرکتی و سازمانی را بدون برنامه ریزی ظرفیت یا محدودیت های حفظ داده ها ضبط و حفظ کنند. اکنون، با ذخایر متنوع و گسترده داده‌های طولی، شرکت‌ها به طور فزاینده‌ای می‌توانند راه‌های جدید و تاثیرگذاری برای استفاده از دارایی‌های دیجیتال خود برای تصمیم‌گیری بهتر و آگاهانه هنگام تصمیم‌گیری‌های برنامه‌ریزی کوتاه‌مدت و بلندمدت پیدا کنند. پیش‌بینی سری‌های زمانی یک علم منحصر به فرد و ضروری است که به شرکت‌ها اجازه می‌دهد تا تصمیمات برنامه‌ریزی جراحی را اتخاذ کنند تا به تعادل سطوح خدمات مشتری در برابر اهداف اغلب رقابتی سودآوری بهینه کمک کنند.

در AWS، ما گاهی اوقات با مشتریانی کار می کنیم که شریک فناوری ما را انتخاب کرده اند دانه برف برای ارائه یک تجربه پلت فرم داده ابری. داشتن پلتفرمی که بتواند سال‌ها و سال‌ها داده‌های تاریخی را به خاطر بیاورد، قدرتمند است – اما چگونه می‌توانید از این داده‌ها برای نگاه کردن به آینده و استفاده از شواهد دیروز برای برنامه‌ریزی برای فردا استفاده کنید؟ تصور کنید که نه تنها آنچه اتفاق افتاده است در Snowflake - نسخه واحد شما از حقیقت - در دسترس است، بلکه مجموعه‌ای از داده‌های غیرسیلویی مجاور را نیز در دسترس داشته باشید که یک پیش‌بینی احتمالی برای روزها، هفته‌ها یا ماه‌ها در آینده ارائه می‌دهد.

در یک زنجیره تامین مشترک، به اشتراک گذاری اطلاعات بین شرکا می تواند عملکرد را بهبود بخشد، رقابت را افزایش دهد و منابع هدر رفته را کاهش دهد. به اشتراک گذاری پیش بینی های آینده خود را می توان با تسهیل کرد به اشتراک گذاری داده های دانه برف، که به شما امکان می دهد به طور ایمن با شرکای تجاری خود همکاری کنید و بینش های تجاری را شناسایی کنید. اگر بسیاری از شرکا پیش بینی های خود را به اشتراک بگذارند، می تواند به کنترل اثر شلاق بول در زنجیره تامین متصل کمک کند. شما می توانید به طور موثر استفاده کنید بازار دانه های برف برای کسب درآمد از تجزیه و تحلیل پیش بینی کننده خود از مجموعه داده های تولید شده در پیش بینی آمازون.

در این پست، نحوه پیاده‌سازی راه‌حل پیش‌بینی سری‌های زمانی خودکار با استفاده از Snowflake و Forecast را مورد بحث قرار می‌دهیم.

خدمات ضروری AWS که این راه حل را فعال می کند

Forecast چندین الگوریتم سری زمانی پیشرفته را ارائه می دهد و تخصیص ظرفیت محاسباتی توزیع شده کافی را برای پاسخگویی به نیازهای تقریباً هر حجم کاری مدیریت می کند. با Forecast، شما یک مدل را دریافت نمی کنید. شما قدرت بسیاری از مدل ها را به دست می آورید که بیشتر به یک مدل وزنی منحصر به فرد برای هر سری زمانی در مجموعه بهینه می شوند. به طور خلاصه، این سرویس تمام علم، مدیریت داده ها و مدیریت منابع را در یک تماس ساده API ارائه می دهد.

توابع مرحله AWS مکانیزم ارکستراسیون فرآیند را فراهم می کند که گردش کار کلی را مدیریت می کند. این سرویس تماس های API را با کپسوله بندی می کند آمازون آتنا, AWS لامبداو Forecast برای ایجاد یک راه حل خودکار که داده ها را از Snowflake جمع آوری می کند، از Forecast برای تبدیل داده های تاریخی به پیش بینی های آینده استفاده می کند و سپس داده ها را در Snowflake ایجاد می کند.

پرس و جوهای فدرال آتنا می توانند به چندین منبع داده سازمانی از جمله متصل شوند آمازون DynamoDB, آمازون Redshift, سرویس جستجوی باز آمازون، MySQL، PostgreSQL، Redis، و دیگر فروشگاه های داده محبوب شخص ثالث، مانند Snowflake. اتصال دهنده های داده به عنوان توابع Lambda اجرا می شوند—شما می توانید از این کد منبع برای کمک به راه اندازی استفاده کنید رابط دانه برف آمازون آتنا لامبدا و ارتباط با AWS PrivateLink یا از طریق NAT Gateway.

بررسی اجمالی راه حل

یکی از کارهایی که ما اغلب در AWS انجام می‌دهیم این است که به مشتریان کمک کنیم تا اهداف خود را محقق کنند و در عین حال بار سنگین بلند کردن متمایز نشده را از بین ببریم. با در نظر گرفتن این موضوع موارد زیر را پیشنهاد می کنیم راه حل برای کمک به مشتریان AWS و Snowflake مراحل زیر را انجام دهید:

  1. داده ها را از Snowflake صادر کنید. می‌توانید از ابرداده‌های انعطاف‌پذیر برای تخلیه داده‌های تاریخی لازم که توسط یک گردش کار آماده حرکت هدایت می‌شوند، استفاده کنید.
  2. وارد کردن داده ها به Forecast صرف نظر از کاربرد، صنعت یا مقیاس، وارد کردن ورودی های داده آماده آسان و خودکار است.
  3. یک مدل سری زمانی پیشرفته را آموزش دهید. می‌توانید پیش‌بینی سری‌های زمانی را بدون مدیریت علم داده یا تأمین سخت‌افزار به‌طور خودکار انجام دهید.
  4. استنتاج در برابر مدل آموزش دیده ایجاد کنید. خروجی های پیش بینی شده برای هر منظوری قابل مصرف هستند. آنها به صورت فایل های CSV یا پارکت ساده در دسترس هستند سرویس ذخیره سازی ساده آمازون (Amazon S3).
  5. از تاریخچه و پیش بینی های آینده به طور مستقیم در Snowflake استفاده کنید.

نمودار زیر نحوه پیاده‌سازی یک گردش کار خودکار را نشان می‌دهد که مشتریان Snowflake را قادر می‌سازد از پیش‌بینی‌های سری زمانی بسیار دقیقی که توسط Forecast، یک سرویس مدیریت‌شده AWS پشتیبانی می‌شود، بهره‌مند شوند. طرح ارائه شده در اینجا، فراتر از موارد استفاده و صنعت، ابتدا داده های تاریخی را از Snowflake استخراج می کند. در مرحله بعد، گردش کار داده های آماده شده را برای محاسبات سری زمانی ارسال می کند. در نهایت، پیش‌بینی‌های دوره آینده به‌طور بومی در Snowflake در دسترس هستند و تجربه کاربری یکپارچه را برای مشتریان مشترک AWS و Snowflake ایجاد می‌کنند.

اگرچه این معماری فقط جزئیات فنی کلیدی را برجسته می کند، راه حل ساده است که گاهی در عرض 1 تا 2 روز کاری جمع آوری می شود. ما کد نمونه کارآمدی را در اختیار شما قرار می دهیم تا به حذف وزنه های متمایز نشده ناشی از ایجاد محلول به تنهایی و بدون شروع اولیه کمک کنیم. پس از اینکه نحوه اجرای این الگو را برای یک بار کاری کشف کردید، می توانید فرآیند پیش بینی را برای هر داده ای که در Snowflake نگهداری می شود تکرار کنید. در بخش‌های بعدی، مراحل کلیدی را که به شما امکان می‌دهد یک خط لوله خودکار بسازید را بیان می‌کنیم.

استخراج داده های تاریخی از Snowflake

در این مرحله اول، شما از SQL برای تعریف داده‌هایی که می‌خواهید پیش‌بینی شوند استفاده می‌کنید و اجازه می‌دهید که یک پرس‌وجوی فدرال آتن به Snowflake متصل شود، SQL سفارشی‌شده شما را اجرا کند و رکورد حاصل در آمازون S3 را حفظ کند. پیش‌بینی نیاز دارد که داده‌های آموزشی تاریخی قبل از مصرف در Amazon S3 در دسترس باشد. بنابراین، Amazon S3 به عنوان یک بافر ذخیره سازی میانی بین Snowflake و Forecast عمل می کند. ما آتنا را در این طراحی برای فعال کردن Snowflake و دیگر منابع داده ناهمگن استفاده می کنیم. اگر ترجیح می دهید، رویکرد دیگر استفاده از دستور Snowflake COPY و یکپارچه سازی فضای ذخیره سازی برای نوشتن نتایج پرس و جو در Amazon S3 است.

صرف نظر از مکانیسم انتقال استفاده شده، ما اکنون نوع نیازهای پیش بینی داده و نحوه تعریف، تهیه و استخراج داده ها را بیان می کنیم. در بخش زیر، نحوه وارد کردن داده ها به Forecast را شرح می دهیم.

اسکرین شات زیر نشان می دهد که مجموعه ای از داده ها ممکن است در طرح اصلی Snowflake چگونه به نظر برسند.

اگرچه این اسکرین شات نشان می‌دهد که داده‌ها در حالت طبیعی خود چگونه به نظر می‌رسند، اما Forecast به داده‌ها نیاز دارد که به سه مجموعه داده مختلف تبدیل شوند:

  • سری زمانی هدف - این یک مجموعه داده مورد نیاز است که حاوی متغیر هدف است و برای آموزش و پیش‌بینی مقدار آینده استفاده می‌شود. این مجموعه داده به تنهایی به عنوان یک مدل سری زمانی تک متغیره عمل می کند.
  • سری های زمانی مرتبط – این یک مجموعه داده اختیاری است که شامل متغیرهای زمانی است که باید با متغیر هدف رابطه داشته باشند. مثال‌ها عبارتند از قیمت‌گذاری متغیر، تلاش‌های تبلیغاتی، ترافیک رویدادهای فرامحلی، داده‌های چشم‌انداز اقتصادی - هر چیزی که احساس می‌کنید ممکن است به توضیح واریانس در سری‌های زمانی هدف کمک کند و پیش‌بینی بهتری ایجاد کند. مجموعه داده سری زمانی مرتبط، مدل تک متغیره شما را به چند متغیره تبدیل می کند تا به بهبود دقت کمک کند.
  • فراداده مورد - این یک مجموعه داده اختیاری است که حاوی داده های طبقه بندی شده در مورد مورد پیش بینی شده است. فراداده مورد اغلب به افزایش عملکرد برای محصولات تازه راه اندازی شده کمک می کند، که ما آن را a می نامیم شروع سرد.

با تعریف محدوده هر یک از مجموعه داده های Forecast، می توانید پرس و جوهایی را در Snowflake بنویسید که فیلدهای داده صحیح را از جداول منبع لازم با فیلترهای مناسب برای بدست آوردن زیرمجموعه داده های مورد نظر تهیه کنید. در زیر سه نمونه پرس و جوی SQL مورد استفاده برای تولید هر مجموعه داده ای که Forecast برای یک سناریوی برنامه ریزی تقاضای غذای خاص به آن نیاز دارد، است.

ما با پرس و جو سری زمانی هدف شروع می کنیم:

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

پرس و جو سری زمانی مربوط به اختیاری متغیرهای کمکی مانند قیمت و تبلیغات را می کشد:

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

پرس و جوی فراداده مورد مقادیر مقوله‌ای متمایز را واکشی می‌کند که به بعد دادن و تعریف بیشتر آیتم پیش‌بینی‌شده کمک می‌کند:

select DISTINCT ITEM_ID, FOOD_CATEGORY, FOOD_CUISINE
from DEMO.FOOD_DEMAND

با پرس و جوهای منبع تعریف شده، می توانیم از طریق یک پرس و جو فدرال آتن به Snowflake متصل شویم تا پرس و جوها را ارسال کنیم و مجموعه داده های حاصل را برای استفاده پیش بینی ادامه دهیم. برای اطلاعات بیشتر مراجعه کنید Snowflake را با استفاده از Athena Federated Query جستجو کنید و با داده ها در دریاچه داده آمازون S3 خود بپیوندید.

La آتنا Snowflake Connector مخزن GitHub به نصب کانکتور Snowflake کمک می کند. را پیش بینی انبار MLOps GitHub به هماهنگ کردن تمام مراحل ماکرو تعریف شده در این پست کمک می کند و آنها را بدون نوشتن کد قابل تکرار می کند.

وارد کردن داده ها به Forecast

پس از تکمیل مرحله قبل، مجموعه داده سری زمانی هدف در آمازون S3 است و برای وارد کردن به Forecast آماده است. علاوه بر این، مجموعه‌های داده‌های فراداده‌های سری زمانی و مورد اختیاری مرتبط نیز ممکن است آماده و آماده مصرف شوند. با ارائه شده راه حل MLOps را پیش بینی کنید، تنها کاری که در اینجا باید انجام دهید این است که دستگاه حالت توابع Step را که مسئول وارد کردن داده ها است راه اندازی کنید—هیچ کدی لازم نیست. Forecast برای هر یک از مجموعه داده‌هایی که ارائه کرده‌اید، یک خوشه راه‌اندازی می‌کند و داده‌ها را برای سرویس برای ساخت مدل ML و استنتاج مدل آماده می‌کند.

یک مدل ML سری زمانی با آمار دقت ایجاد کنید

پس از وارد شدن داده ها، مدل های سری زمانی بسیار دقیق به سادگی با فراخوانی یک API ایجاد می شوند. این مرحله در داخل یک ماشین حالت توابع Step قرار داده شده است که Forecast API را برای شروع آموزش مدل آغاز می کند. پس از آموزش مدل پیش‌بینی‌کننده، ماشین دولتی آمار و پیش‌بینی‌های مدل را در طول پنجره بک‌آست به آمازون S3 صادر می‌کند. همانطور که در تصویر زیر نشان داده شده است، صادرات Backtest توسط Snowflake به عنوان یک مرحله خارجی قابل استعلام هستند. اگر ترجیح می دهید، می توانید داده ها را در یک مرحله داخلی ذخیره کنید. نکته این است که از معیارهای پس آزمون برای ارزیابی عملکرد سری های زمانی در مجموعه داده ارائه شده خود استفاده کنید.

پیش بینی های آینده را ایجاد کنید

با مدل آموزش‌دیده از مرحله قبل، یک ماشین حالت توابع مرحله‌ای که به‌منظور ساخته شده است، Forecast API را فراخوانی می‌کند تا پیش‌بینی‌های مربوط به آینده را ایجاد کند. پیش‌بینی خوشه‌ای را برای انجام استنتاج فراهم می‌کند و سری‌های زمانی هدف وارداتی، سری‌های زمانی مرتبط و مجموعه داده‌های فراداده مورد را از طریق یک مدل پیش‌بینی‌کننده نام‌گذاری شده ایجاد شده در مرحله قبل می‌کشد. پس از ایجاد پیش‌بینی‌ها، ماشین حالت آنها را در آمازون S3 می‌نویسد، جایی که یک بار دیگر می‌توان آنها را به عنوان یک مرحله خارجی Snowflake جستجو کرد یا به Snowflake به عنوان یک مرحله داخلی منتقل کرد.

از داده های پیش بینی مربوط به آینده به طور مستقیم در Snowflake استفاده کنید

AWS یک راه حل کاملاً خودکار برای این مرحله ایجاد نکرده است. با این حال، با راه حل در این پست، داده ها قبلا توسط Forecast در دو مرحله قبل تولید شده است. می‌توانید خروجی‌ها را به‌عنوان رویدادهای عملی در نظر بگیرید یا داشبوردهای هوش تجاری را روی داده‌ها بسازید. همچنین می‌توانید از داده‌ها برای ایجاد برنامه‌های تولید آینده و سفارش‌های خرید، تخمین درآمدهای آینده، ساخت برنامه‌های منابع کارکنان و موارد دیگر استفاده کنید. هر مورد استفاده متفاوت است، اما هدف این مرحله ارائه پیش‌بینی‌ها به سیستم‌های مصرف کننده صحیح در سازمان شما یا فراتر از آن است.

قطعه کد زیر نحوه استعلام داده های Amazon S3 را مستقیماً از 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);

برای اطلاعات بیشتر در مورد تنظیم مجوزها، مراجعه کنید گزینه 1: پیکربندی ادغام Snowflake Storage برای دسترسی به Amazon S3. علاوه بر این، می توانید از کاتالوگ خدمات AWS برای پیکربندی ادغام ذخیره سازی Amazon S3. اطلاعات بیشتر در دسترس است GitHub repo.

یک گردش کار مبتنی بر برنامه یا رویداد را آغاز کنید

بعد از اینکه راه حلی را برای حجم کاری خاص خود نصب کردید، گام نهایی شما این است که فرآیند را بر اساس برنامه زمانی که برای نیاز منحصر به فرد شما منطقی است، مانند روزانه یا هفتگی، خودکار کنید. نکته اصلی این است که تصمیم بگیرید چگونه فرآیند را شروع کنید. یک روش استفاده از Snowflake برای فراخوانی ماشین حالت توابع Step و سپس هماهنگ کردن مراحل به صورت سریال است. رویکرد دیگر این است که ماشین‌های حالت زنجیر شده را با هم ببندید و اجرای کلی را از طریق یک شروع کنید پل رویداد آمازون قانون، که می توانید آن را پیکربندی کنید تا از یک رویداد یا کار برنامه ریزی شده اجرا شود - برای مثال، در ساعت 9:00 عصر GMT-8 هر یکشنبه شب.

نتیجه

با بیشترین تجربه؛ قابل اعتمادترین، مقیاس پذیرترین و امن ترین ابر؛ و جامع ترین مجموعه خدمات و راه حل ها، AWS بهترین مکان برای باز کردن ارزش داده های شما و تبدیل آن به بینش است. در این پست، نحوه ایجاد یک گردش کار پیش‌بینی سری زمانی خودکار را به شما نشان دادیم. پیش‌بینی بهتر می‌تواند منجر به نتایج خدمات مشتری بالاتر، ضایعات کمتر، موجودی بی‌کار کمتر و وجه نقد بیشتر در ترازنامه شود.

اگر برای خودکارسازی و بهبود پیش‌بینی آماده هستید، ما اینجا هستیم تا از شما در سفرتان پشتیبانی کنیم. برای شروع امروز با تیم حساب AWS یا Snowflake خود تماس بگیرید و از یک کارگاه پیش بینی بخواهید تا ببینید چه نوع ارزشی را می توانید از داده های خود باز کنید.


درباره نویسنده

بوسکو آلبوکرکی یک معمار راه حل های شریک Sr. در AWS است و بیش از 20 سال تجربه کار با پایگاه داده و محصولات تحلیلی از فروشندگان پایگاه داده سازمانی و ارائه دهندگان ابر دارد. او به شرکت های فناوری در طراحی و پیاده سازی راه حل ها و محصولات تجزیه و تحلیل داده ها کمک کرده است.

فرانک دالزوت یک معمار Sr. Solutions در AWS است و مشتاق کار با فروشندگان مستقل نرم افزار برای طراحی و ساخت برنامه های کاربردی مقیاس پذیر در AWS است. او تجربه ایجاد نرم افزار، پیاده سازی خطوط لوله ساخت و استقرار این راه حل ها را در فضای ابری دارد.

آندریس انگلبرشت یک معمار اصلی شریک راه حل در Snowflake است و با شرکای استراتژیک کار می کند. او به طور فعال با شرکای استراتژیک مانند AWS درگیر است که از ادغام محصول و خدمات و همچنین توسعه راه حل های مشترک با شرکا پشتیبانی می کند. آندریس بیش از 20 سال تجربه در زمینه داده و تجزیه و تحلیل دارد.

چارلز لافلین یک معمار اصلی راه حل های تخصصی AI/ML است و در تیم Time Series ML در AWS کار می کند. او به شکل‌دهی نقشه راه خدمات آمازون Forecast کمک می‌کند و روزانه با مشتریان متنوع AWS همکاری می‌کند تا با استفاده از فناوری‌های پیشرفته AWS و رهبری فکری، کسب‌وکارشان را تغییر دهد. چارلز دارای مدرک کارشناسی ارشد در مدیریت زنجیره تامین است و دهه گذشته را در صنعت کالاهای بسته بندی مصرفی کار کرده است.

جیمز سان یک معمار ارشد راه حل های شریک در Snowflake است. جیمز بیش از 20 سال تجربه در ذخیره سازی و تجزیه و تحلیل داده ها دارد. قبل از Snowflake، او چندین سمت فنی ارشد در AWS و MapR داشت. جیمز دارای مدرک دکترا از دانشگاه استنفورد است.

نقطه_img

جدیدترین اطلاعات

نقطه_img

چت با ما

سلام! چگونه می توانم به شما کمک کنم؟