BigQuery और Looker का इस्तेमाल करके, Bigtable में क्रेडिट कार्ड के लेन-देन के डेटा का विश्लेषण करना और उसे विज़ुअलाइज़ करना

1. खास जानकारी

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

यह कोडलैब, तकनीकी जानकारी वाले उन उपयोगकर्ताओं के लिए है जो कमांड लाइन टूल और इवेंट स्ट्रीमिंग सेवाओं का इस्तेमाल करते हुए, Bigtable के बारे में जानते हैं.

426dc59200875a20.png

इस कोडलैब में, नीचे दिए गए कामों को करने का तरीका बताया गया है:

  • बदलाव की स्ट्रीम चालू करके Bigtable टेबल बनाएं.
  • BigQuery डेटासेट बनाएं.
  • डेटाफ़्लो टेंप्लेट Bigtable change streams to BigQuery. को डिप्लॉय करना
  • BigQuery में इवेंट स्ट्रीम के बारे में क्वेरी करें.
  • Looker की मदद से इवेंट स्ट्रीम को विज़ुअलाइज़ करें.

यह डायग्राम, उस सिस्टम का आर्किटेक्चर दिखाता है जिसे डिप्लॉय किया जाएगा.

336e940307d0e0a.png

2. प्रोजेक्ट सेटअप करना

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट बनाएं या कोई मौजूदा प्रोजेक्ट चुनें.

eb5309715175de69.png

  1. पक्का करें कि आपके Google Cloud प्रोजेक्ट के लिए बिलिंग चालू हो.
  2. Dataflow, Bigtable, BigQuery, Looker, और Cloud Storage के लिए ज़रूरी एपीआई चालू करने के लिए, पहले से भरी गई जानकारी वाले एपीआई को चालू करने वाले पेज पर जाएं.

3. BigQuery डेटासेट बनाना

बाद में, कोडलैब में BigQuery का इस्तेमाल करके डेटा का विश्लेषण किया जाएगा. अपनी डेटा पाइपलाइन के आउटपुट के लिए डेटासेट बनाने के लिए, इन निर्देशों का पालन करें.

  1. Google Cloud Console में, BigQuery पेज पर जाएं.
  2. एक्सप्लोरर पैनल में, अपने प्रोजेक्ट का नाम ढूंढें. इसके बाद, ओवरफ़्लो मेन्यू (प्रोजेक्ट आईडी के बगल में मौजूद तीन वर्टिकल बिंदु) पर क्लिक करें.
  3. डेटासेट बनाएं पर क्लिक करें.

122bc1a411b8dc63.png

  1. डेटासेट बनाएं पैनल में, ये काम करें:
  • डेटासेट आईडी के लिए, bigtable_bigquery_tutorial डालें.
  • बाकी डिफ़ॉल्ट सेटिंग को वैसा ही रहने दें.
  • डेटासेट बनाएं पर क्लिक करें.

4. बदलावों की स्ट्रीम चालू करके Bigtable टेबल बनाना

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

  1. Google Cloud Console में, Bigtable इंस्टेंस पेज पर जाएं.
  2. उस इंस्टेंस के आईडी पर क्लिक करें जिसे इस ट्यूटोरियल के लिए इस्तेमाल किया जा रहा है. अगर आपके पास कोई इंस्टेंस उपलब्ध नहीं है, तो अपने आस-पास के किसी इलाके में अपनी पसंद का नाम डालकर इंस्टेंस बनाएं. बाकी सभी चीज़ों के लिए, डिफ़ॉल्ट कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है.

a2e8de7b66dc42e.png

  1. बाएं नेविगेशन पैनल में, टेबल पर क्लिक करें.
  2. टेबल बनाएं पर क्लिक करें.

9c267c00f93747c4.png

  • टेबल को retail-database नाम दें.
  • transactions नाम की कॉलम फ़ैमिली जोड़ें.
  • बदलाव की स्ट्रीम चालू करें को चुनें.
  • ग़ैर-ज़रूरी डेटा इकट्ठा करने की नीति और डेटा के रखरखाव की अवधि को डिफ़ॉल्ट वैल्यू पर ही रहने दें.
  • बनाएं पर क्लिक करें.

696cd1399c354816.png

5. बदलाव की स्ट्रीम को कैप्चर करने के लिए, डेटा पाइपलाइन को शुरू करना

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

f4cd9d8faf10ce77.png

  1. Bigtable टेबल पेज पर, अपनी टेबल retail-database ढूंढें.
  2. स्ट्रीम बदलें कॉलम में, कनेक्ट करें पर क्लिक करें.
  3. Dataflow से कनेक्ट करें डायलॉग में BigQuery चुनें.
  4. डेटाफ़्लो जॉब बनाएं पर क्लिक करें.
  5. दिए गए पैरामीटर फ़ील्ड में, अपनी पैरामीटर वैल्यू डालें. आपको वैकल्पिक पैरामीटर देने की ज़रूरत नहीं है.
  • Cloud Bigtable ऐप्लिकेशन की प्रोफ़ाइल आईडी को default पर सेट करें.
  • BigQuery डेटासेट को bigtable_bigquery_tutorial पर सेट करें.
  1. फ़ाइल चलाएं पर क्लिक करें.
  2. आगे बढ़ने से पहले, काम की स्थिति के शुरू हो रहा है या चल रहा है तक इंतज़ार करें. काम के लिए सूची में जुड़ने में करीब पांच मिनट लग सकते हैं. पेज अपने-आप अपडेट हो जाएगा. यह टेंप्लेट, स्ट्रीमिंग जॉब बनाता है, ताकि Bigtable में लिखे गए नए डेटा को तब तक लगातार प्रोसेस किया जा सके, जब तक कि जॉब को मैन्युअल तरीके से बंद नहीं कर दिया जाता.

a04908b37c6fe96b.png

6. Bigtable में कुछ डेटा डालना

अब आपको अपनी Bigtable टेबल में, एक साल के क्रेडिट कार्ड लेन-देन की जानकारी डालनी होगी. इस डेटासेट के उदाहरण में, क्रेडिट कार्ड नंबर, व्यापारी/कंपनी/कारोबारी का नाम और आईडी, और रकम जैसी जानकारी शामिल है. क्रेडिट कार्ड प्रोसेस करने वाले किसी असल ऐप्लिकेशन में, यह डेटा हर लेन-देन के साथ रीयल टाइम में आपके डेटाबेस में स्ट्रीम होता रहेगा.

  1. Cloud Console के सबसे ऊपर दाएं कोने में मौजूद, बटन पर क्लिक करके Cloud Shell खोलें.

f6395329b04ecb64.png

  1. अगर आपसे कहा जाए, तो Cloud Shell को अनुमति देने के लिए प्रॉम्प्ट स्वीकार करें.
  2. डेटासेट डाउनलोड करें.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. कमांड लाइन में अपने एनवायरमेंट वैरिएबल सेट करना
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. retail-database टेबल में क्रेडिट कार्ड से किए गए कई लेन-देन लिखने के लिए, cbt सीएलआई का इस्तेमाल करें.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

आउटपुट में यह दिखेगा

Done importing 10000 rows.

7. BigQuery में बदलाव के लॉग देखना

  1. Google Cloud Console में, BigQuery पेज पर जाएं.
  2. एक्सप्लोरर पैनल में, अपने प्रोजेक्ट और डेटासेट bigtable_bigquery_tutorial को बड़ा करें.
  3. टेबल retail-database_changelog पर क्लिक करें. अगर टेबल मौजूद नहीं है, तो आपको डेटासेट को रीफ़्रेश करना पड़ सकता है.
  4. बदलाव लॉग देखने के लिए, झलक देखें पर क्लिक करें.

aa97ff01f944832.png

कुछ क्वेरी डालकर देखें

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

किसी एक लेन-देन की जानकारी देखना

किसी खास ट्रांज़ैक्शन का डेटा देखने के लिए, नीचे दी गई क्वेरी का इस्तेमाल करें.

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

आपको पता चलेगा कि लिखे गए हर कॉलम को BigQuery में एक अलग लाइन में बदल दिया गया है.

हर कैटगरी में की गई खरीदारी की संख्या देखना

हर कैटगरी में मौजूद खरीदारी की संख्या की गिनती करने के लिए, यहां दी गई क्वेरी का इस्तेमाल करें.

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

डेटा को फिर से फ़ॉर्मैट करना

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

CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
    SELECT *, parse_numeric(amount) as sales_dollars FROM (
      SELECT row_key, timestamp, column, value
      FROM `bigtable_bigquery_tutorial.retail-database_changelog`
      )
      PIVOT (
      MAX(value)
      FOR column in ("merchant", "amount", "category", "transaction_date")
    )
)

Looker डैशबोर्ड बनाना

  1. नए व्यू की ज़्यादा जानकारी वाले पेज पर जाने के लिए, व्यू पर जाएं पर क्लिक करें.
  2. एक्सपोर्ट करें पर क्लिक करें.
  3. Looker Studio की मदद से एक्सप्लोर करें चुनें

bb45482e9101b0f.png

8. डैशबोर्ड में चार्ट जोड़ना

अब जानकारी का ग्राफ़ बनाकर उसे आसानी से समझा जा सकता है और रिपोर्ट के तौर पर शेयर किया जा सकता है. आपको अपने डैशबोर्ड में तीन चार्ट जोड़ने होंगे:

  • समय के साथ लेन-देन की रकम
  • हर कारोबारी या कंपनी के कुल लेन-देन
  • हर कैटगरी के हिसाब से लेन-देन का प्रतिशत

426dc59200875a20.png

पेज सेट अप करना

  1. हर मौजूदा चार्ट पर क्लिक करें और उन्हें हटाने के लिए, मिटाएं दबाएं.
  2. पेज के दाईं ओर प्रॉपर्टी चुनें, ताकि आप ग्राफ़ डेटा में बदलाव कर सकें.

चार्ट जोड़ें

समय के साथ लेन-देन की रकम

  1. चार्ट जोड़ें पर क्लिक करके एक टाइम सीरीज़ चार्ट बनाएं.
  2. डाइमेंशन को transaction_date पर सेट करें.
  1. मेट्रिक को sales_dollars पर सेट करें.

372bdf2a2bcdb817.png

हर कारोबारी या कंपनी के लिए कुल लेन-देन

  1. चार्ट जोड़ें पर क्लिक करके टेबल बनाएं.
  2. डाइमेंशन को merchant पर सेट करें.
  3. मेट्रिक को sales_dollars पर सेट करें

हर कैटगरी के हिसाब से लेन-देन का प्रतिशत

  1. चार्ट जोड़ें पर क्लिक करें और पाई चार्ट बनाएं.
  2. डाइमेंशन को category पर सेट करें.
  3. मेट्रिक को sales_dollars पर सेट करें

रीयल-टाइम में होने वाले बदलाव देखें

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

  1. अपने Cloud Shell पर वापस जाएं.
  2. दूसरा डेटासेट डाउनलोड करें और उसमें बदलाव करें.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .

cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv  column-family=transactions
  1. अपने Looker डैशबोर्ड पर वापस जाएं और Ctrl+Shift+E निर्देश के साथ डेटा को रीफ़्रेश करें या व्यू मेन्यू में डेटा रीफ़्रेश करें पर क्लिक करें. अब आपको चार्ट में जनवरी 2024 का डेटा दिखेगा.

इसके अलावा, ग्राफ़ और मेट्रिक के कई वैरिएशन बनाए जा सकते हैं. Looker के दस्तावेज़ में ज़्यादा पढ़ें.

9. व्यवस्थित करें

इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud खाते से शुल्क न लिया जाए, इसके लिए संसाधनों वाले प्रोजेक्ट को मिटाएं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.

बदलावों की स्ट्रीम की पाइपलाइन को रोकना

  1. Google Cloud Console में, Dataflow जॉब पेज पर जाएं.
  2. जॉब की सूची में से अपना स्ट्रीमिंग जॉब चुनें.
  3. नेविगेशन में, बंद करें पर क्लिक करें.
  4. कार्य रोकें डायलॉग में, रद्द करें चुनें, और फिर कार्य रोकें क्लिक करें.

Bigtable के संसाधन मिटाना

अगर आपने इस ट्यूटोरियल के लिए Bigtable इंस्टेंस बनाया है, तो उसे मिटाया जा सकता है या अपनी बनाई गई टेबल को क्लीन अप किया जा सकता है.

  1. Google Cloud Console में, Bigtable इंस्टेंस पेज पर जाएं.
  2. उस इंस्टेंस के आईडी पर क्लिक करें जिसे इस ट्यूटोरियल के लिए इस्तेमाल किया जा रहा है.
  3. बाएं नेविगेशन पैनल में, टेबल पर क्लिक करें.
  4. retail-database टेबल ढूंढें.
  5. बदलाव करें पर क्लिक करें.
  6. बदलाव स्ट्रीम चालू करें को हटाएं.
  7. सेव करें पर क्लिक करें.
  8. टेबल के लिए ओवरफ़्लो मेन्यू खोलें.
  9. मिटाएं पर क्लिक करें और पुष्टि करने के लिए टेबल का नाम डालें.
  10. ज़रूरी नहीं: अगर आपने इस ट्यूटोरियल के लिए नया इंस्टेंस बनाया है, तो उसे मिटाएं

BigQuery डेटासेट मिटाना

  1. Google Cloud Console में, BigQuery पेज पर जाएं.
  2. एक्सप्लोरर पैनल में, डेटासेट bigtable_bigquery_tutorial ढूंढें और उस पर क्लिक करें.
  3. मिटाएं पर क्लिक करें. इसके बाद, 'मिटाएं' टाइप करें और पुष्टि करने के लिए, मिटाएं पर क्लिक करें.

आगे क्या करना है