소매 제품 가격 최적화

1. 소개

최종 업데이트: 2021년 9월 15일

가격 책정 통계 및 최적화를 위해 필요한 데이터는 본질적으로 이질적 (다양한 시스템, 다양한 현지 현실 등)이므로 잘 구조화되고 표준화되고 정리된 CDM 표를 개발하는 것이 중요합니다. 여기에는 거래, 제품, 가격, 고객과 같은 가격 최적화를 위한 주요 속성이 포함됩니다. 이 문서에서는 아래에 설명된 단계를 안내하여 가격 분석을 빠르게 시작할 수 있도록 지원합니다. 가격 분석은 자체 요구사항에 맞게 확장하고 맞춤설정할 수 있습니다. 다음 다이어그램은 이 문서에서 다루는 단계를 간략하게 보여줍니다.

dd8545e0c9156b13.png

  1. 데이터 소스 평가: 먼저 CDM을 만드는 데 사용될 데이터 소스의 인벤토리를 파악해야 합니다. 이 단계에서는 Dataprep을 사용하여 입력 데이터의 문제를 탐색하고 식별합니다. 예를 들어 누락된 값과 불일치 값, 일관성 없는 이름 지정 규칙, 중복, 데이터 무결성 문제, 이상치 등이 있습니다.
  2. 데이터 표준화: 다음으로 이전에 확인된 문제를 수정하여 데이터의 정확성, 무결성, 일관성, 완전성을 보장합니다. 이 프로세스에는 날짜 형식 지정, 값 표준화, 단위 변환, 불필요한 필드 및 값 필터링, 소스 데이터 분할, 조인, 중복 삭제 등 Dataprep의 다양한 변환이 포함될 수 있습니다.
  3. 하나의 구조로 통합: 파이프라인의 다음 단계에서는 각 데이터 소스를 가장 세부적인 수준의 모든 속성이 포함된 BigQuery의 단일 와이드 테이블로 조인합니다. 이 비정규화된 구조를 사용하면 조인이 필요하지 않은 효율적인 분석 쿼리를 실행할 수 있습니다.
  4. 분석 및 ML/AI 제공: 데이터가 정리되고 분석을 위해 형식이 지정되면 분석가는 이전 가격 변경의 영향을 파악하기 위해 이전 데이터를 탐색할 수 있습니다. 또한 BigQuery ML 을 사용하여 향후 매출을 추정하는 예측 모델을 만들 수 있습니다. 이러한 모델의 출력을 Looker 내의 대시보드에 통합하여 비즈니스 사용자가 특정 가격 변경이 있을 때 매출이 어떻게 될지 분석할 수 있는 '가상 시나리오'를 만들 수 있습니다.

다음 다이어그램은 가격 최적화 분석 파이프라인을 빌드하는 데 사용되는 Google Cloud 구성요소를 보여줍니다.

e5d74e43074eedf4.png

빌드할 항목

여기에서는 가격 최적화 데이터 웨어하우스를 설계하고, 시간이 지남에 따라 데이터 준비를 자동화하고, 머신러닝을 사용하여 제품 가격 변경의 영향을 예측하고, 팀에 실행 가능한 통계를 제공하는 보고서를 개발하는 방법을 보여줍니다.

학습할 내용

  • Dataprep을 관계형 데이터베이스, 플랫 파일, Google Sheets 및 기타 지원되는 애플리케이션에 저장할 수 있는 가격 분석용 데이터 소스에 연결하는 방법
  • BigQuery 데이터 웨어하우스에서 CDM 테이블을 만들기 위해 Dataprep 흐름을 빌드하는 방법
  • BigQuery ML을 사용하여 향후 수익을 예측하는 방법
  • Looker에서 보고서를 작성하여 이전 가격 및 판매 추세를 분석하고 향후 가격 변동의 영향을 파악하는 방법

필요한 항목

2. BigQuery에서 CDM 만들기

이 섹션에서는 분석하고 가격 변경을 제안하는 데 필요한 정보의 통합 뷰를 제공하는 공통 데이터 모델 (CDM)을 만듭니다.

  1. BigQuery 콘솔을 엽니다.
  2. 이 참조 패턴을 테스트하는 데 사용할 프로젝트를 선택합니다.
  3. 기존 데이터 세트를 사용하거나 BigQuery 데이터 세트를 만듭니다. 데이터 세트 이름을 Pricing_CDM로 지정합니다.
  4. 테이블 만들기:
create table `CDM_Pricing`
(
  Fiscal_Date DATETIME,
  Product_ID STRING,
  Client_ID INT64,
  Customer_Hierarchy STRING,
  Division STRING,
  Market STRING,
  Channel STRING,
  Customer_code INT64,
  Customer_Long_Description STRING,
  Key_Account_Manager INT64,
  Key_Account_Manager_Description STRING,
  Structure STRING,
  Invoiced_quantity_in_Pieces FLOAT64,
  Gross_Sales FLOAT64,
  Trade_Budget_Costs FLOAT64,
  Cash_Discounts_and_other_Sales_Deductions INT64,
  Net_Sales FLOAT64,
  Variable_Production_Costs_STD FLOAT64,
  Fixed_Production_Costs_STD FLOAT64,
  Other_Cost_of_Sales INT64,
  Standard_Gross_Margin FLOAT64,
  Transportation_STD FLOAT64,
  Warehouse_STD FLOAT64,
  Gross_Margin_After_Logistics FLOAT64,
  List_Price_Converged FLOAT64
);

3. 데이터 소스 평가

이 튜토리얼에서는 Google SheetsBigQuery에 저장된 샘플 데이터 소스를 사용합니다.

  • 각 거래에 대해 하나의 행이 포함된 거래 Google 시트 판매된 각 제품의 수량, 총매출, 관련 비용과 같은 세부정보가 포함되어 있습니다.
  • 특정 고객의 각 월별 제품 가격이 포함된 제품 가격 Google 시트
  • 개별 고객 정보가 포함된 company_descriptions BigQuery 테이블입니다.

이 company_descriptions BigQuery 테이블은 다음 문을 사용하여 만들 수 있습니다.

create table `Company_Descriptions`
(
 Customer_ID INT64,
 Customer_Long_Description STRING
);
insert into `Company_Descriptions` values (15458, 'ENELTEN');
insert into `Company_Descriptions` values (16080, 'NEW DEVICES CORP.');
insert into `Company_Descriptions` values (19913, 'ENELTENGAS');
insert into `Company_Descriptions` values (30108, 'CARTOON NT');
insert into `Company_Descriptions` values (32492, 'Thomas Ed Automobiles');

4. 흐름 빌드

이 단계에서는 샘플 Dataprep 흐름을 가져옵니다. 이 흐름을 사용하여 이전 섹션에 나열된 예시 데이터 세트를 변환하고 통합합니다. 흐름은 파이프라인 또는 데이터세트와 레시피를 결합하여 변환하는 데 사용되는 객체를 나타냅니다.

  1. GitHub에서 가격 최적화 패턴 흐름 패키지를 다운로드합니다. 압축은 해제하지 마세요. 이 파일에는 샘플 데이터를 변환하는 데 사용되는 가격 최적화 설계 패턴 흐름이 포함되어 있습니다.
  2. Dataprep의 왼쪽 탐색 메뉴에서 흐름 아이콘을 클릭합니다. 그런 다음 흐름 뷰의 컨텍스트 메뉴에서 가져오기를 선택합니다. 흐름을 가져온 후 선택하여 확인하고 수정할 수 있습니다.

dd5213e4cf1e313f.png

  1. 흐름의 왼쪽에서 제품 가격과 세 개의 거래 Google 시트가 각각 데이터 세트로 연결되어야 합니다. 이렇게 하려면 Google Sheets 데이터 세트 객체를 마우스 오른쪽 버튼으로 클릭하고 바꾸기를 선택합니다. 그런 다음 Import Datasets(데이터 세트 가져오기) 링크를 클릭합니다. 다음 다이어그램과 같이 '경로 수정' 연필을 클릭합니다.

7e4af3e82955343f.png

현재 값을 거래제품 가격 Google Sheets로 연결되는 링크로 바꿉니다.

Google Sheets에 탭이 여러 개 있는 경우 메뉴에서 사용할 탭을 선택할 수 있습니다. 편집을 클릭하고 데이터 소스로 사용할 탭을 선택한 다음 저장을 클릭하고 가져오기 및 흐름에 추가를 클릭합니다. 모달로 돌아가 바꾸기를 클릭합니다. 이 흐름에서 각 시트는 자체 데이터 세트로 표시되어 나중에 레시피에서 서로 다른 소스를 통합하는 방법을 보여줍니다.

799bce35e0a60e87.png

  1. BigQuery 출력 테이블 정의:

이 단계에서는 Dataoprep 작업을 실행할 때마다 로드할 BigQuery CDM_Pricing 출력 테이블의 위치를 연결합니다.

흐름 뷰에서 스키마 매핑 출력 아이콘을 클릭하고 세부정보 패널에서 대상 탭을 클릭합니다. 여기에서 테스트에 사용되는 '수동 대상' 출력과 전체 흐름을 자동화할 때 사용되는 '예약된 대상' 출력을 모두 수정합니다. 다음 안내를 따르세요.

  1. '수동 대상' 수정 세부정보 패널의 '수동 대상' 섹션에서 수정 버튼을 클릭합니다. 게시 설정 페이지의 게시 작업에서 게시 작업이 이미 있는 경우 수정하고, 그렇지 않은 경우 작업 추가 버튼을 클릭합니다. 여기에서 BigQuery 데이터 세트를 탐색하여 이전 단계에서 만든 Pricing_CDM 데이터 세트로 이동하고 CDM_Pricing 테이블을 선택합니다. 매번 실행 시 이 표에 추가가 선택되어 있는지 확인한 다음 추가를 클릭합니다. 설정 저장을 클릭합니다.
  2. '예약된 도착 페이지' 수정

세부정보 패널의 예약된 대상 섹션에서 수정을 클릭합니다.

설정은 수동 대상에서 상속되므로 변경할 필요가 없습니다. Save Settings(설정 저장)를 클릭합니다.

5. 데이터 표준화

제공된 흐름은 트랜잭션 데이터를 통합하고, 형식을 지정하고, 정리한 다음, 보고를 위해 회사 설명 및 집계된 가격 책정 데이터와 결과를 조인합니다. 여기에서는 아래 이미지에 표시된 흐름의 구성요소를 살펴봅니다.

a033de41c68acc8b.png

6. 거래 데이터 레시피 살펴보기

먼저 트랜잭션 데이터를 준비하는 데 사용되는 트랜잭션 데이터 레시피 내에서 발생하는 작업을 살펴봅니다. 흐름 뷰에서 트랜잭션 데이터 객체를 클릭하고 세부정보 패널에서 레시피 수정 버튼을 클릭합니다.

변환기 페이지가 열리고 세부정보 패널에 레시피가 표시됩니다. 레시피에는 데이터에 적용되는 모든 변환 단계가 포함됩니다. 각 단계 사이를 클릭하여 레시피 내에서 이동하고 레시피의 이 특정 위치에 있는 데이터의 상태를 확인할 수 있습니다.

각 레시피 단계의 더보기 메뉴를 클릭하고 선택한 항목으로 이동 또는 수정하여 변환이 어떻게 작동하는지 살펴볼 수도 있습니다.

  1. Union Transactions: 트랜잭션 데이터 레시피의 첫 번째 단계는 각 월을 나타내는 서로 다른 시트에 저장된 트랜잭션을 union하는 것입니다.
  2. 고객 설명 표준화: 레시피의 다음 단계에서는 고객 설명을 표준화합니다. 고객 이름이 약간의 변경사항이 있어 유사할 수 있으므로 하나의 이름으로 정규화하려고 합니다. 이 레시피에서는 두 가지 잠재적 접근 방식을 보여줍니다. 첫째, 공통된 문자가 있는 값이 함께 클러스터링되는 '유사한 문자열' 또는 소리가 비슷한 값이 함께 클러스터링되는 '발음'과 같은 다양한 표준화 옵션으로 구성할 수 있는 표준화 알고리즘을 활용합니다. 또는 회사 ID를 사용하여 위에서 참조한 BigQuery 테이블에서 회사 설명을 조회할 수 있습니다.

레시피를 더 자세히 탐색하여 데이터를 정리하고 형식화하는 데 적용되는 다양한 기법을 알아볼 수 있습니다. 행 삭제, 패턴 기반 형식 지정, 조회로 데이터 보강, 누락된 값 처리, 원치 않는 문자 바꾸기 등이 있습니다.

7. 제품 가격 책정 데이터 레시피 살펴보기

다음으로 준비된 거래 데이터를 집계된 가격 데이터에 조인하는 제품 가격 데이터 레시피에서 어떤 일이 일어나는지 살펴봅니다.

페이지 상단의 가격 최적화 디자인 패턴을 클릭하여 변환기 페이지를 닫고 흐름 보기로 돌아갑니다. 여기에서 'Product Pricing Data'(제품 가격 데이터) 객체를 클릭하고 레시피를 수정합니다.

  1. 월별 가격 열의 피벗 해제: 2단계와 3단계 사이의 레시피를 클릭하여 피벗 해제 단계 전의 데이터 모양을 확인합니다. 데이터에는 각 월(Jan Fev Mar)의 거래 값이 별도의 열에 포함되어 있습니다. 이는 SQL에서 집계(예: 합계, 평균 거래) 계산을 적용하는 데 편리한 형식이 아닙니다. 각 열이 BigQuery 테이블의 행이 되도록 데이터를 언피벗해야 합니다. 이 레시피는 unpivot 함수를 활용하여 3개의 열을 각 월의 하나의 행으로 변환하므로 그룹 계산을 더 쉽게 적용할 수 있습니다.
  2. 고객, 제품, 날짜별 평균 거래 금액 계산: 각 고객, 제품, 날짜의 평균 거래 금액을 계산하려고 합니다. 집계 함수를 사용하여 새 테이블을 생성할 수 있습니다('새 테이블로 그룹화' 옵션). 이 경우 데이터가 그룹 수준에서 집계되므로 각 개별 거래의 세부정보가 손실됩니다. 또는 세부정보와 집계된 값을 동일한 데이터 세트에 유지할 수도 있습니다('새 열로 그룹화' 옵션). 이렇게 하면 비율(예: 전체 수익에서 제품 카테고리가 차지하는 비율)을 적용하는 것이 매우 편리해집니다. 레시피 7단계를 수정하고 '새 테이블로 그룹화' 또는 '새 열로 그룹화' 옵션을 선택하여 차이점을 확인할 수 있습니다.
  3. 가격 책정 날짜 조인: 마지막으로 조인을 사용하여 여러 데이터 세트를 더 큰 데이터 세트로 결합하고 초기 데이터 세트에 열을 추가합니다. 이 단계에서는 'Pricing Data.Product Code' = Transaction Data.SKU' 및 'Pricing Data.Price Date' = 'Transaction Data.Fiscal Date'를 기준으로 가격 데이터가 트랜잭션 데이터 레시피의 출력과 결합됩니다.

Dataprep으로 적용할 수 있는 변환에 대해 자세히 알아보려면 Trifacta 데이터 랭글링 치트 시트를 참고하세요.

8. 스키마 매핑 레시피 살펴보기

마지막 레시피인 스키마 매핑을 사용하면 결과 CDM 테이블이 기존 BigQuery 출력 테이블의 스키마와 일치합니다. 여기에서는 Rapid Target 기능을 사용하여 퍼지 매칭을 통해 두 스키마를 비교하고 자동 변경사항을 적용하여 BigQuery 테이블과 일치하도록 데이터 구조를 다시 포맷합니다.

9. 하나의 구조로 통합

이제 소스와 대상이 구성되었고 흐름의 단계를 살펴봤으므로 흐름을 실행하여 CDM 테이블을 변환하고 BigQuery에 로드할 수 있습니다.

  1. 스키마 매핑 출력 실행: 흐름 뷰에서 스키마 매핑 출력 객체를 선택하고 세부정보 패널에서 '실행' 버튼을 클릭합니다. 'Trifacta Photon' 실행 환경을 선택하고 레시피 오류 무시를 선택 해제합니다. 그런 다음 실행 버튼을 클릭합니다. 지정된 BigQuery 테이블이 있으면 Dataprep에서 새 행을 추가하고, 그렇지 않으면 새 테이블을 만듭니다.
  2. 작업 상태 보기: Dataprep에서 작업 실행을 모니터링할 수 있도록 '작업 실행' 페이지가 자동으로 열립니다. BigQuery 테이블을 진행하고 로드하는 데 몇 분 정도 걸립니다. 작업이 완료되면 가격 책정 CDM 출력이 분석을 위해 준비된 깨끗하고 구조화되고 정규화된 형식으로 BigQuery에 로드됩니다.

10. 분석 및 ML/AI 제공

애널리틱스 필수 요건

흥미로운 결과를 도출하는 분석 및 예측 모델을 실행하기 위해 특정 유용한 정보를 발견하는 데 적합한 대규모 데이터 세트를 만들었습니다. 이 가이드를 계속 진행하려면 먼저 BigQuery 데이터 세트에 이 데이터를 업로드해야 합니다.

'+ 테이블 만들기' 버튼을 클릭하고 다음 매개변수를 정의합니다.

  • 업로드에서 테이블을 만들고 CDM_Pricing_Large_Table.csv 파일을 선택합니다.
  • 스키마 자동 감지, 스키마 및 입력 매개변수 선택
  • 고급 옵션, 쓰기 환경설정, 테이블 덮어쓰기

ff9ec8b9f580b139.png

  • 테이블 만들기를 클릭합니다.

테이블을 만들고 데이터를 업로드한 후 BigQuery용 Google 콘솔에 아래와 같이 새 테이블의 세부정보가 표시됩니다. BigQuery의 가격 책정 데이터를 사용하면 더 포괄적인 질문을 쉽게 던져 가격 책정 데이터를 더 심층적으로 분석할 수 있습니다.

93e4c05972af1999.png

11. 가격 변경의 효과 보기

분석할 수 있는 한 가지 예는 이전에 상품 가격을 변경했을 때의 주문 행동 변화입니다.

  1. 먼저 제품 가격이 변경될 때마다 한 줄씩 포함되는 임시 테이블을 만듭니다. 이 테이블에는 각 가격으로 주문된 상품 수, 해당 가격과 관련된 총 순매출 등 특정 제품 가격에 관한 정보가 포함됩니다.
create temp table price_changes as (
select
       product_id,
       list_price_converged,
       total_ordered_pieces,
       total_net_sales,
       first_price_date,
       lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
       lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
       lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
       lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
       from (
           select
               product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
           from `{{my_project}}.{{my_dataset}}.CDM_Pricing` AS cdm_pricing
           group by 1,2
           order by 1, 2 asc
       )
);
select * from price_changes where previous_list is not null order by product_id, first_price_date desc

b320ba40f0692826.png

  1. 그런 다음 임시 테이블을 사용하여 SKU 전반의 평균 가격 변경을 계산할 수 있습니다.
select avg((previous_list-list_price_converged)/nullif(previous_list,0))*100 as average_price_change from price_changes;
  1. 마지막으로 각 가격 변경과 주문된 상품의 총액 간의 관계를 살펴봄으로써 가격이 변경된 후 어떤 일이 일어나는지 분석할 수 있습니다.
select
(total_ordered_pieces-previous_total_ordered_pieces)/nullif(previous_total_ordered_pieces,0) 

as

price_changes_percent_ordered_change,
(list_price_converged-previous_list)/nullif(previous_list,0)  

as

price_changes_percent_price_change
from price_changes

12. 시계열 예측 모델 빌드

그런 다음 BigQuery의 내장 머신러닝 기능을 사용하여 ARIMA 시계열 예측 모델을 빌드하여 판매될 각 상품의 수량을 예측할 수 있습니다.

  1. 먼저 ARIMA_PLUS 모델을 만듭니다.
create or replace `{{my_project}}.{{my_dataset}}.bqml_arima`
options
 (model_type = 'ARIMA_PLUS',
  time_series_timestamp_col = 'fiscal_date',
  time_series_data_col = 'total_quantity',
  time_series_id_col = 'product_id',
  auto_arima = TRUE,
  data_frequency = 'AUTO_FREQUENCY',
  decompose_time_series = TRUE
 ) as
select
 fiscal_date,
 product_id,
 sum(invoiced_quantity_in_pieces) as total_quantity
from
 `{{my_project}}.{{my_dataset}}.CDM_Pricing` 
group by 1,2;
  1. 다음으로 ML.FORECAST 함수를 사용하여 각 제품의 미래 판매량을 예측합니다.
select
*
from
ML.FORECAST(model testing.bqml_arima,
            struct(30 as horizon, 0.8 as confidence_level));
  1. 이러한 예측을 통해 가격을 인상할 경우 어떤 일이 일어날지 파악할 수 있습니다. 예를 들어 모든 제품의 가격을 15% 인상하는 경우 다음과 같은 쿼리로 다음 달의 예상 총수익을 계산할 수 있습니다.
select
sum(forecast_value * list_price) as total_revenue
from ml.forecast(mode testing.bqml_arima,
            struct(30 as horizon, 0.8 as confidence_level)) forecasts
left join (select product_id,
                array_agg(list_price_converged
                       order by fiscal_date desc limit 1)[offset(0)] as list_price
                from `leigha-bq-dev.retail.cdm_pricing` group by 1)  recent_prices
using (product_id);

13. 보고서 작성

이제 비정규화된 가격 데이터가 BigQuery에 중앙 집중화되었고 이 데이터에 대해 의미 있는 쿼리를 실행하는 방법을 이해했으므로 비즈니스 사용자가 이 정보를 탐색하고 이에 따라 조치를 취할 수 있는 보고서를 작성할 차례입니다.

이미 Looker 인스턴스가 있는 경우 이 GitHub 저장소의 LookML을 사용하여 이 패턴의 가격 데이터를 분석할 수 있습니다. 간단히 새 Looker 프로젝트를 만들고 LookML을 추가한 다음 각 파일에서 연결표 이름을 BigQuery 구성과 일치하도록 바꿉니다.

이 모델에는 가격 변동을 살펴보기 위해 앞서 표시한 파생 테이블 ( 이 뷰 파일에 있음)이 있습니다.

view: price_changes {
    derived_table: {
      sql: select
        product_id,
        list_price_converged,
        total_ordered_pieces,
        total_net_sales,
        first_price_date,
        lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
        lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
        lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
        lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
        from (
      select
         product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
      from ${cdm_pricing.SQL_TABLE_NAME}  AS cdm_pricing
      group by 1,2
      order by 1, 2 asc
      )
       ;;
    }
...
}

앞서 보여드린 BigQuery ML ARIMA 모델을 사용하여 향후 판매를 예측할 수 있습니다 ( 이 보기 파일).

view: arima_model {
  derived_table: {
    persist_for: "24 hours"
    sql_create:
      create or replace model ${sql_table_name}
            options
              (model_type = 'arima_plus',
               time_series_timestamp_col = 'fiscal_date',
               time_series_data_col = 'total_quantity',
               time_series_id_col = 'product_id',
               auto_arima = true,
               data_frequency = 'auto_frequency',
               decompose_time_series = true
              ) as
            select
              fiscal_date,
              product_id,
              sum(invoiced_quantity_in_pieces) as total_quantity
            from
              ${cdm_pricing.sql_table_name}
            group by 1,2 ;;
          }
   }
...
}

LookML에는 샘플 대시보드도 포함되어 있습니다. 여기에서 대시보드의 데모 버전에 액세스할 수 있습니다. 대시보드의 첫 번째 부분에서는 판매, 비용, 가격, 마진의 변화에 관한 개요 정보를 제공합니다. 비즈니스 사용자는 판매가 X% 미만으로 떨어졌는지 알기 위해 알림을 만들 수도 있습니다. 이는 가격을 낮춰야 할 수 있기 때문입니다.

b531e169b192c111.png

아래에 표시된 다음 섹션에서는 사용자가 가격 변경과 관련된 추세를 자세히 살펴볼 수 있습니다. 여기에서 특정 제품을 드릴다운하여 정확한 정가와 변경된 가격을 확인할 수 있습니다. 이는 추가 조사가 필요한 특정 제품을 파악하는 데 유용합니다.

6a98666697aa7a1.gif

마지막으로 보고서 하단에 BigQueryML 모델의 결과가 표시됩니다. Looker 대시보드 상단의 필터를 사용하면 위에서 설명한 것과 유사한 다양한 시나리오를 시뮬레이션하기 위해 매개변수를 쉽게 입력할 수 있습니다. 예를 들어 주문량이 예측 값의 75% 로 감소하고 모든 제품의 가격이 25% 인상되는 경우를 아래와 같이 확인할 수 있습니다.

d3a9d37c89c39b99.gif

이는 LookML의 매개변수를 기반으로 하며, 이 매개변수는 여기에 있는 측정값 계산에 직접 통합됩니다. 이 유형의 보고서를 사용하면 모든 제품에 대한 최적의 가격을 찾거나 특정 제품을 드릴다운하여 가격을 인상하거나 할인해야 하는 위치와 총수익 및 순수익에 미치는 영향을 확인할 수 있습니다.

14. 가격 책정 시스템에 맞게 조정

이 튜토리얼에서는 샘플 데이터 소스를 변환하지만, 다양한 플랫폼에 있는 가격 애셋에 대해서도 매우 유사한 데이터 문제가 발생합니다. 가격 책정 애셋에는 요약 및 세부 결과에 대해 다양한 내보내기 형식 (예: xls, sheets, csv, txt, 관계형 데이터베이스, 비즈니스 애플리케이션)이 있으며, 각 형식을 Dataprep에 연결할 수 있습니다. 위의 예와 유사하게 변환 요구사항을 설명하는 것부터 시작하는 것이 좋습니다. 사양을 명확히 하고 필요한 변환 유형을 식별한 후 Dataprep으로 변환을 설계할 수 있습니다.

  1. 맞춤설정할 Dataprep 흐름을 복사하거나 (흐름 오른쪽의 **...**더보기 버튼을 클릭하고 복제 옵션을 선택) 새 Dataprep 흐름을 사용하여 처음부터 시작합니다.
  2. 자체 가격 책정 데이터 세트에 연결합니다. Excel, CSV, Google Sheets, JSON과 같은 파일 형식은 Dataprep에서 기본적으로 지원됩니다. Dataprep 커넥터를 사용하여 다른 시스템에 연결할 수도 있습니다.
  3. 식별한 다양한 변환 카테고리로 데이터 애셋을 디스패치합니다. 각 카테고리에 대해 레시피를 하나씩 만듭니다. 이 디자인 패턴에 제공된 흐름에서 영감을 받아 데이터를 변환하고 자체 레시피를 작성하세요. 막히는 부분이 있으면 걱정하지 마세요. Dataprep 화면 왼쪽 하단의 채팅 대화상자에서 도움을 요청하세요.
  4. 레시피를 BigQuery 인스턴스에 연결합니다. BigQuery에서 테이블을 수동으로 만들 필요가 없습니다. Dataprep에서 자동으로 처리합니다. 흐름에 출력을 추가할 때 '수동 대상'을 선택하고 실행할 때마다 테이블을 삭제하는 것이 좋습니다. 예상한 결과가 나올 때까지 각 레시피를 개별적으로 테스트합니다. 테스트가 완료되면 이전 데이터가 삭제되지 않도록 각 실행에서 출력을 테이블에 추가하도록 변환합니다.
  5. 원하는 경우 흐름을 연결하여 일정에 따라 실행할 수 있습니다. 프로세스를 지속적으로 실행해야 하는 경우에 유용합니다. 필요한 업데이트 빈도에 따라 매일 또는 매시간 응답을 로드하는 일정을 정의할 수 있습니다. 일정에 따라 흐름을 실행하려면 각 레시피의 흐름에 'Schedule Destination Output'(예약 대상 출력)을 추가해야 합니다.

BigQuery 머신러닝 모델 수정

이 튜토리얼에서는 샘플 ARIMA 모델을 제공합니다. 하지만 모델을 개발할 때 데이터를 가장 잘 반영하도록 제어할 수 있는 추가 매개변수가 있습니다. 자세한 내용은 여기 문서의 예시를 참고하세요. 또한 BigQuery ML.ARIMA_EVALUATE, ML.ARIMA_COEFFICIENTS, ML.EXPLAIN_FORECAST 함수를 사용하여 모델에 대한 자세한 정보를 확인하고 최적화 결정을 내릴 수 있습니다.

Looker 보고서 수정

위에서 설명한 대로 LookML을 자체 프로젝트로 가져온 후 직접 수정하여 필드를 추가하거나, 계산 또는 사용자 입력 매개변수를 수정하거나, 비즈니스 요구사항에 맞게 대시보드의 시각화 요소를 변경할 수 있습니다. 여기에서 LookML 개발에 대해 자세히 알아보고 여기에서 Looker의 데이터 시각화 에 대해 자세히 알아볼 수 있습니다.

15. 축하합니다

이제 소매 제품의 가격을 최적화하는 데 필요한 주요 단계를 알게 되었습니다.

다음 단계

다른 스마트 분석 참조 패턴 살펴보기

추가 자료