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

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

आपको क्या बनाने को मिलेगा
यहां हम आपको बताएंगे कि कीमत ऑप्टिमाइज़ करने के लिए डेटा वेयरहाउस कैसे डिज़ाइन करें, समय के साथ डेटा तैयार करने की प्रोसेस को अपने-आप होने वाली प्रोसेस में कैसे बदलें, प्रॉडक्ट की कीमत में होने वाले बदलावों के असर का अनुमान लगाने के लिए मशीन लर्निंग का इस्तेमाल कैसे करें, और अपनी टीम को कार्रवाई करने लायक अहम जानकारी देने के लिए रिपोर्ट कैसे तैयार करें.
आपको क्या सीखने को मिलेगा
- कीमत के विश्लेषण के लिए, Dataprep को डेटा सोर्स से कैसे कनेक्ट करें. यह डेटा सोर्स, रिलेशनल डेटाबेस, फ़्लैट फ़ाइलों, Google Sheets, और इस्तेमाल किए जा सकने वाले अन्य ऐप्लिकेशन में सेव किया जा सकता है.
- अपने BigQuery डेटा वेयरहाउस में सीडीएम टेबल बनाने के लिए, Dataprep फ़्लो बनाने का तरीका.
- आने वाले समय में मिलने वाले रेवेन्यू का अनुमान लगाने के लिए, BigQuery ML का इस्तेमाल कैसे करें.
- कीमतों और बिक्री के पुराने डेटा के साथ-साथ रुझानों का विश्लेषण करने के लिए, Looker में रिपोर्ट कैसे बनाएं. साथ ही, आने वाले समय में कीमतों में होने वाले बदलावों के असर को कैसे समझें.
आपको किन चीज़ों की ज़रूरत होगी
- बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट. यह पुष्टि करने का तरीका जानें कि आपके प्रोजेक्ट के लिए बिलिंग चालू है या नहीं.
- आपके प्रोजेक्ट में BigQuery चालू होना चाहिए. यह सुविधा, नए प्रोजेक्ट में अपने-आप चालू हो जाती है. अगर ऐसा नहीं है, तो किसी मौजूदा प्रोजेक्ट के लिए इसे चालू करें. Cloud Console से BigQuery का इस्तेमाल शुरू करने के बारे में यहां ज़्यादा जानें.
- आपके प्रोजेक्ट पर Dataprep भी चालू होना चाहिए. Dataprep को Google Console से चालू किया जाता है. इसके लिए, Big Data सेक्शन में बाईं ओर मौजूद नेविगेशन मेन्यू में जाएं. इसे चालू करने के लिए, साइन अप करने का तरीका अपनाएं.
- अपने Looker डैशबोर्ड सेट अप करने के लिए, आपके पास Looker इंस्टेंस पर डेवलपर ऐक्सेस होना चाहिए. बिना किसी शुल्क के आज़माने का अनुरोध करने के लिए, कृपया यहां हमारी टीम से संपर्क करें. इसके अलावा, हमारे सैंपल डेटा पर डेटा पाइपलाइन के नतीजों को एक्सप्लोर करने के लिए, हमारे सार्वजनिक डैशबोर्ड का इस्तेमाल करें.
- स्ट्रक्चर्ड क्वेरी लैंग्वेज (एसक्यूएल) का अनुभव होना चाहिए. साथ ही, इनके बारे में बुनियादी जानकारी होनी चाहिए: Dataprep by Trifacta, BigQuery, Looker
2. BigQuery में सीडीएम बनाना
इस सेक्शन में, कॉमन डेटा मॉडल (सीडीएम) बनाया जाता है. यह मॉडल, उस जानकारी का एक साथ व्यू दिखाता है जिसका आपको विश्लेषण करना है और कीमत में बदलाव का सुझाव देना है.
- 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 शीट. इसमें हर लेन-देन के लिए एक लाइन होती है. इसमें बेचे गए हर प्रॉडक्ट की संख्या, कुल बिक्री, और उससे जुड़ी लागत जैसी जानकारी होती है.
- प्रॉडक्ट की कीमत वाली 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 का सैंपल फ़्लो इंपोर्ट करना होगा. इसका इस्तेमाल, पिछले सेक्शन में दिए गए उदाहरण वाले डेटासेट को ट्रांसफ़ॉर्म और यूनीफ़ाई करने के लिए किया जाता है. फ़्लो, एक पाइपलाइन या ऐसा ऑब्जेक्ट होता है जो डेटासेट और रेसिपी को एक साथ लाता है. इनका इस्तेमाल डेटा को ट्रांसफ़ॉर्म करने और उन्हें जोड़ने के लिए किया जाता है.
- GitHub से कीमत ऑप्टिमाइज़ करने वाले पैटर्न का फ़्लो पैकेज डाउनलोड करें. हालांकि, इसे अनज़िप न करें. इस फ़ाइल में, कीमत ऑप्टिमाइज़ करने के लिए डिज़ाइन पैटर्न का फ़्लो शामिल है. इसका इस्तेमाल, सैंपल डेटा को बदलने के लिए किया जाता है.
- Dataprep में, बाईं ओर मौजूद नेविगेशन बार में, फ़्लो आइकॉन पर क्लिक करें. इसके बाद, फ़्लो व्यू में जाकर, संदर्भ मेन्यू से इंपोर्ट करें चुनें. फ़्लो इंपोर्ट करने के बाद, उसे देखने और उसमें बदलाव करने के लिए चुना जा सकता है.

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

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

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

6. लेन-देन के डेटा की रेसिपी के बारे में जानें
सबसे पहले, हम यह जानेंगे कि लेन-देन के डेटा को तैयार करने के लिए इस्तेमाल की जाने वाली, लेन-देन के डेटा की रेसिपी में क्या होता है. फ़्लो व्यू में मौजूद लेन-देन के डेटा ऑब्जेक्ट पर क्लिक करें. इसके बाद, जानकारी वाले पैनल में जाकर, रेसिपी में बदलाव करें बटन पर क्लिक करें.
इससे, ट्रांसफ़ॉर्मर पेज खुलता है. इसमें ज़्यादा जानकारी वाले पैनल में रेसिपी दिखती है. रेसिपी में, डेटा पर लागू किए गए सभी ट्रांसफ़ॉर्मेशन चरण शामिल होते हैं. रेसिपी में एक चरण से दूसरे चरण पर जाने के लिए, हर चरण के बीच में क्लिक करें. इससे आपको रेसिपी में इस खास जगह पर डेटा की स्थिति के बारे में पता चलेगा.
इसके अलावा, हर रेसिपी चरण के लिए ज़्यादा मेन्यू पर क्लिक करके, चुने गए पर जाएं या इसमें बदलाव करें को चुनें. इससे आपको यह पता चलेगा कि डेटा ट्रांसफ़ॉर्मेशन कैसे काम करता है.
- यूनियन लेन-देन: लेन-देन के डेटा की रेसिपी में पहला चरण, हर महीने के हिसाब से अलग-अलग शीट में सेव किए गए लेन-देन को यूनियन करना है.
- ग्राहकों के ब्यौरे को स्टैंडर्ड बनाना: रेसिपी का अगला चरण, ग्राहकों के ब्यौरे को स्टैंडर्ड बनाता है. इसका मतलब है कि ग्राहकों के नाम मिलते-जुलते हो सकते हैं. हम चाहते हैं कि उन्हें एक ही नाम के तौर पर दिखाया जाए. इस रेसिपी में, दो संभावित तरीके बताए गए हैं. सबसे पहले, यह स्टैंडर्डाइज़ेशन एल्गोरिदम का इस्तेमाल करता है. इसे स्टैंडर्डाइज़ेशन के अलग-अलग विकल्पों के साथ कॉन्फ़िगर किया जा सकता है. जैसे, "मिलती-जुलती स्ट्रिंग", जहां एक जैसे वर्ण वाली वैल्यू को एक साथ क्लस्टर किया जाता है या "उच्चारण", जहां एक जैसी आवाज़ वाली वैल्यू को एक साथ क्लस्टर किया जाता है. इसके अलावा, कंपनी के आईडी का इस्तेमाल करके, ऊपर दी गई BigQuery टेबल में कंपनी के बारे में जानकारी खोजें.
डेटा को साफ़ करने और फ़ॉर्मैट करने के लिए, रेसिपी में जाकर अन्य तकनीकों के बारे में जानें: पंक्तियां मिटाना, पैटर्न के आधार पर फ़ॉर्मैट करना, लुकअप की मदद से डेटा को बेहतर बनाना, छूटी हुई वैल्यू को मैनेज करना या अवांछित वर्णों को बदलना.
7. प्रॉडक्ट की कीमत के डेटा की रेसिपी एक्सप्लोर करना
इसके बाद, यह देखा जा सकता है कि प्रॉडक्ट की कीमत की जानकारी देने वाले डेटा की रेसिपी में क्या होता है. यह रेसिपी, तैयार किए गए लेन-देन के डेटा को कीमत की एग्रीगेट की गई जानकारी देने वाले डेटा से जोड़ती है.
Transformer पेज को बंद करने और फ़्लो व्यू पर वापस जाने के लिए, पेज में सबसे ऊपर मौजूद PRICING OPTIMIZATION DESIGN PATTERN पर क्लिक करें. इसके बाद, प्रॉडक्ट की कीमत की जानकारी वाले डेटा ऑब्जेक्ट पर क्लिक करें और रेसिपी में बदलाव करें.
- हर महीने के हिसाब से कीमत वाले कॉलम को अनपिवट करना: दूसरे और तीसरे चरण के बीच मौजूद रेसिपी पर क्लिक करें. इससे आपको पता चलेगा कि अनपिवट करने से पहले डेटा कैसा दिखता है. आपको दिखेगा कि डेटा में, हर महीने के लिए लेन-देन की वैल्यू अलग-अलग कॉलम में दी गई है: जनवरी, फ़रवरी, मार्च. यह ऐसा फ़ॉर्मैट नहीं है जिसमें एसक्यूएल में एग्रीगेशन (यानी कि कुल, औसत लेन-देन) की कैलकुलेशन आसानी से की जा सके. डेटा को अनपिवट किया जाना चाहिए, ताकि हर कॉलम, BigQuery टेबल में एक लाइन बन जाए. इस रेसिपी में, unpivot फ़ंक्शन का इस्तेमाल किया जाता है. इससे हर महीने के लिए, तीन कॉलम को एक पंक्ति में बदला जा सकता है. इससे ग्रुप कैलकुलेशन को आसानी से लागू किया जा सकता है.
- क्लाइंट, प्रॉडक्ट, और तारीख के हिसाब से लेन-देन की औसत वैल्यू का हिसाब लगाएं: हमें हर क्लाइंट, प्रॉडक्ट, और तारीख के हिसाब से लेन-देन की औसत वैल्यू का हिसाब लगाना है. हम एग्रीगेट फ़ंक्शन का इस्तेमाल करके, नई टेबल जनरेट कर सकते हैं. इसके लिए, "नई टेबल के तौर पर ग्रुप करें" विकल्प चुनें. ऐसे में, डेटा को ग्रुप लेवल पर इकट्ठा किया जाता है और हमें हर लेन-देन की जानकारी नहीं मिलती. इसके अलावा, हम दोनों तरह की जानकारी और एग्रीगेट की गई वैल्यू को एक ही डेटासेट में रख सकते हैं.इसके लिए, "नए कॉलम के तौर पर ग्रुप बनाएं" विकल्प का इस्तेमाल करें. इससे अनुपात (जैसे, कुल रेवेन्यू में प्रॉडक्ट कैटगरी का योगदान) लागू करना बहुत आसान हो जाता है. इस सुविधा को आज़माने के लिए, रेसिपी के सातवें चरण में बदलाव करें. इसके बाद, "नई टेबल के तौर पर ग्रुप करें" या "नए कॉलम के तौर पर ग्रुप करें" विकल्प चुनें. इससे आपको दोनों विकल्पों के बीच का अंतर पता चलेगा.
- कीमत की तारीख जोड़ें: आखिर में, जोड़ें का इस्तेमाल करके, कई डेटासेट को एक बड़े डेटासेट में मिलाया जाता है. इससे शुरुआती डेटासेट में कॉलम जुड़ जाते हैं. इस चरण में, कीमत की जानकारी वाले डेटा को ट्रांज़ैक्शन डेटा रेसिपी के आउटपुट के साथ जोड़ा जाता है. यह काम, ‘कीमत की जानकारी वाला डेटा.प्रॉडक्ट कोड' = ट्रांज़ैक्शन डेटा.एसकेयू' और ‘कीमत की जानकारी वाला डेटा.कीमत की तारीख' = ‘ट्रांज़ैक्शन डेटा.वित्तीय तारीख' के आधार पर किया जाता है
Dataprep की मदद से लागू किए जा सकने वाले ट्रांसफ़ॉर्मेशन के बारे में ज़्यादा जानने के लिए, Trifacta Data Wrangling Cheat Sheet देखें
8. स्कीमा मैपिंग की रेसिपी के बारे में ज़्यादा जानें
आखिरी रेसिपी, स्कीमा मैपिंग यह पक्का करती है कि नतीजे के तौर पर मिली सीडीएम टेबल का स्कीमा, BigQuery की मौजूदा आउटपुट टेबल के स्कीमा से मैच करता हो. यहां, Rapid Target फ़ंक्शन का इस्तेमाल किया गया है. यह फ़ंक्शन, डेटा स्ट्रक्चर को BigQuery टेबल से मैच करने के लिए फिर से फ़ॉर्मैट करता है. इसके लिए, फ़ज़ी मैचिंग का इस्तेमाल किया जाता है, ताकि दोनों स्कीमा की तुलना की जा सके और अपने-आप होने वाले बदलाव लागू किए जा सकें.
9. एक स्ट्रक्चर में जोड़ना
सोर्स और डेस्टिनेशन कॉन्फ़िगर करने के बाद, फ़्लो के चरणों को एक्सप्लोर किया जा सकता है. इसके बाद, सीडीएम टेबल को BigQuery में ट्रांसफ़ॉर्म और लोड करने के लिए फ़्लो चलाया जा सकता है.
- स्कीमा मैपिंग का आउटपुट जनरेट करना: फ़्लो व्यू में, स्कीमा मैपिंग का आउटपुट ऑब्जेक्ट चुनें. इसके बाद, ज़्यादा जानकारी वाले पैनल में मौजूद "चलाएं" बटन पर क्लिक करें. "Trifacta Photon" रनिंग एनवायरमेंट चुनें और 'रेसिपी की गड़बड़ियों को अनदेखा करें' से सही का निशान हटाएं. इसके बाद, 'चलाएं' बटन पर क्लिक करें. अगर बताई गई BigQuery टेबल मौजूद है, तो Dataprep नई लाइनें जोड़ देगा. अगर टेबल मौजूद नहीं है, तो वह एक नई टेबल बना देगा.
- जॉब का स्टेटस देखें: Dataprep, 'जॉब चलाएं' पेज को अपने-आप खोल देता है, ताकि जॉब के एक्ज़ीक्यूशन को मॉनिटर किया जा सके. BigQuery टेबल को लोड होने में कुछ मिनट लगेंगे. जॉब पूरा होने के बाद, कीमत का सीडीएम आउटपुट BigQuery में लोड हो जाएगा. यह साफ़-सुथरे, स्ट्रक्चर्ड, और सामान्य फ़ॉर्मैट में होगा, ताकि इसका विश्लेषण किया जा सके.
10. ऐनलिटिक्स और एमएल/एआई की सुविधाएं उपलब्ध कराना
Analytics के लिए ज़रूरी शर्तें
हमने एक बड़ा डेटा सेट बनाया है, ताकि कुछ दिलचस्प नतीजों के साथ अनुमान लगाने वाले मॉडल और आंकड़ों का विश्लेषण किया जा सके. यह डेटा सेट, खास जानकारी ढूंढने के लिए काम का है. इस गाइड को जारी रखने से पहले, आपको यह डेटा अपने BigQuery डेटासेट में अपलोड करना होगा.
- GitHub की इस रिपॉज़िटरी से बड़ा डेटा सेट डाउनलोड करें
- BigQuery के लिए Google Console में, अपने प्रोजेक्ट और CDM_Pricing डेटासेट पर जाएं.
- मेन्यू पर क्लिक करें और डेटासेट खोलें. हम लोकल फ़ाइल से डेटा लोड करके टेबल बनाएंगे.
+ टेबल बनाएं बटन पर क्लिक करें और ये पैरामीटर तय करें:
- अपलोड की गई फ़ाइल से टेबल बनाएं और CDM_Pricing_Large_Table.csv फ़ाइल चुनें
- स्कीमा का अपने-आप पता लगाना, स्कीमा और इनपुट पैरामीटर की जांच करना
- ऐडवांस विकल्प, लिखने की प्राथमिकता, टेबल को ओवरराइट करें

- 'टेबल बनाएं' पर क्लिक करें
टेबल बन जाने और डेटा अपलोड हो जाने के बाद, आपको Google Console for 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 इंस्टेंस है, तो इस पैटर्न के लिए कीमत के डेटा का विश्लेषण शुरू करने के लिए, इस 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% से कम हो गई है. ऐसा इसलिए, क्योंकि इसका मतलब यह हो सकता है कि आपको कीमतें कम करनी चाहिए.

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

आखिर में, रिपोर्ट में सबसे नीचे आपको हमारे BigQueryML मॉडल के नतीजे दिखेंगे. Looker डैशबोर्ड में सबसे ऊपर मौजूद फ़िल्टर का इस्तेमाल करके, आसानी से पैरामीटर डाले जा सकते हैं. इससे ऊपर बताए गए तरीके से अलग-अलग स्थितियों को सिम्युलेट किया जा सकता है. उदाहरण के लिए, यह देखना कि अगर ऑर्डर की संख्या अनुमानित वैल्यू के 75% तक कम हो जाती है और सभी प्रॉडक्ट की कीमत में 25% की बढ़ोतरी हो जाती है, तो क्या होगा. जैसा कि यहां दिखाया गया है

यह LookML में मौजूद पैरामीटर की मदद से काम करता है. इन पैरामीटर को सीधे तौर पर यहां मौजूद मेज़र कैलकुलेशन में शामिल किया जाता है. इस तरह की रिपोर्टिंग की मदद से, सभी प्रॉडक्ट के लिए सबसे सही कीमत तय की जा सकती है. इसके अलावा, किसी खास प्रॉडक्ट के बारे में ज़्यादा जानकारी पाई जा सकती है. इससे यह तय करने में मदद मिलती है कि आपको किस प्रॉडक्ट की कीमत बढ़ानी चाहिए या कम करनी चाहिए. साथ ही, इससे यह भी पता चलता है कि कुल और शुद्ध राजस्व पर इसका क्या असर पड़ेगा.
14. आपके प्राइसिंग सिस्टम के साथ काम करना चाहिए
इस ट्यूटोरियल में, सैंपल डेटा सोर्स को बदला गया है. हालांकि, आपको अलग-अलग प्लैटफ़ॉर्म पर मौजूद कीमत की ऐसेट के लिए, डेटा से जुड़ी मिलती-जुलती समस्याएं आएंगी. कीमत की जानकारी देने वाली ऐसेट को एक्सपोर्ट करने के लिए अलग-अलग फ़ॉर्मैट (अक्सर xls, sheets, csv, txt, रिलेशनल डेटाबेस, कारोबार से जुड़े ऐप्लिकेशन) उपलब्ध होते हैं. ये फ़ॉर्मैट, खास जानकारी और ज़्यादा जानकारी वाले नतीजों के लिए होते हैं. इनमें से हर फ़ॉर्मैट को Dataprep से कनेक्ट किया जा सकता है. हमारा सुझाव है कि आप ऊपर दिए गए उदाहरणों की तरह, बदलाव से जुड़ी अपनी ज़रूरी शर्तों के बारे में बताएं. जब आपको स्पेसिफ़िकेशन के बारे में पूरी जानकारी मिल जाए और आपको यह पता चल जाए कि किस तरह के बदलाव करने हैं, तब Dataprep की मदद से उन्हें डिज़ाइन किया जा सकता है.
- Dataprep फ़्लो की एक कॉपी बनाएं. इसके लिए, फ़्लो के दाईं ओर मौजूद **... "**ज़्यादा" बटन पर क्लिक करें और डुप्लीकेट विकल्प चुनें. इसके बाद, अपनी पसंद के मुताबिक बदलाव करें. इसके अलावा, नए Dataprep फ़्लो का इस्तेमाल करके, शुरू से भी काम किया जा सकता है.
- अपने प्राइसिंग डेटासेट से कनेक्ट करें. Dataprep, Excel, CSV, Google Sheets, JSON जैसे फ़ाइल फ़ॉर्मैट के साथ काम करता है. Dataprep कनेक्टर का इस्तेमाल करके, अन्य सिस्टम से भी कनेक्ट किया जा सकता है.
- अपनी डेटा ऐसेट को ट्रांसफ़ॉर्मेशन की उन अलग-अलग कैटगरी में भेजें जिनकी आपने पहचान की है. हर कैटगरी के लिए, एक रेसिपी बनाओ. डेटा को बदलने और अपनी रेसिपी लिखने के लिए, इस डिज़ाइन पैटर्न में दिए गए फ़्लो से कुछ प्रेरणा लें. अगर आपको कोई समस्या आ रही है, तो चिंता न करें. Dataprep की स्क्रीन पर सबसे नीचे बाईं ओर मौजूद चैट डायलॉग में जाकर मदद मांगें.
- अपनी रेसिपी को BigQuery इंस्टेंस से कनेक्ट करें. आपको BigQuery में मैन्युअल तरीके से टेबल बनाने की ज़रूरत नहीं है. Dataprep आपके लिए यह काम अपने-आप कर देगा. हमारा सुझाव है कि जब आप अपने फ़्लो में आउटपुट जोड़ें, तो मैन्युअल डेस्टिनेशन चुनें और हर रन पर टेबल को छोड़ें. जब तक आपको मनमुताबिक नतीजे न मिल जाएं, तब तक हर रेसिपी को अलग-अलग टेस्ट करें. टेस्टिंग पूरी होने के बाद, हर रन पर आउटपुट को टेबल में जोड़ दिया जाएगा, ताकि पहले का डेटा न मिटे.
- आपके पास फ़्लो को शेड्यूल के हिसाब से चलाने का विकल्प होता है. अगर आपकी प्रोसेस को लगातार चालू रखने की ज़रूरत है, तो यह तरीका आपके काम आ सकता है. डेटा को हर दिन या हर घंटे लोड करने के लिए शेड्यूल सेट किया जा सकता है. यह इस बात पर निर्भर करता है कि आपको डेटा को कितनी बार अपडेट करना है. अगर आपको फ़्लो को शेड्यूल के हिसाब से चलाना है, तो आपको हर रेसिपी के लिए फ़्लो में शेड्यूल डेस्टिनेशन आउटपुट जोड़ना होगा.
BigQuery मशीन लर्निंग मॉडल में बदलाव करना
इस ट्यूटोरियल में, ARIMA मॉडल का एक सैंपल दिया गया है. हालांकि, मॉडल डेवलप करते समय आपके पास कुछ और पैरामीटर कंट्रोल करने का विकल्प होता है. इससे यह पक्का किया जा सकता है कि मॉडल आपके डेटा के हिसाब से सबसे सही हो. ज़्यादा जानकारी के लिए, यहां हमारे दस्तावेज़ में दिया गया उदाहरण देखें. इसके अलावा, अपने मॉडल के बारे में ज़्यादा जानकारी पाने और ऑप्टिमाइज़ेशन से जुड़े फ़ैसले लेने के लिए, BigQuery के ML.ARIMA_EVALUATE, ML.ARIMA_COEFFICIENTS, और ML.EXPLAIN_FORECAST फ़ंक्शन का इस्तेमाल किया जा सकता है.
Looker की रिपोर्ट में बदलाव करना
LookML को अपने प्रोजेक्ट में इंपोर्ट करने के बाद, ऊपर बताए गए तरीके से, सीधे तौर पर बदलाव किए जा सकते हैं. जैसे, अतिरिक्त फ़ील्ड जोड़े जा सकते हैं, कैलकुलेशन या उपयोगकर्ता के डाले गए पैरामीटर में बदलाव किया जा सकता है. इसके अलावा, डैशबोर्ड पर विज़ुअलाइज़ेशन में बदलाव करके, उन्हें अपने कारोबार की ज़रूरतों के हिसाब से बनाया जा सकता है. LookML में डेवलपमेंट करने के बारे में यहां और Looker में डेटा विज़ुअलाइज़ करने के बारे में यहां जानकारी दी गई है.
15. बधाई हो
अब आपको अपने खुदरा प्रॉडक्ट की कीमत को ऑप्टिमाइज़ करने के लिए ज़रूरी मुख्य चरणों के बारे में पता चल गया है!
आगे क्या करना है?
स्मार्ट ऐनलिटिक्स के अन्य रेफ़रंस पैटर्न एक्सप्लोर करना
इस बारे में और पढ़ें
- ब्लॉग यहां पढ़ें
- Dataprep के बारे में यहां ज़्यादा जानें
- BigQuery Machine Learning के बारे में यहां ज़्यादा जानें
- Looker के बारे में यहां ज़्यादा जानें