खुदरा प्रॉडक्ट की कीमत ऑप्टिमाइज़ करना

1. परिचय

पिछली बार अपडेट किए जाने की तारीख: 15-09-2021

कीमत की अहम जानकारी और ऑप्टिमाइज़ेशन के लिए ज़रूरी डेटा, अलग-अलग सिस्टम (अलग-अलग सिस्टम, अलग-अलग स्थानीय रीयलिटी वगैरह) के हिसाब से अलग-अलग होता है. इसलिए, एक सही तरीके से स्ट्रक्चर की गई, स्टैंडर्ड के मुताबिक बनाई गई, और साफ़ सीडीएम टेबल बनाना ज़रूरी है. इसमें कीमत को ऑप्टिमाइज़ करने के लिए मुख्य एट्रिब्यूट शामिल होते हैं. जैसे, लेन-देन, प्रॉडक्ट, कीमतें, और ग्राहक. इस दस्तावेज़ में, हम आपको नीचे बताए गए चरणों की जानकारी देंगे. इनसे आपको कीमत से जुड़े आंकड़ों के बारे में तुरंत जानकारी मिल जाएगी. इन्हें अपनी ज़रूरत के हिसाब से बढ़ाया जा सकता है. नीचे दिए गए डायग्राम में, इस दस्तावेज़ में शामिल चरणों के बारे में बताया गया है.

dd8545e0c9156b13.png

  1. डेटा सोर्स का आकलन करें: सबसे पहले, आपको उन डेटा सोर्स की इन्वेंट्री मिलनी चाहिए जिनका इस्तेमाल सीडीएम बनाने के लिए किया जाएगा. इस चरण में, इनपुट डेटा से समस्याओं का पता लगाने और उनकी पहचान करने के लिए भी Dataprep का इस्तेमाल किया जाता है. उदाहरण के लिए, वैल्यू मौजूद न होना और मैच न होना, नाम रखने के अलग-अलग तरीके, डुप्लीकेट, डेटा के रखरखाव से जुड़ी समस्याएं, आउटलायर वगैरह.
  2. डेटा का स्टैंडर्ड तय करना: इसके बाद, पहले से पहचानी गई समस्याओं को ठीक कर दिया जाता है, ताकि डेटा सटीक, इंटेग्रिटी, एक जैसा काम करे, और पूरा हो सके. इस प्रोसेस में Dataprep में कई बदलाव शामिल हो सकते हैं. जैसे, तारीख का फ़ॉर्मैट, वैल्यू का स्टैंडर्ड तय करना, यूनिट कन्वर्ज़न, ग़ैर-ज़रूरी फ़ील्ड और वैल्यू को फ़िल्टर करना, सोर्स डेटा को बांटना, जोड़ना या डुप्लीकेट करना.
  3. एक स्ट्रक्चर में जोड़ें: पाइपलाइन का अगला चरण, हर डेटा सोर्स को BigQuery में एक चौड़ी टेबल में जोड़ देता है. इन टेबल में सभी एट्रिब्यूट बेहतरीन लेवल पर होते हैं. इस असामान्य फ़ॉर्मैट से विश्लेषण वाली ऐसी क्वेरी बनाई जा सकती हैं जिनके लिए जोड़ने की ज़रूरत नहीं होती.
  4. आंकड़े और एमएल/एआई: डेटा के सही होने और विश्लेषण के लिए फ़ॉर्मैट हो जाने के बाद, ऐनलिस्ट पुराने डेटा को एक्सप्लोर कर सकते हैं. इससे वे कीमत में पहले से किए गए बदलावों का असर समझ सकते हैं. इसके अलावा, BigQuery ML का इस्तेमाल अनुमानित मॉडल बनाने के लिए किया जा सकता है. इससे आने वाले समय में होने वाली बिक्री का अनुमान लगाया जा सकता है. इन मॉडल के आउटपुट को Looker में डैशबोर्ड में शामिल किया जा सकता है, ताकि "अगर स्थिति हो" तो इसे बनाया जा सके जहां कारोबारी उपयोगकर्ता यह विश्लेषण कर सकते हैं कि कीमत में कुछ बदलाव होने पर, सेल कैसी दिख सकती है.

नीचे दिया गया डायग्राम, कीमत के ऑप्टिमाइज़ेशन की Analytics पाइपलाइन को बनाने के लिए इस्तेमाल किए गए Google Cloud कॉम्पोनेंट को दिखाता है.

e5d74e43074eedf4.png

आपको क्या बनाना होगा

यहां हम आपको कीमत का ऑप्टिमाइज़ेशन डेटा वेयरहाउस डिज़ाइन करने, समय के साथ डेटा तैयार करने की प्रक्रिया को ऑटोमेट करने, प्रॉडक्ट की कीमत में होने वाले बदलावों के असर का अनुमान लगाने के लिए मशीन लर्निंग का इस्तेमाल करने, और अपनी टीम को अहम जानकारी देने के लिए रिपोर्ट तैयार करने का तरीका बताएंगे.

आपको इनके बारे में जानकारी मिलेगी

  • कीमत के आंकड़ों के लिए, Dataprep को डेटा सोर्स से कनेक्ट करने का तरीका. इस डेटा को रिलेशनल डेटाबेस, फ़्लैट फ़ाइलों, Google Sheets, और काम करने वाले अन्य ऐप्लिकेशन में सेव किया जा सकता है.
  • अपने BigQuery डेटा वेयरहाउस में सीडीएम टेबल बनाने के लिए, Dataprep फ़्लो बनाने का तरीका.
  • आने वाले समय में रेवेन्यू का अनुमान लगाने के लिए, BigQuery ML का इस्तेमाल कैसे करें.
  • पुरानी कीमतों और बिक्री के रुझानों का विश्लेषण करने और आने वाले समय में कीमत में होने वाले बदलावों से पड़ने वाले असर को समझने के लिए, Looker में रिपोर्ट बनाने का तरीका.

आपको इनकी ज़रूरत होगी

2. BigQuery में सीडीएम बनाएं

इस सेक्शन में, कॉमन डेटा मॉडल (सीडीएम) बनाया जाता है. इसमें उस जानकारी का एक व्यू मिलता है जिसका विश्लेषण करना और कीमत में बदलाव के सुझाव देना है.

  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 Sheets और BigQuery में स्टोर किए गए सैंपल डेटा सोर्स का इस्तेमाल किया गया है.

  • लेन-देन से जुड़ी Google शीट, जिसमें हर लेन-देन के लिए एक लाइन होती है. इसमें बेचे गए हर प्रॉडक्ट की संख्या, कुल कुल बिक्री, और उससे जुड़ी लागत जैसी जानकारी होती है.
  • प्रॉडक्ट की कीमत वाली Google शीट, जिसमें किसी ग्राहक के लिए, हर महीने हर प्रॉडक्ट की कीमत बताई जाती है.
  • कंपनी का ब्यौरा दिखाने वाली 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. GitHup से कीमत के ऑप्टिमाइज़ेशन पैटर्न वाला फ़्लो पैकेज डाउनलोड करें, लेकिन उसे अनज़िप न करें. इस फ़ाइल में, कीमत तय करने के ऑप्टिमाइज़ेशन डिज़ाइन पैटर्न का फ़्लो शामिल है. इसका इस्तेमाल, सैंपल डेटा को बदलने के लिए किया जाता है.
  2. Dataprep में, बाएं नेविगेशन बार में फ़्लो आइकॉन पर क्लिक करें. फिर फ़्लो व्यू में, संदर्भ मेन्यू से इंपोर्ट करें चुनें. फ़्लो इंपोर्ट करने के बाद, उसे देखने और उसमें बदलाव करने के लिए उसे चुनें.

dd5213e4cf1e313f.png

  1. फ़्लो के बाईं ओर, प्रॉडक्ट की कीमत और तीनों लेन-देन वाली Google Sheets में से हर एक को डेटासेट के तौर पर कनेक्ट किया जाना चाहिए. ऐसा करने के लिए, Google Sheets के डेटासेट ऑब्जेक्ट पर राइट क्लिक करें और बदलें चुनें. इसके बाद, डेटासेट इंपोर्ट करें लिंक पर क्लिक करें. "पाथ में बदलाव करें" पर क्लिक करें जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है.

7e4af3e82955343f.png

मौजूदा वैल्यू को उस लिंक से बदलें जो ट्रांज़ैक्शन और प्रॉडक्ट की कीमत Google Sheets पर ले जाता है.

Google Sheets में कई टैब होने पर, मेन्यू में से अपनी पसंद का टैब चुना जा सकता है. बदलाव करें पर क्लिक करें और वे टैब चुनें जिनका इस्तेमाल आपको डेटा सोर्स के तौर पर करना है. इसके बाद, सेव करें पर क्लिक करें और इंपोर्ट करें और फ़्लो में जोड़ें. मॉडल पर वापस आने के बाद, बदलें पर क्लिक करें. इस फ़्लो में, हर शीट को उसके अपने डेटासेट के तौर पर दिखाया गया है, ताकि बाद में दी गई रेसिपी में, अलग-अलग सोर्स को साथ में दिखाया जा सके.

799bce35e0a60e87.png

  1. BigQuery की आउटपुट टेबल तय करना:

इस चरण में, हर बार DataopRep जॉब को चलाने पर लोड होने वाली BigQuery CDM_Pricing आउटपुट टेबल की जगह को जोड़ा जाएगा.

फ़्लो व्यू में, स्कीमा मैपिंग आउटपुट आइकॉन पर क्लिक करें, फिर जानकारी पैनल में, 'डेस्टिनेशन' टैब पर क्लिक करें. इसके बाद, जांच के लिए इस्तेमाल किए गए मैन्युअल डेस्टिनेशन आउटपुट और अगर आपको अपने पूरे फ़्लो को ऑटोमेट करना है, तो शेड्यूल किए गए डेस्टिनेशन आउटपुट, दोनों में बदलाव करना होगा. इसके लिए, इन निर्देशों का पालन करें:

  1. "मैन्युअल डेस्टिनेशन" में बदलाव करना जानकारी पैनल में, मैन्युअल डेस्टिनेशन सेक्शन के नीचे मौजूद 'बदलाव करें' बटन पर क्लिक करें. पब्लिश करने की सेटिंग पेज पर, 'पब्लिश करने की कार्रवाइयां' के नीचे, अगर पब्लिश करने की कार्रवाई पहले से मौजूद है, तो उसमें बदलाव करें. अगर ऐसा नहीं है, तो 'कार्रवाई जोड़ें' बटन पर क्लिक करें. इसके बाद, BigQuery डेटासेट में उस Pricing_CDM डेटासेट पर जाएं जिसे आपने पिछले चरण में बनाया था और CDM_Pricing टेबल चुनें. पुष्टि करें कि हर बार चलाई जाने वाली इस टेबल में जोड़ें पर सही का निशान लगा है. इसके बाद, जोड़ें पर क्लिक करके सेटिंग सेव करें पर क्लिक करें.
  2. "शेड्यूल किए गए डेस्टिनेशन" में बदलाव करना

जानकारी वाले पैनल में, 'शेड्यूल किए गए डेस्टिनेशन' सेक्शन में, बदलाव करें पर क्लिक करें.

ये सेटिंग, मैन्युअल डेस्टिनेशन से ली गई हैं. इनमें आपको कोई बदलाव करने की ज़रूरत नहीं है. 'सेटिंग सेव करें' पर क्लिक करें.

5. डेटा का स्टैंडर्ड तय करें

दिए गए फ़्लो यूनियन, फ़ॉर्मैट, और ट्रांज़ैक्शन के डेटा को साफ़ करते हैं. इसके बाद, रिपोर्ट के लिए नतीजे को कंपनी के ब्यौरे और कीमत के बारे में एग्रीगेट किए गए डेटा के साथ जोड़ दिया जाता है. यहां आपको फ़्लो के उन कॉम्पोनेंट के बारे में बताया जाएगा जिन्हें नीचे दी गई इमेज में देखा जा सकता है.

a033de41c68acc8b.png

6. लेन-देन के डेटा की रेसिपी के बारे में जानें

सबसे पहले, आपको यह पता चलेगा कि लेन-देन का डेटा तैयार करने के लिए, लेन-देन का डेटा तैयार करने वाली रेसिपी में क्या होता है. फ़्लो दृश्य में लेन-देन डेटा ऑब्जेक्ट पर क्लिक करें, विवरण पैनल पर, रेसिपी संपादित करें बटन पर क्लिक करें.

इसके बाद, ट्रांसफ़ॉर्मर पेज खुलेगा. इस पर डिटेल पैनल में रेसिपी दिखेगी. रेसिपी में, डेटा में बदलाव करने के सभी चरण शामिल होते हैं. हर एक चरण पर क्लिक करके, रेसिपी में इस खास जगह पर डेटा की स्थिति को देखा जा सकता है.

रेसिपी के हर चरण के लिए, 'ज़्यादा' मेन्यू पर क्लिक करके, 'चुने गए पर जाएं' या 'बदलाव करें' को भी चुना जा सकता है. इससे यह पता लगाया जा सकता है कि ट्रांसफ़ॉर्मेशन की प्रोसेस कैसे काम करती है.

  1. यूनियन ट्रांज़ैक्शन: हर महीने की जानकारी देने वाली अलग-अलग शीट में सेव किए गए लेन-देन से जुड़े डेटा की रेसिपी यूनियन के लेन-देन का पहला चरण.
  2. ग्राहक के ब्यौरे के लिए स्टैंडर्ड तय करें: रेसिपी के अगले चरण में, ग्राहक के ब्यौरे के लिए स्टैंडर्ड तय किया जाता है. इसका मतलब है कि ग्राहक के नाम थोड़े-बहुत बदलावों के साथ एक जैसे हो सकते हैं. इसलिए, हम उन्हें नाम के मुताबिक सामान्य बनाना चाहते हैं. रेसिपी में दो तरीके बताए गए हैं. सबसे पहले, यह स्टैंडर्ड एल्गोरिदम का इस्तेमाल करता है. इसे स्टैंडर्डाइज़ेशन के अलग-अलग विकल्पों की मदद से कॉन्फ़िगर किया जा सकता है. जैसे, "मिलती-जुलती स्ट्रिंग" जहां सभी वर्णों वाली वैल्यू को एक साथ ग्रुप किया जाता है या "उच्चारण" कहा जाता है जहां एक जैसे लगने वाली वैल्यू को एक साथ ग्रुप किया जाता है. इसके अलावा, कंपनी का आईडी इस्तेमाल करके, ऊपर बताई गई BigQuery टेबल में, कंपनी का ब्यौरा देखने का विकल्प भी मौजूद है.

डेटा को साफ़ करने और उसे फ़ॉर्मैट करने के लिए लागू की जाने वाली अन्य तकनीकों के बारे में जानने के लिए, रेसिपी के बारे में ज़्यादा जानें. इन तकनीकों में शामिल हैं: पंक्तियां मिटाना, पैटर्न के आधार पर फ़ॉर्मैट करना, डेटा को लुकअप से बेहतर बनाना, छूटी हुई वैल्यू को हैंडल करना या अनचाहे वर्णों को बदलना.

7. प्रॉडक्ट की कीमत के डेटा की रेसिपी एक्सप्लोर करें

इसके बाद, यह पता लगाया जा सकता है कि प्रॉडक्ट की कीमत के डेटा वाली रेसिपी में क्या होता है. यह रेसिपी, पहले से तैयार किए गए ट्रांज़ैक्शन डेटा को कीमत के एग्रीगेट किए गए डेटा के साथ जोड़ती है.

ट्रांसफ़ॉर्मर पेज को बंद करने और फ़्लो व्यू पर वापस जाने के लिए पेज के सबसे ऊपर मौजूद, ऑप्टिमाइज़ करने के डिज़ाइन करने के पैटर्न को ऑप्टिमाइज़ करने पर क्लिक करें. इसके बाद, 'प्रॉडक्ट की कीमत का डेटा' ऑब्जेक्ट पर क्लिक करें और 'रेसिपी में बदलाव करें' पर क्लिक करें.

  1. हर महीने की कीमत वाले कॉलम को पिवट से हटाएं: दो से तीन चरणों के बीच की रेसिपी पर क्लिक करें और देखें कि पिवट से आगे बढ़ें चरण से पहले, डेटा कैसा दिखता है. आपको पता चलेगा कि डेटा में हर महीने के लिए, एक अलग कॉलम में ट्रांज़ैक्शन वैल्यू शामिल होती है: Jan Fev Mar. यह फ़ॉर्मैट ऐसा फ़ॉर्मैट नहीं है जो SQL में एग्रीगेशन (जैसे, कुल, औसत लेन-देन) का कैलकुलेशन लागू करने के लिए आसान नहीं है. डेटा को पिवट नहीं करना चाहिए, ताकि हर कॉलम, BigQuery टेबल में एक पंक्ति बन जाए. यह रेसिपी हर महीने के लिए तीन कॉलम को एक लाइन में बदलने के लिए पिवट फ़ंक्शन का इस्तेमाल करती है. इससे ग्रुप की गिनती को ज़्यादा आसानी से लागू किया जा सकता है.
  2. क्लाइंट, प्रॉडक्ट, और तारीख के हिसाब से औसत ट्रांज़ैक्शन वैल्यू कैलकुलेट करना: हम हर क्लाइंट, प्रॉडक्ट, और डेटा के लिए ट्रांज़ैक्शन की औसत वैल्यू कैलकुलेट करना चाहते हैं. हम एग्रीगेट फ़ंक्शन का इस्तेमाल करके, एक नई टेबल (विकल्प "नई टेबल के रूप में ग्रुप करें") जनरेट कर सकते हैं. इस स्थिति में, डेटा को ग्रुप लेवल पर एग्रीगेट किया जाता है और हम हर एक ट्रांज़ैक्शन की जानकारी खो देते हैं. इसके अलावा, हम ब्यौरे और एग्रीगेट की गई वैल्यू, दोनों को एक ही डेटासेट में रखने का फ़ैसला ले सकते हैं. जैसे, "नए कॉलम के तौर पर ग्रुप करें" विकल्प. इस अनुपात को लागू करना काफ़ी आसान हो जाता है. जैसे, कुल रेवेन्यू में प्रॉडक्ट कैटगरी का % योगदान. इस तरीके को आज़माने के लिए, रेसिपी के सातवें चरण में बदलाव करें. इसके बाद, "नई टेबल के तौर पर इसके हिसाब से ग्रुप करें" विकल्प को चुनें या "नए कॉलम के तौर पर ग्रुप करें" ताकि अंतर को देखा जा सके.
  3. कीमत तय करने की तारीख में शामिल हों: आखिर में, join का इस्तेमाल करके कई डेटासेट को एक बड़े डेटासेट में जोड़कर शुरुआती डेटासेट में जोड़ा जाता है. इस चरण में, कीमत तय करने के डेटा को ‘Pricing Data.Product Code' पर आधारित लेन-देन वाला डेटा रेसिपी के आउटपुट से जोड़ा जाता है = लेन-देन का डेटा.SKU' और ‘Pricing Data.Price Date' और = ‘लेन-देन का डेटा.फ़िस्कल की तारीख'

Dataprep की मदद से जिन ट्रांसफ़ॉर्मेशन ऐक्शन को लागू किया जा सकता है उनके बारे में ज़्यादा जानने के लिए, Trifacta Data Wrangling चीट शीट देखें

8. स्कीमा मैपिंग रेसिपी के बारे में जानें

आखिरी रेसिपी, स्कीमा मैपिंग यह पक्का करती है कि मिलने वाली सीडीएम टेबल, मौजूदा BigQuery आउटपुट टेबल के स्कीमा से मैच करती हो. यहां, रैपिड टारगेट फ़ंक्शन का इस्तेमाल, डेटा स्ट्रक्चर को फिर से फ़ॉर्मैट करने के लिए किया जाता है, ताकि डेटा को फिर से फ़ॉर्मैट किया जा सके. ऐसा करने के लिए, फ़ज़ी मैचिंग का इस्तेमाल करके BigQuery टेबल को मैच किया जाता है. ऐसा करके, स्कीमा की तुलना की जाती है और अपने-आप होने वाले बदलावों को लागू किया जाता है.

9. एक संरचना में मर्ज करें

सोर्स और डेस्टिनेशन कॉन्फ़िगर करने के साथ-साथ फ़्लो के चरणों को एक्सप्लोर करने के बाद, सीडीएम टेबल को बदलने और उसे BigQuery में लोड करने के लिए, फ़्लो को चलाया जा सकता है.

  1. स्कीमा मैपिंग आउटपुट चलाएं: फ़्लो व्यू में, स्कीमा मैपिंग आउटपुट ऑब्जेक्ट चुनें और "Run" पर क्लिक करें बटन पर क्लिक करें. "Trifacta Photon" चुनें एनवायरमेंट चल रहा है और रेसिपी से जुड़ी गड़बड़ियों को अनदेखा करें से सही का निशान हटाएं. फिर चलाएं बटन पर क्लिक करें. अगर दी गई BigQuery टेबल मौजूद है, तो Dataprep नई पंक्तियां जोड़ेगा. ऐसा न होने पर, यह एक नई टेबल बना देगी.
  2. जॉब की स्थिति देखें: Dataprep अपने-आप 'रन जॉब' पेज को खोलता है, ताकि आप काम पूरा होने पर नज़र रख सकें. आगे बढ़ने और BigQuery टेबल लोड होने में कुछ मिनट लगेंगे. काम पूरा होने पर, कीमत तय करने वाला सीडीएम आउटपुट, BigQuery में विश्लेषण के लिए तैयार, व्यवस्थित, और नॉर्मलाइज़ किए गए फ़ॉर्मैट में लोड किया जाएगा.

10. आंकड़े दिखाना और एमएल/एआई

Analytics के लिए ज़रूरी शर्तें

दिलचस्प नतीजों वाले कुछ आंकड़े और अनुमानित मॉडल तैयार करने के लिए, हमने एक ऐसा डेटा सेट बनाया है जो बड़ा और काम का है. इसकी मदद से, अहम जानकारी खोजी जा सकती है. इस गाइड को जारी रखने से पहले, आपको यह डेटा अपने BigQuery डेटासेट में अपलोड करना होगा.

'+ टेबल बनाएं' बटन पर क्लिक करें और ये पैरामीटर तय करें:

  • अपलोड करके टेबल बनाएं और CDM_Pricing_ large_Table.csv फ़ाइल चुनें
  • स्कीमा अपने-आप पता लगाता है, स्कीमा और इनपुट पैरामीटर की जांच करता है
  • बेहतर विकल्प, प्राथमिकता लिखें, टेबल को ओवरराइट करें

ff9ec8b9f580b139.png

  • 'टेबल बनाएं' पर क्लिक करें

टेबल बनने और डेटा अपलोड होने के बाद, BigQuery के लिए Google Console में, आपको इस तरह की नई टेबल का ब्यौरा दिखेगा. 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) 

जैसे

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 टाइम सीरीज़ का अनुमान लगाने वाला मॉडल बनाया जा सकता है. इससे, बेचे जाने वाले हर आइटम की संख्या का अनुमान लगाया जा सकता है.

  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 फ़्लो का इस्तेमाल करके शुरुआत से शुरू करें.
  2. कीमत के अपने डेटासेट से कनेक्ट करें. Excel, CSV, Google Sheets, और JSON जैसे फ़ाइल फ़ॉर्मैट, Dataprep पर नेटिव तौर पर काम करते हैं. Dataprep कनेक्टर का इस्तेमाल करके, अन्य सिस्टम से भी कनेक्ट किया जा सकता है.
  3. अपनी डेटा ऐसेट को ट्रांसफ़ॉर्मेशन की उन अलग-अलग कैटगरी में भेजें जिनकी आपने पहचान की है. हर कैटगरी के लिए, एक रेसिपी बनाएं. डेटा को पूरी तरह बदलने और अपनी रेसिपी लिखने के लिए, इस डिज़ाइन पैटर्न में बताए गए फ़्लो से प्रेरणा लें. अगर आपको कोई समस्या नहीं होती है, तो Dataprep स्क्रीन पर सबसे नीचे बाईं ओर मौजूद चैट डायलॉग में मदद के लिए कहें.
  4. अपनी रेसिपी को BigQuery इंस्टेंस से कनेक्ट करें. आपको BigQuery में, मैन्युअल तरीके से टेबल बनाने के बारे में परेशान होने की ज़रूरत नहीं है. Dataprep अपने-आप ही इसका ध्यान रखेगा. हमारा सुझाव है कि आप अपने फ़्लो में आउटपुट जोड़ते समय, एक मैन्युअल डेस्टिनेशन चुनें और हर बार रन पर टेबल छोड़ें. हर रेसिपी को तब तक अलग-अलग टेस्ट करें, जब तक आपको उम्मीद के मुताबिक नतीजे न मिल जाएं. आपकी जांच पूरी होने के बाद, पिछले डेटा को मिटाए जाने से बचने के लिए, आपको हर बार चलाए जाने पर आउटपुट को टेबल में 'जोड़ें' में बदलना होगा.
  5. आपके पास शेड्यूल के हिसाब से चलाने के लिए, फ़्लो को जोड़ने का विकल्प भी होता है. अगर आपको प्रोसेस को लगातार चलाना है, तो यह तरीका कारगर साबित होता है. अपडेट करने की फ़्रीक्वेंसी के हिसाब से, हर दिन या हर घंटे जवाब लोड करने के लिए, शेड्यूल तय किया जा सकता है. अगर फ़्लो को किसी शेड्यूल पर चलाना है, तो आपको हर रेसिपी के लिए, फ़्लो में शेड्यूल डेस्टिनेशन आउटपुट जोड़ना होगा.

BigQuery मशीन लर्निंग मॉडल में बदलाव करें

इस ट्यूटोरियल में ARIMA मॉडल का एक नमूना दिया गया है. हालांकि, कुछ ऐसे अतिरिक्त पैरामीटर होते हैं जिन्हें मॉडल को डेवलप करते समय कंट्रोल किया जा सकता है. इससे, यह पक्का किया जा सकता है कि वह आपके डेटा के लिए सही है या नहीं. आप हमारे दस्तावेज़ यहां उदाहरण में ज़्यादा जानकारी देख सकते हैं. इसके अलावा, अपने मॉडल के बारे में ज़्यादा जानकारी पाने और ऑप्टिमाइज़ेशन से जुड़े फ़ैसले लेने के लिए, BigQuery ML.ARIMA_EVALUATE, ML.ARIMA_COEFFICIENTS, और ML.EXPLAIN_FORECAST फ़ंक्शन का भी इस्तेमाल किया जा सकता है.

Looker रिपोर्ट में बदलाव करना

ऊपर बताए गए अपने प्रोजेक्ट में LookML को इंपोर्ट करने के बाद, अतिरिक्त फ़ील्ड जोड़ने, कैलकुलेशन या उपयोगकर्ता के डाले गए पैरामीटर में बदलाव करने, और डैशबोर्ड पर विज़ुअलाइज़ेशन को अपने कारोबार की ज़रूरतों के हिसाब से बदलने के लिए, सीधे तौर पर बदलाव किया जा सकता है. LookML में यहां डेवलप करने और Looker में डेटा को विज़ुअलाइज़ करने के बारे में यहां जानकारी देखी जा सकती है.

15. बधाई हो

अब आपको अपने खुदरा प्रॉडक्ट को ऑप्टिमाइज़ करने के ज़रूरी चरणों के बारे में पता है कीमत तय करना!

आगे क्या होगा?

अन्य स्मार्ट आंकड़ों के रेफ़रंस पैटर्न एक्सप्लोर करें

आगे पढ़ें