1. מבוא
העדכון האחרון: 15 בספטמבר 2021
הנתונים שנדרשים כדי לקבל תובנות לגבי תמחור ולבצע אופטימיזציה של התמחור הם שונים במהותם (מערכות שונות, מציאות מקומית שונה וכו'), ולכן חשוב לפתח טבלת CDM מובנית, סטנדרטית ונקייה. המאפיינים האלה כוללים נתונים חשובים לאופטימיזציה של התמחור, כמו עסקאות, מוצרים, מחירים ולקוחות. במאמר הזה נסביר איך לבצע את השלבים שמפורטים בהמשך, כדי שתוכלו להתחיל במהירות לנתח את נתוני התמחור, ולהרחיב ולהתאים אישית את הניתוח לפי הצרכים שלכם. בתרשים הבא מפורטים השלבים שמוסברים במסמך הזה.

- הערכת מקורות הנתונים: קודם צריך ליצור רשימה של מקורות הנתונים שישמשו ליצירת ה-CDM. בשלב הזה, משתמשים גם ב-Dataprep כדי לבדוק את נתוני הקלט ולזהות בעיות. לדוגמה, ערכים חסרים ולא תואמים, מוסכמות למתן שמות לא עקביות, כפילויות, בעיות בתקינות נתונים, חריגים וכו'.
- סטנדרטיזציה של הנתונים: בשלב הבא, מתקנים את הבעיות שזוהו כדי להבטיח שהנתונים מדויקים, שלמים ועקביים. התהליך הזה יכול לכלול שינויים שונים ב-Dataprep, כמו עיצוב תאריכים, סטנדרטיזציה של ערכים, המרת יחידות, סינון של שדות וערכים מיותרים, ופיצול, צירוף או הסרת כפילויות של נתוני המקור.
- איחוד במבנה אחד: בשלב הבא של הפייפליין, כל מקור נתונים מצורף לטבלה רחבה אחת ב-BigQuery שמכילה את כל המאפיינים ברמת הגרנולריות הכי גבוהה. המבנה הלא מנורמלי הזה מאפשר לבצע שאילתות ניתוח יעילות שלא דורשות איחוד.
- ניתוח נתונים ולמידת מכונה/AI: אחרי שהנתונים נוקו ועברו פורמט לניתוח, אנליסטים יכולים לבדוק נתונים היסטוריים כדי להבין את ההשפעה של שינויים קודמים בתמחור. בנוסף, אפשר להשתמש ב-BigQuery ML כדי ליצור מודלים לחיזוי שמבצעים הערכה של מכירות עתידיות. אפשר לשלב את הפלט של המודלים האלה בלוחות בקרה ב-Looker כדי ליצור תרחישים היפותטיים שבהם משתמשים עסקיים יכולים לנתח איך ייראה היקף המכירות עם שינויים מסוימים במחירים.
בתרשים הבא מוצגים רכיבי Google Cloud שמשמשים ליצירת פייפליין של ניתוח נתונים לאופטימיזציה של תמחור.

מה תפַתחו
במאמר הזה נסביר איך לתכנן מחסן נתונים לאופטימיזציה של תמחור, איך להפוך את הכנת הנתונים לאוטומטית לאורך זמן, איך להשתמש בלמידת מכונה כדי לחזות את ההשפעה של שינויים בתמחור המוצרים ואיך לפתח דוחות שיספקו תובנות פרקטיות לצוות שלכם.
מה תלמדו
- איך מחברים את Dataprep למקורות נתונים לצורך ניתוח תמחור, שאפשר לאחסן במסדי נתונים יחסיים, בקבצים שטוחים, ב-Google Sheets ובאפליקציות נתמכות אחרות.
- איך יוצרים תהליך עבודה ב-Dataprep כדי ליצור טבלת CDM במחסן הנתונים (data warehouse) ב-BigQuery.
- איך משתמשים ב-BigQuery ML כדי לחזות את ההכנסות העתידיות.
- איך ליצור דוחות ב-Looker כדי לנתח את היסטוריית התמחור ומגמות המכירות, ולהבין את ההשפעה של שינויים עתידיים במחירים.
הדרישות
- פרויקט ב-Google Cloud שהחיוב בו מופעל. איך מוודאים שהחיוב מופעל בפרויקט?
- צריך להפעיל את BigQuery בפרויקט. היא מופעלת אוטומטית בפרויקטים חדשים. אחרת, מפעילים אותו בפרויקט קיים. מידע נוסף על תחילת העבודה עם BigQuery במסוף Cloud
- צריך גם להפעיל את Dataprep בפרויקט. אפשר להפעיל את Dataprep דרך Google Console, בתפריט הניווט הימני בקטע Big Data. פועלים לפי שלבי ההרשמה כדי להפעיל אותו.
- כדי להגדיר לוחות בקרה משלכם ב-Looker, אתם צריכים לקבל גישת מפתח במופע Looker. כדי לבקש תקופת ניסיון, אפשר לפנות לצוות שלנו כאן, או להשתמש בלוח הבקרה הציבורי שלנו כדי לבדוק את התוצאות של פייפליין הנתונים בנתוני הדוגמה שלנו.
- ניסיון עם שפת שאילתות מובנית (SQL) וידע בסיסי בנושאים הבאים יכולים לעזור: Dataprep by Trifacta, BigQuery, Looker
2. יצירת ה-CDM ב-BigQuery
בקטע הזה יוצרים את מודל הנתונים המשותף (CDM), שמספק תצוגה מאוחדת של המידע שצריך לנתח ולהציע שינויים במחירים.
- פותחים את מסוף BigQuery.
- בוחרים את הפרויקט שבו רוצים להשתמש כדי לבדוק את דפוס ההפניה הזה.
- משתמשים במערך נתונים קיים או יוצרים מערך נתונים ב-BigQuery. נותנים למערך הנתונים את השם
Pricing_CDM. - יצירת הטבלה:
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 Sheets וב-BigQuery.
- גיליון Google Sheets של עסקאות, שמכיל שורה אחת לכל עסקה. הדוח כולל פרטים כמו כמות כל מוצר שנמכר, מכירות ברוטו כוללות ועלויות משויכות.
- גיליון Google Sheets עם תמחור המוצרים, שכולל את המחיר של כל מוצר ללקוח מסוים בכל חודש.
- טבלת 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, שמשמש לטרנספורמציה ולאיחוד של קבוצות הנתונים לדוגמה שמופיעות בקטע הקודם. Flow מייצג פייפליין, או אובייקט שמקבץ קבוצות נתונים ומתכונים, שמשמשים לביצוע טרנספורמציות ולאיחוד שלהם.
- מורידים את חבילת התהליך Pricing Optimization Pattern מ-GitHub, אבל לא פותחים את הקובץ. הקובץ הזה מכיל את התהליך של תבנית העיצוב של אופטימיזציית המחירים שמשמשת לשינוי נתוני הדוגמה.
- ב-Dataprep, לוחצים על סמל התהליכים בסרגל הניווט הימני. בתצוגת הזרימות, בוחרים באפשרות ייבוא בתפריט ההקשר. אחרי שמייבאים את התהליך, אפשר לבחור אותו כדי לראות ולערוך אותו.

- בצד שמאל של התרשים, צריך לקשר כערכות נתונים את התמחור של המוצרים ואת כל אחד משלושת קובצי ה-Google Sheets של העסקאות. כדי לעשות את זה, לוחצים לחיצה ימנית על אובייקטים של מערך נתונים ב-Google Sheets ובוחרים באפשרות החלפה. לאחר מכן לוחצים על הקישור ייבוא מערכי נתונים. לוחצים על סמל העיפרון 'עריכת הנתיב', כמו שמוצג בתרשים הבא.

מחליפים את הערך הנוכחי בקישור לגיליון העסקאות ומחירי המוצרים ב-Google Sheets .
אם יש כמה כרטיסיות ב-Google Sheets, אפשר לבחור את הכרטיסייה שרוצים להשתמש בה בתפריט. לוחצים על עריכה, בוחרים את הכרטיסיות שרוצים להשתמש בהן כמקור הנתונים, לוחצים על שמירה ואז על ייבוא והוספה לזרימה. כשחוזרים לתיבת הדו-שיח, לוחצים על החלפה. בתרשים הזרימה הזה, כל גיליון מיוצג כקבוצת נתונים משלו כדי להדגים איחוד של מקורות שונים בהמשך המתכון.

- הגדרת טבלאות פלט של BigQuery:
בשלב הזה, תקשרו את המיקום של טבלת הפלט CDM_Pricing ב-BigQuery לטעינה בכל הפעלה של משימת Dataoprep.
בתצוגת הזרימה, לוחצים על סמל הפלט של מיפוי הסכימה. בחלונית הפרטים, לוחצים על הכרטיסייה 'יעדים'. משם, אפשר לערוך את הפלט של היעדים הידניים שמשמש לבדיקה, ואת הפלט של היעדים המתוזמנים שמשמש לאוטומציה של כל התהליך. כדי לעשות זאת, פועלים לפי ההוראות הבאות:
- עריכת היעדים הידניים בחלונית הפרטים, בקטע 'יעדים ידניים', לוחצים על לחצן העריכה. בדף הגדרות פרסום, בקטע 'פעולות פרסום', אם כבר קיימת פעולת פרסום, עורכים אותה. אחרת, לוחצים על הלחצן 'הוספת פעולה'. משם, עוברים למערכי הנתונים ב-BigQuery אל מערך הנתונים
Pricing_CDMשיצרתם בשלב הקודם ובוחרים את הטבלהCDM_Pricing. מוודאים שהתיבה Append to this table every run (הוספה לטבלה הזו בכל הפעלה) מסומנת ולוחצים על Add (הוספה). לוחצים על Save Settings (שמירת ההגדרות). - עריכת ההגדרה 'יעדים מתוזמנים'
בחלונית הפרטים, בקטע 'יעדים מתוזמנים', לוחצים על עריכה.
ההגדרות עוברות בירושה מהיעדים הידניים, ולא צריך לבצע שינויים. לוחצים על Save Settings (שמירת ההגדרות).
5. התאמת פורמט הנתונים
התהליך שמוצג כאן מאחד את נתוני העסקאות, מגדיר את הפורמט שלהם ומנקה אותם, ואז מצטרף לתוצאה עם תיאורי החברה ונתוני התמחור המצטברים לצורכי דיווח. בקטע הזה נסביר על הרכיבים של התהליך, שמופיעים בתמונה שלמטה.

6. עיון במתכון של נתוני עסקאות
קודם כל, נבדוק מה קורה ב-Transactional Data Recipe (מתכון לנתונים טרנזקציוניים), שמשמש להכנת נתוני עסקאות. לוחצים על אובייקט נתוני העסקאות בתצוגת הזרימה. בחלונית הפרטים, לוחצים על הלחצן 'עריכת המתכון'.
דף ה-Transformer נפתח עם המתכון שמוצג בחלונית הפרטים. המתכון מכיל את כל שלבי הטרנספורמציה שמוחלים על הנתונים. כדי לראות את מצב הנתונים במיקום מסוים במתכון, אפשר ללחוץ בין השלבים.
אפשר גם ללחוץ על סמל האפשרויות הנוספות בכל שלב של המתכון, ולבחור באפשרות 'מעבר אל הנבחר' או 'עריכה' כדי להבין איך הפעולה הזו מתבצעת.
- איחוד עסקאות: השלב הראשון במתכון לנתוני עסקאות הוא איחוד של עסקאות שמאוחסנות בגיליונות שונים שמייצגים כל חודש.
- האחדה של תיאורי לקוחות: השלב הבא במתכון הוא האחדה של תיאורי לקוחות. המשמעות היא ששמות הלקוחות יכולים להיות דומים עם שינויים קלים, ואנחנו רוצים לנרמל אותם לשם אחד. במתכון מוצגות שתי גישות אפשריות. קודם כל, הוא משתמש באלגוריתם הנורמליזציה, שאפשר להגדיר בו אפשרויות נורמליזציה שונות, כמו 'מחרוזות דומות' שבהן ערכים עם תווים משותפים מקובצים יחד, או 'הגייה' שבהן ערכים שנשמעים דומים מקובצים יחד. אפשר גם לחפש את תיאור החברה בטבלת BigQuery שמצוינת למעלה באמצעות מזהה החברה.
אפשר להמשיך לעיין במתכון כדי לגלות את הטכניקות השונות שמוחלות לניקוי ולעיצוב הנתונים: מחיקת שורות, עיצוב על סמך דפוסים, העשרת הנתונים באמצעות חיפושים, טיפול בערכים חסרים או החלפת תווים לא רצויים.
7. מתכון לנתוני תמחור מוצרים
לאחר מכן, תוכלו לבדוק מה קורה במתכון Product Pricing Data (נתוני תמחור מוצרים), שמשלב את נתוני העסקאות המוכנים עם נתוני התמחור המצטברים.
לוחצים על התבנית PRICING OPTIMIZATION DESIGN PATTERN (תבנית עיצוב לאופטימיזציה של תמחור) בחלק העליון של הדף כדי לסגור את הדף Transformer ולחזור לתצוגת התהליך. משם לוחצים על אובייקט נתוני תמחור המוצרים ועורכים את המתכון.
- ביטול הציר של עמודות המחיר החודשי: לוחצים על המתכון בין שלב 2 לשלב 3 כדי לראות איך הנתונים נראים לפני שלב ביטול הציר. אפשר לראות שהנתונים מכילים את ערך העסקה בעמודה נפרדת לכל חודש: Jan Fev Mar. זה לא פורמט שנוח להחיל בו חישוב של צבירה (כלומר, סכום, עסקה ממוצעת) ב-SQL. צריך לבטל את הציר של הנתונים כדי שכל עמודה תהפוך לשורה בטבלה ב-BigQuery. המתכון משתמש בפונקציה unpivot כדי להפוך את 3 העמודות לשורה אחת לכל חודש, וכך קל יותר להחיל חישובים של קבוצות.
- חישוב ערך העסקה הממוצע לפי לקוח, מוצר ותאריך: אנחנו רוצים לחשב את ערך העסקה הממוצע לכל לקוח, מוצר ותאריך. אפשר להשתמש בפונקציית הצבירה וליצור טבלה חדשה (האפשרות 'קיבוץ לפי כטבלה חדשה'). במקרה כזה, הנתונים מצטברים ברמת הקבוצה, ואנחנו מאבדים את הפרטים של כל עסקה בנפרד. לחלופין, אפשר להחליט לשמור את הפרטים ואת הערכים המצטברים באותה קבוצת נתונים (האפשרות 'קיבוץ לפי עמודות חדשות'), וכך נוח מאוד להחיל יחס (למשל, אחוז התרומה של קטגוריית מוצרים להכנסה הכוללת). כדי לראות את ההבדלים, אפשר לנסות את ההתנהגות הזו על ידי עריכת שלב 7 במתכון ולבחור באפשרות 'קיבוץ לפי כטבלה חדשה' או 'קיבוץ לפי כעמודה או עמודות חדשות'.
- תאריך שילוב התמחור: לבסוף, נעשה שימוש בשילוב כדי לשלב כמה מערכי נתונים למערך נתונים גדול יותר, ולהוסיף עמודות למערך הנתונים הראשוני. בשלב הזה, נתוני התמחור מצורפים לפלט של המתכון Transactional Data (נתוני עסקאות) על סמך 'Pricing Data.Product Code' = Transaction Data.SKU' ו-'Pricing Data.Price Date' = 'Transaction Data.Fiscal Date'.
מידע נוסף על הטרנספורמציות שאפשר להחיל באמצעות Dataprep זמין בגיליון ההונאה של Trifacta Data Wrangling
8. עיון במתכון למיפוי סכימות
המתכון האחרון, Schema Mapping (מיפוי סכימה), מוודא שהסכימה של טבלת ה-CDM שמתקבלת תואמת לסכימה של טבלת הפלט הקיימת ב-BigQuery. במקרה הזה, נעשה שימוש בפונקציונליות של Rapid Target כדי לעצב מחדש את מבנה הנתונים כך שיתאים לטבלה ב-BigQuery. לשם כך נעשה שימוש בהתאמה משוערת כדי להשוות בין שתי הסכימות ולהחיל שינויים אוטומטיים.
9. איחוד במבנה אחד
אחרי שסיימתם להגדיר את המקורות והיעדים, ולבדוק את השלבים בתהליכי העבודה, אתם יכולים להריץ את תהליך העבודה כדי לבצע טרנספורמציה של טבלת ה-CDM ולטעון אותה ל-BigQuery.
- הרצת הפלט של מיפוי הסכימה: בתצוגת הזרימה, בוחרים את אובייקט הפלט של מיפוי הסכימה ולוחצים על הלחצן 'הרצה' בחלונית הפרטים. בוחרים באפשרות 'סביבת הפעלה של Trifacta Photon' ומבטלים את הסימון של 'התעלמות משגיאות במתכון'. אחר כך לוחצים על לחצן ההפעלה. אם הטבלה שצוינה ב-BigQuery קיימת, Dataprep יוסיף לה שורות חדשות. אחרת, הוא ייצור טבלה חדשה.
- צפייה בסטטוס המשימה: Dataprep פותח אוטומטית את הדף 'הפעלת משימה' כדי שתוכלו לעקוב אחרי הביצוע של המשימה. התהליך יימשך כמה דקות עד שהטבלה תיטען ב-BigQuery. כשהעבודה תושלם, הפלט של מודל הנתונים המשותף של התמחור ייטען ב-BigQuery בפורמט נקי, מובנה ומנורמל שמוכן לניתוח.
10. אספקת ניתוח נתונים ו-ML/AI
דרישות מוקדמות לשימוש ב-Analytics
כדי להריץ ניתוחים מסוימים ומודל חיזוי עם תוצאות מעניינות, יצרנו מערך נתונים גדול יותר ורלוונטי לגילוי תובנות ספציפיות. לפני שממשיכים במדריך הזה, צריך להעלות את הנתונים האלה למערך הנתונים ב-BigQuery.
- מורידים את מערך הנתונים הגדול ממאגר GitHub הזה.
- ב-Google Console for BigQuery, עוברים לפרויקט ולמערך הנתונים CDM_Pricing.
- לוחצים על התפריט ופותחים את מערך הנתונים. ניצור את הטבלה על ידי טעינת הנתונים מקובץ מקומי.
לוחצים על הלחצן '+ יצירת טבלה' ומגדירים את הפרמטרים הבאים:
- יוצרים טבלה מהעלאה ובוחרים את הקובץ CDM_Pricing_Large_Table.csv
- זיהוי אוטומטי של סכמה, בדיקת סכמה ופרמטרים של קלט
- אפשרויות מתקדמות, כתיבת העדפה, החלפת הטבלה

- לוחצים על 'יצירת טבלה'.
אחרי שהטבלה נוצרת והנתונים מועלים, במסוף Google ל-BigQuery אמורים להופיע פרטי הטבלה החדשה כמו שמוצג בהמשך. בעזרת נתוני התמחור ב-BigQuery, אנחנו יכולים לשאול בקלות שאלות מקיפות יותר כדי לנתח את נתוני התמחור ברמה מעמיקה יותר.

11. איך רואים את ההשפעה של שינויים במחירים
לדוגמה, כדאי לנתח שינוי בהתנהגות ההזמנה אם שיניתם בעבר את המחיר של פריט.
- קודם יוצרים טבלה זמנית עם שורה אחת לכל שינוי במחיר של מוצר, ועם מידע על התמחור של אותו מוצר, כמו מספר הפריטים שהוזמנו בכל מחיר ומכירות נטו כוללות שמשויכות למחיר הזה.
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

- בשלב הבא, אחרי שיצרתם את הטבלה הזמנית, תוכלו לחשב את שינוי המחיר הממוצע של המק"טים:
select avg((previous_list-list_price_converged)/nullif(previous_list,0))*100 as average_price_change from price_changes;
- לבסוף, תוכלו לנתח מה קורה אחרי שינוי מחיר על ידי בדיקת הקשר בין כל שינוי מחיר לבין הכמות הכוללת של הפריטים שהוזמנו:
select
(total_ordered_pieces-previous_total_ordered_pieces)/nullif(previous_total_ordered_pieces,0)
כמו
price_changes_percent_ordered_change,
(list_price_converged-previous_list)/nullif(previous_list,0)
כמו
price_changes_percent_price_change
from price_changes
12. יצירת מודל לחיזוי סדרות זמן
לאחר מכן, בעזרת יכולות למידת המכונה המובנות של BigQuery, תוכלו ליצור מודל לחיזוי סדרות זמן מסוג ARIMA כדי לחזות את הכמות של כל פריט שיימכר.
- קודם יוצרים מודל 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;
- לאחר מכן, משתמשים בפונקציה ML.FORECAST כדי לחזות את ערך המכירות הצפוי של כל מוצר:
select
*
from
ML.FORECAST(model testing.bqml_arima,
struct(30 as horizon, 0.8 as confidence_level));
- התחזיות האלה מאפשרות לכם להבין מה עשוי לקרות אם תעלו את המחירים. לדוגמה, אם אתם מעלים את המחיר של כל מוצר ב-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, תוכלו להשתמש ב-LookML במאגר GitHub הזה כדי להתחיל לנתח את נתוני התמחור של התבנית הזו. פשוט יוצרים פרויקט חדש ב-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%, כי יכול להיות שזה אומר שאתם צריכים להוריד את המחירים.

בקטע הבא, שמוצג למטה, המשתמשים יכולים לבדוק מגמות שקשורות לשינויים בתמחור. כאן אפשר להתעמק במוצרים ספציפיים כדי לראות את מחיר המחירון המדויק ואת המחירים ששונו – זה יכול לעזור לכם לאתר מוצרים ספציפיים כדי לבצע עליהם מחקר נוסף.

לבסוף, בחלק התחתון של הדוח מופיעות התוצאות של מודל BigQueryML. באמצעות המסננים בחלק העליון של לוח הבקרה ב-Looker, אפשר להזין בקלות פרמטרים כדי לדמות תרחישים שונים, כמו שמתואר למעלה. לדוגמה, אפשר לראות מה יקרה אם נפח ההזמנות יירד ל-75% מהערך החזוי, והתמחור של כל המוצרים יעלה ב-25%, כמו שמוצג בהמשך

החישוב מתבסס על פרמטרים ב-LookML, שמשולבים ישירות בחישובי המדדים שמופיעים כאן. בעזרת דוחות מהסוג הזה, תוכלו למצוא את התמחור האופטימלי לכל המוצרים או להתמקד במוצרים ספציפיים כדי להבין איפה כדאי להעלות או להוריד מחירים, ומה יהיו התוצאות מבחינת הרווח ברוטו והרווח נטו.
14. התאמה למערכות התמחור שלכם
המדריך הזה מתמקד בשינוי של מקורות נתונים לדוגמה, אבל אתם תיתקלו באתגרים דומים בנתוני התמחור שמופיעים בפלטפורמות השונות שלכם. לנכסי תמחור יש פורמטים שונים של ייצוא (לרוב xls, sheets, csv, txt, מסדי נתונים רלציוניים, אפליקציות עסקיות) לסיכום ולתוצאות מפורטות, וכל אחד מהם יכול להתחבר ל-Dataprep. מומלץ להתחיל בתיאור של דרישות ההמרה, בדומה לדוגמאות שלמעלה. אחרי שמבהירים את המפרטים ומזהים את סוגי הטרנספורמציות שנדרשות, אפשר לעצב אותן באמצעות Dataprep.
- יוצרים עותק של תהליך העבודה ב-Dataprep (לוחצים על הלחצן **... "**עוד" משמאל לתהליך העבודה ובוחרים באפשרות 'שכפול') שאותו תתאימו אישית, או פשוט מתחילים מאפס באמצעות תהליך עבודה חדש ב-Dataprep.
- מתחברים למערך נתוני התמחור שלכם. פורמטים של קבצים כמו Excel, CSV, Google Sheets ו-JSON נתמכים באופן מובנה ב-Dataprep. אפשר גם להתחבר למערכות אחרות באמצעות מחברים של Dataprep.
- משבצים את נכסי הנתונים בקטגוריות השונות של הטרנספורמציה שזיהיתם. יוצרים מתכון אחד לכל קטגוריה. אפשר לקבל השראה מה-Flow שמוצג בדפוס העיצוב הזה כדי לבצע טרנספורמציה של הנתונים ולכתוב מתכונים משלכם. אם נתקעתם, אל דאגה, תוכלו לבקש עזרה בתיבת הדו-שיח של הצ'אט בפינה הימנית התחתונה של מסך Dataprep.
- מקשרים את המתכון למופע BigQuery. אין צורך ליצור את הטבלאות באופן ידני ב-BigQuery, כי Dataprep יעשה זאת בשבילכם באופן אוטומטי. מומלץ להוסיף את הפלט לזרימה, לבחור יעד ידני ולהפיל את הטבלה בכל הפעלה. בודקים כל מתכון בנפרד עד שמקבלים את התוצאות הרצויות. אחרי שתסיימו את הבדיקה, תמירו את הפלט ל-Append to the table at each run (הוספה לטבלה בכל הפעלה) כדי למנוע מחיקה של הנתונים הקודמים.
- אפשר גם לשייך את רצף הפעולות להפעלה מתוזמנת. האפשרות הזו שימושית אם התהליך צריך לפעול באופן רציף. אתם יכולים להגדיר לוח זמנים לטעינת התשובה כל יום או כל שעה, בהתאם למידת העדכניות שאתם צריכים. אם מחליטים להריץ את רצף הפעולות לפי תזמון, צריך להוסיף לכל מתכון פלט של יעד תזמון ברצף הפעולות.
שינוי מודל למידת מכונה ב-BigQuery
במדריך הזה מופיעה דוגמה למודל ARIMA. עם זאת, יש פרמטרים נוספים שאתם יכולים לשלוט בהם כשאתם מפתחים את המודל, כדי לוודא שהוא מתאים לנתונים שלכם בצורה הטובה ביותר. כאן אפשר לראות דוגמה נוספת במסמכי התיעוד שלנו. בנוסף, אפשר להשתמש בפונקציות BigQuery ML.ARIMA_EVALUATE, ML.ARIMA_COEFFICIENTS ו-ML.EXPLAIN_FORECAST כדי לקבל פרטים נוספים על המודל ולקבל החלטות לגבי אופטימיזציה.
עריכת דוחות Looker
אחרי שמייבאים את LookML לפרויקט שלכם כמו שמתואר למעלה, אפשר לערוך ישירות את הקוד כדי להוסיף שדות, לשנות חישובים או פרמטרים שהמשתמשים הזינו, ולשנות את התרשימים בלוחות הבקרה כך שיתאימו לצרכים העסקיים שלכם. כאן אפשר לקרוא פרטים על פיתוח ב-LookML, וכאן אפשר לקרוא פרטים על הצגת נתונים ב-Looker.
15. מזל טוב
עכשיו אתם יודעים מהם השלבים העיקריים שצריך לבצע כדי לבצע אופטימיזציה של התמחור של המוצרים הקמעונאיים שלכם.
מה השלב הבא?
דפוסי התייחסות אחרים לניתוח נתונים חכם