제퍼넷 로고

Amazon Forecast를 사용하여 Snowflake에서 시계열 예측 자동화

시간

이 게시물은 Snowflake, Inc.의 Andries Engelbrecht 및 James Sun과의 공동 공동 작업입니다.

클라우드 컴퓨팅 혁명을 통해 기업은 용량 계획이나 데이터 보존 제약 없이 기업 및 조직 데이터를 캡처하고 유지할 수 있습니다. 이제 다양하고 방대한 종단 데이터 보유로 인해 기업은 장단기 계획 결정을 내릴 때 디지털 자산을 사용하여 더 나은 정보에 입각한 결정을 내리는 새롭고 효과적인 방법을 점점 더 많이 찾을 수 있게 되었습니다. 시계열 예측은 기업이 최적의 수익성이라는 종종 상충되는 목표와 고객 서비스 수준의 균형을 유지하는 데 도움이 되는 수술 계획 결정을 내릴 수 있게 해주는 독특하고 필수적인 과학입니다.

AWS에서는 때때로 기술 파트너를 선택한 고객과 협력합니다. 눈송이 클라우드 데이터 플랫폼 경험을 제공합니다. 수년간의 과거 데이터를 회상할 수 있는 플랫폼을 갖는 것은 강력합니다. 하지만 어떻게 이 데이터를 사용하여 미래를 내다보고 어제의 증거를 사용하여 내일을 계획할 수 있습니까? Snowflake(단일 버전의 진실)에서 발생한 일을 사용할 수 있을 뿐만 아니라 앞으로 며칠, 몇 주 또는 몇 달에 대한 확률적 예측을 제공하는 비 사일로 데이터 세트가 있다고 상상해 보십시오.

협력적 공급망에서 파트너 간의 정보 공유는 성과를 개선하고 경쟁력을 높이며 낭비되는 자원을 줄일 수 있습니다. 미래 예측을 공유하면 다음과 같이 촉진될 수 있습니다. 눈송이 데이터 공유, 이를 통해 비즈니스 파트너와 원활하게 원활하게 협업하고 비즈니스 통찰력을 식별할 수 있습니다. 많은 파트너가 예측을 공유하면 연결된 공급망에서 채찍 효과를 제어하는 ​​데 도움이 될 수 있습니다. 효과적으로 사용할 수 있습니다 눈송이 시장 에서 생성된 데이터세트에서 예측 분석으로 수익을 창출하기 위해 아마존 예측.

이 게시물에서는 Snowflake 및 Forecast를 사용하여 자동화된 시계열 예측 솔루션을 구현하는 방법에 대해 설명합니다.

이 솔루션을 가능하게 하는 필수 AWS 서비스

Forecast는 몇 가지 최신 시계열 알고리즘을 제공하고 거의 모든 워크로드의 요구 사항을 충족할 수 있도록 충분한 분산 컴퓨팅 용량 할당을 관리합니다. Forecast를 사용하면 하나의 모델을 얻을 수 없습니다. 세트의 각 시계열에 대해 고유하게 가중치가 부여된 모델로 더욱 최적화된 많은 모델의 장점을 얻을 수 있습니다. 간단히 말해서 이 서비스는 모든 과학, 데이터 처리 및 리소스 관리를 간단한 API 호출로 제공합니다.

AWS 단계 함수 전체 워크플로를 관리하는 프로세스 오케스트레이션 메커니즘을 제공합니다. 서비스는 다음으로 API 호출을 캡슐화합니다. 아마존 아테나, AWS 람다및 Forecast를 사용하여 Snowflake에서 데이터를 수집하고 Forecast를 사용하여 과거 데이터를 미래 예측으로 변환한 다음 Snowflake 내부에 데이터를 생성하는 자동화된 솔루션을 만듭니다.

Athena 연합 쿼리는 다음을 포함한 여러 엔터프라이즈 데이터 소스에 연결할 수 있습니다. 아마존 DynamoDB, 아마존 레드 시프트, 아마존 오픈서치 서비스, MySQL, PostgreSQL, Redis 및 Snowflake와 같은 기타 널리 사용되는 타사 데이터 저장소. 데이터 커넥터는 Lambda 함수로 실행됩니다. 이 소스 코드를 사용하여 시작하는 데 도움이 될 수 있습니다. Amazon Athena Lambda Snowflake 커넥터 와 연결 AWS 프라이빗링크 또는 NAT 게이트웨이를 통해.

솔루션 개요

AWS에서 자주 하는 일 중 하나는 고객이 목표를 실현할 수 있도록 돕는 동시에 획일적인 무거운 짐을 덜어주는 것입니다. 이를 염두에 두고 다음과 같이 제안한다. 해결책 AWS 및 Snowflake 고객이 다음 단계를 수행할 수 있도록 지원합니다.

  1. Snowflake에서 데이터를 내보냅니다. 유연한 메타데이터를 사용하여 바로 사용할 수 있는 워크플로에 따라 필요한 기록 데이터를 언로드할 수 있습니다.
  2. 데이터를 Forecast로 가져옵니다. 사용 사례, 산업 또는 규모에 관계없이 준비된 데이터 입력을 쉽고 자동화할 수 있습니다.
  3. 최신 시계열 모델을 훈련시킵니다. 기본 데이터 과학 또는 하드웨어 프로비저닝을 관리하지 않고 시계열 예측을 자동화할 수 있습니다.
  4. 훈련된 모델에 대한 추론을 생성합니다. 예측 생성된 출력은 어떤 목적으로든 쉽게 사용할 수 있습니다. 에서 간단한 CSV 또는 Parquet 파일로 사용할 수 있습니다. 아마존 단순 스토리지 서비스 (아마존 S3).
  5. Snowflake에서 직접 역사와 미래 예측을 나란히 사용하십시오.

다음 다이어그램은 Snowflake 고객이 AWS 관리형 서비스인 Forecast에서 지원하는 매우 정확한 시계열 예측의 이점을 누릴 수 있도록 하는 자동화된 워크플로를 구현하는 방법을 보여줍니다. 사용 사례와 산업을 초월하여 여기에서 제공되는 디자인은 먼저 Snowflake에서 과거 데이터를 추출합니다. 다음으로 워크플로는 시계열 계산을 위해 준비된 데이터를 제출합니다. 마지막으로, 미래 기간 예측은 Snowflake에서 기본적으로 제공되어 AWS와 Snowflake 공동 고객에게 원활한 사용자 경험을 제공합니다.

이 아키텍처는 주요 기술 세부 사항만 강조 표시하지만 솔루션은 간단하게 조합할 수 있으며 때로는 영업일 기준 1-2일 이내에 완료됩니다. 우리는 앞서 시작하지 않고 단독으로 솔루션을 생성하는 차별화되지 않은 무거운 작업을 제거하는 데 도움이 되는 작업 샘플 코드를 제공합니다. 하나의 워크로드에 대해 이 패턴을 구현하는 방법을 찾은 후 Snowflake에 보관된 모든 데이터에 대해 예측 프로세스를 반복할 수 있습니다. 다음 섹션에서는 자동화된 파이프라인을 구축할 수 있는 주요 단계를 간략하게 설명합니다.

Snowflake에서 과거 데이터 추출

이 첫 번째 단계에서는 SQL을 사용하여 예측할 데이터를 정의하고 Athena 연합 쿼리가 Snowflake에 연결하도록 하고 사용자 지정 SQL을 실행하고 결과 레코드 세트를 Amazon S3에 유지합니다. 예측을 위해서는 수집 전에 Amazon S3에서 과거 훈련 데이터를 사용할 수 있어야 합니다. 따라서 Amazon S3는 Snowflake와 Forecast 간의 중간 스토리지 버퍼 역할을 합니다. 이 설계에서 Athena를 사용하여 Snowflake 및 기타 이기종 데이터 소스를 사용할 수 있습니다. 원하는 경우 Snowflake COPY 명령과 스토리지 통합을 사용하여 쿼리 결과를 Amazon S3에 쓰는 또 다른 접근 방식이 있습니다.

사용된 전송 메커니즘에 관계없이 이제 Forecast 요구 사항과 데이터가 정의, 준비 및 추출되는 방법을 간략하게 설명합니다. 다음 섹션에서는 데이터를 Forecast로 가져오는 방법을 설명합니다.

다음 스크린샷은 데이터 세트가 기본 Snowflake 스키마에서 어떻게 보일지 보여줍니다.

이 스크린샷은 데이터가 자연 상태에서 어떻게 보이는지 보여주지만 Forecast에서는 데이터가 세 가지 다른 데이터 세트로 형성되어야 합니다.

  • 대상 시계열 – 목표 변수를 포함하는 필수 데이터 세트로 미래 값을 학습하고 예측하는 데 사용됩니다. 단독으로 이 데이터 세트는 일변량 시계열 모델 역할을 합니다.
  • 관련 시계열 – 대상 변수와 관계가 있어야 하는 시간 변수가 포함된 선택적 데이터 집합입니다. 예를 들어 가변 가격 책정, 판촉 활동, 지역 중심 이벤트 트래픽, 경제 전망 데이터 등 목표 시계열의 변동을 설명하고 더 나은 예측을 생성하는 데 도움이 될 수 있다고 생각하는 모든 것이 있습니다. 관련 시계열 데이터 세트는 단변량 모델을 다변량으로 변환하여 정확도를 향상시킵니다.
  • 항목 메타데이터 – 예측 항목에 대한 범주형 데이터가 포함된 선택적 데이터 집합입니다. 항목 메타데이터는 종종 새로 출시된 제품의 성능을 높이는 데 도움이 됩니다. 콜드 스타트.

각 Forecast 데이터 세트의 범위가 정의되면 Snowflake에서 적절한 필터를 사용하여 필요한 소스 테이블에서 올바른 데이터 필드를 소싱하는 쿼리를 작성하여 원하는 데이터 하위 세트를 얻을 수 있습니다. 다음은 특정 식품 수요 계획 시나리오에 대해 Forecast가 필요로 하는 각 데이터 세트를 생성하는 데 사용되는 세 가지 예제 SQL 쿼리입니다.

대상 시계열 쿼리로 시작합니다.

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

소스 쿼리가 정의되면 Athena 연합 쿼리를 통해 Snowflake에 연결하여 쿼리를 제출하고 예측용으로 결과 데이터 세트를 유지할 수 있습니다. 자세한 내용은 Athena 연합 쿼리를 사용하여 Snowflake를 쿼리하고 Amazon S3 데이터 레이크의 데이터와 조인.

XNUMXD덴탈의 Athena Snowflake 커넥터 GitHub 리포지토리 Snowflake 커넥터를 설치하는 데 도움이 됩니다. 그만큼 MLOps GitHub 리포지토리 예측 이 게시물에 정의된 모든 매크로 단계를 조정하고 코드를 작성하지 않고도 반복 가능하게 만듭니다.

Forecast로 데이터 가져오기

이전 단계를 완료하면 대상 시계열 데이터 세트가 Amazon S3에 있고 Forecast로 가져올 준비가 됩니다. 또한 선택적 관련 시계열 및 항목 메타데이터 데이터 세트도 준비되어 수집 준비가 될 수 있습니다. 제공된 MLOps 솔루션 예측, 여기서 해야 할 일은 데이터 가져오기를 담당하는 Step Functions 상태 머신을 시작하는 것뿐이므로 코드가 필요하지 않습니다. Forecast는 제공한 각 데이터 세트에 대한 클러스터를 시작하고 서비스에서 ML 모델 구축 및 모델 추론에 사용할 데이터를 준비합니다.

정확도 통계로 시계열 ML 모델 만들기

데이터를 가져온 후 API를 호출하는 것만으로 매우 정확한 시계열 모델이 생성됩니다. 이 단계는 예측 API를 시작하여 모델 교육을 시작하는 Step Functions 상태 머신 내부에 캡슐화되어 있습니다. 예측기 모델이 훈련된 후 상태 머신은 백테스트 기간 동안 모델 통계 및 예측을 Amazon S3로 내보냅니다. 백테스트 내보내기는 다음 스크린샷과 같이 Snowflake에서 외부 단계로 쿼리할 수 있습니다. 원하는 경우 내부 단계에 데이터를 저장할 수 있습니다. 요점은 백테스트 메트릭을 사용하여 제공된 데이터 세트에서 시계열의 성능 확산을 평가하는 것입니다.

미래 예측 만들기

이전 단계에서 훈련된 모델을 사용하여 특수 제작된 Step Functions 상태 머신은 Forecast API를 호출하여 미래 날짜 예측을 생성합니다. Forecast는 추론을 수행하도록 클러스터를 프로비저닝하고 이전 단계에서 생성된 명명된 예측 모델을 통해 가져온 대상 시계열, 관련 시계열 및 항목 메타데이터 데이터 세트를 가져옵니다. 예측이 생성된 후 상태 시스템은 이를 Amazon S3에 기록합니다. 여기서 다시 한 번 Snowflake 외부 단계로 쿼리하거나 내부 단계로 Snowflake로 이동할 수 있습니다.

Snowflake에서 직접 미래 날짜 예측 데이터 사용

AWS는 이 단계를 위해 완전히 자동화된 솔루션을 구축하지 않았습니다. 그러나 이 게시물의 솔루션으로 데이터는 이전 두 단계에서 Forecast에 의해 이미 생성되었습니다. 출력을 실행 가능한 이벤트로 처리하거나 데이터에 대한 비즈니스 인텔리전스 대시보드를 구축할 수 있습니다. 또한 데이터를 사용하여 미래 제조 계획 및 구매 주문을 생성하고, 미래 수익을 추정하고, 인력 자원 계획을 구축하는 등의 작업을 수행할 수 있습니다. 모든 사용 사례는 다르지만 이 단계의 요점은 예측을 조직 또는 그 외의 올바른 소비 시스템에 전달하는 것입니다.

다음 코드 조각은 Snowflake 내에서 직접 Amazon S3 데이터를 쿼리하는 방법을 보여줍니다.

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: Amazon S3에 액세스하도록 Snowflake 스토리지 통합 구성. 또한 다음을 사용할 수 있습니다. AWS 서비스 카탈로그 Amazon S3 스토리지 통합 구성 더 많은 정보는 GitHub 레포.

일정 기반 또는 이벤트 기반 워크플로 시작

특정 워크로드에 대한 솔루션을 설치한 후 마지막 단계는 매일 또는 매주와 같이 고유한 요구 사항에 맞는 일정에 따라 프로세스를 자동화하는 것입니다. 가장 중요한 것은 프로세스를 시작하는 방법을 결정하는 것입니다. 한 가지 방법은 Snowflake를 사용하여 Step Functions 상태 시스템을 호출한 다음 단계를 순차적으로 조정하는 것입니다. 또 다른 접근 방식은 상태 머신을 함께 연결하고 전체 실행을 시작하는 것입니다. 아마존 이벤트 브리지 이벤트 또는 예약된 작업에서 실행하도록 구성할 수 있는 규칙(예: 매주 일요일 밤 GMT-9 오후 00시).

결론

가장 많은 경험을 가지고 있습니다. 가장 안정적이고 확장 가능하며 안전한 클라우드 가장 포괄적인 서비스 및 솔루션 세트인 AWS는 데이터에서 가치를 창출하고 이를 통찰력으로 전환할 수 있는 최고의 장소입니다. 이 게시물에서는 자동화된 시계열 예측 워크플로를 만드는 방법을 보여주었습니다. 더 나은 예측은 더 높은 고객 서비스 결과, 더 적은 낭비, 더 적은 유휴 재고 및 대차 대조표에 더 많은 현금으로 이어질 수 있습니다.

예측을 자동화하고 개선할 준비가 되었다면 저희가 여러분의 여정을 도와드리겠습니다. 지금 시작하려면 AWS 또는 Snowflake 계정 팀에 문의하고 데이터에서 어떤 종류의 가치를 얻을 수 있는지 알아보기 위해 예측 워크숍을 요청하십시오.


저자에 관하여

보스코 앨버 커키 AWS의 선임 파트너 솔루션 아키텍트이며 엔터프라이즈 데이터베이스 공급업체 및 클라우드 제공업체의 데이터베이스 및 분석 제품에 대한 작업 경험이 20년 이상 있습니다. 그는 기술 회사가 데이터 분석 솔루션 및 제품을 설계하고 구현하도록 도왔습니다.

프랭크 달레조트 AWS의 선임 솔루션 아키텍트이며 AWS에서 확장 가능한 애플리케이션을 설계 및 구축하기 위해 독립 소프트웨어 공급업체와 협력하는 데 열정적입니다. 그는 소프트웨어를 만들고, 빌드 파이프라인을 구현하고, 클라우드에 이러한 솔루션을 배포한 경험이 있습니다.

안드리스 엥겔브레히트 Snowflake의 수석 파트너 솔루션 설계자이며 전략적 파트너와 협력하고 있습니다. 그는 AWS와 같은 전략적 파트너와 적극적으로 협력하여 제품 및 서비스 통합을 지원하고 파트너와 공동 솔루션을 개발하고 있습니다. Andries는 데이터 및 분석 분야에서 20년 이상의 경험을 가지고 있습니다.

찰스 라플린 수석 AI/ML 전문가 솔루션 설계자이며 AWS의 시계열 ML 팀에서 일하고 있습니다. 그는 Amazon Forecast 서비스 로드맵을 형성하고 다양한 AWS 고객과 매일 협력하여 최첨단 AWS 기술과 사고 방식을 사용하여 비즈니스를 혁신하도록 돕습니다. Charles는 공급망 관리에서 석사 학위를 취득했으며 지난 XNUMX년 동안 소비재 산업에서 일했습니다.

제임스 선 Snowflake의 수석 파트너 솔루션 설계자입니다. James는 스토리지 및 데이터 분석 분야에서 20년 이상의 경험을 가지고 있습니다. Snowflake에 합류하기 전에는 AWS 및 MapR에서 여러 고위 기술 직책을 역임했습니다. James는 Stanford University에서 박사 학위를 받았습니다.

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?