Google Cloud Dataflow का इस्तेमाल करके, अपने पहले एसक्यूएल स्टेटमेंट चलाना

1. परिचय

Cloud-Dataflow.png

Google क्लाउड डेटाफ़्लो

पिछली बार अपडेट किए जाने की तारीख: 2020 से 26 मई

Dataflow क्या है?

Dataflow एक ऐसी मैनेज की गई सेवा है जिसकी मदद से, डेटा प्रोसेसिंग के कई तरह के पैटर्न लागू किए जा सकते हैं. इस साइट पर मौजूद दस्तावेज़ में आपको Dataflow का इस्तेमाल करके, बैच और स्ट्रीमिंग डेटा प्रोसेसिंग पाइपलाइन को डिप्लॉय करने का तरीका बताया गया है. इसमें, सेवा सुविधाओं का इस्तेमाल करने के निर्देश भी दिए गए हैं.

Apache बीम SDK, एक ओपन सोर्स प्रोग्रामिंग मॉडल है. इसकी मदद से, बैच और स्ट्रीमिंग पाइपलाइन, दोनों डेवलप किए जा सकते हैं. Apache बीम प्रोग्राम से अपनी पाइपलाइन बनाई जाती है और फिर उन्हें Dataflow सेवा पर चलाया जाता है. Apache बीम दस्तावेज़, Apache बीम प्रोग्रामिंग मॉडल, SDK टूल, और अन्य रनर के बारे में गहराई से सैद्धांतिक जानकारी और रेफ़रंस कॉन्टेंट देता है.

डेटा के आंकड़ों को तेज़ी से स्ट्रीम किया जा रहा है

Dataflow की मदद से, स्ट्रीमिंग डेटा पाइपलाइन को तेज़ और आसान तरीके से डेवलप किया जा सकता है. ऐसा करने पर डेटा इंतज़ार का समय कम होता है.

ऑपरेशन और मैनेजमेंट को आसान बनाना

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

मालिकाना हक की कुल लागत कम करना

संसाधन ऑटो स्केलिंग के साथ लागत के हिसाब से बैच प्रोसेसिंग की सुविधा जोड़ी गई है. इसका मतलब है कि Dataflow बिना किसी सीमा के, सीज़न के हिसाब से और ज़्यादा खर्च वाले वर्कलोड को मैनेज करने के लिए, वर्चुअल तौर पर अनगिनत क्षमता देता है.

मुख्य सुविधाएं

अपने-आप काम करने वाले संसाधन का मैनेजमेंट और काम के डाइनैमिक तरीके के बीच संतुलन

Dataflow प्रोसेस करने के दौरान संसाधनों को अपने-आप प्रावधान और मैनेज करने की सुविधा देता है, ताकि इंतज़ार का समय कम किया जा सके और ज़्यादा से ज़्यादा इस्तेमाल किया जा सके. इससे, आपको इंस्टेंस को स्पिन अप करने या उन्हें खुद सुरक्षित करने की ज़रूरत नहीं पड़ती. काम के बंटवारे की सुविधा अपने-आप काम करती है और इसे इस तरह ऑप्टिमाइज़ किया जाता है कि ज़रूरत के समय होने वाले काम के बीच डाइनैमिक तरीके से दोबारा संतुलन न बने. "हॉट की" खोजने की ज़रूरत नहीं है या अपने इनपुट डेटा को प्रीप्रोसेस करें.

हॉरिज़ॉन्टल ऑटो स्केलिंग

बेहतर सीटीआर के लिए, कर्मचारियों के संसाधनों की हॉरिज़ॉन्टल ऑटो स्केलिंग से कीमत के साथ-साथ परफ़ॉर्मेंस बेहतर होती है.

बैच प्रोसेसिंग के लिए, संसाधन शेड्यूल करने की ज़रूरत के हिसाब से शुल्क

नौकरी के शेड्यूल को आसानी से प्रोसेस करने के लिए, जैसे कि रात भर की नौकरियां, फ़्लेक्सिबल रिसॉर्स शेड्यूलिंग (FlexRS) से बैच प्रोसेसिंग के लिए कम कीमत मिलती है. इन सुविधाजनक जॉब को इस गारंटी के साथ एक सूची में रखा जाता है कि इन्हें छह घंटे की समयसीमा में पूरा करने के लिए मिल जाएगा.

इसके तहत क्या चलाया जाएगा

इस कोडलैब में, Dataflow SQL यूज़र इंटरफ़ेस (यूआई) के ज़रिए एसक्यूएल स्टेटमेंट सबमिट करके, Dataflow SQL का इस्तेमाल शुरू किया जा रहा है. इसके बाद, Dataflow निगरानी के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, चल रही पाइपलाइन को एक्सप्लोर किया जा सकता है.

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

  • Dataflow SQL यूज़र इंटरफ़ेस (यूआई) में Dataflow जॉब के तौर पर SQL स्टेटमेंट सबमिट करने का तरीका.
  • Dataflow Pipeline पर जाने का तरीका.
  • SQL स्टेटमेंट से बने Dataflow ग्राफ़ को एक्सप्लोर करें.
  • ग्राफ़ से मिली, मॉनिटरिंग की सुविधा से जुड़ी जानकारी देखें.

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

  • एक Google Cloud Platform प्रोजेक्ट जिसमें बिलिंग की सुविधा चालू हो.
  • Google Cloud Dataflow और Google Cloud PubSub चालू किए गए.

2. सेट अप किया जा रहा है

पक्का करें कि आपने Dataflow API और Cloud Pub/Sub एपीआई को चालू किया है. इसकी पुष्टि करने के लिए, एपीआई की & सेवाओं वाला पेज.

3. Dataflow एसक्यूएल यूज़र इंटरफ़ेस (यूआई) को ऐक्सेस करना

Dataflow SQL का यूज़र इंटरफ़ेस, Dataflow SQL जॉब बनाने के लिए, BigQuery वेब यूज़र इंटरफ़ेस (यूआई) सेटिंग है. BigQuery वेब यूज़र इंटरफ़ेस (यूआई) से Dataflow एसक्यूएल यूज़र इंटरफ़ेस (यूआई) को ऐक्सेस किया जा सकता है.

  1. BigQuery वेब यूज़र इंटरफ़ेस (यूआई) पर जाएं.

  1. Cloud Dataflow इंजन पर स्विच करें.
  • ज़्यादा ड्रॉप-डाउन मेन्यू पर क्लिक करें और क्वेरी सेटिंग चुनें.

BigQuery वेब यूज़र इंटरफ़ेस (यूआई) में 'ज़्यादा' ड्रॉप-डाउन मेन्यू, जिसमें क्वेरी सेटिंग का विकल्प चुना गया है

  • क्वेरी सेटिंग मेन्यू में, Dataflow Engine चुनें.
  • Dataflow और Data Catalog API चालू नहीं होने पर, दिखने वाले प्रॉम्प्ट में एपीआई चालू करें पर क्लिक करें.

'एपीआई चालू करें' प्रॉम्प्ट के साथ क्वेरी सेटिंग का मेन्यू

  • Save पर क्लिक करें. क्वेरी सेटिंग मेन्यू जिसमें Dataflow इंजन का रेडियो बटन चुना गया हो और एपीआई चालू किए गए हों

Dataflow मॉनिटरिंग इंटरफ़ेस से भी Dataflow एसक्यूएल यूज़र इंटरफ़ेस (यूआई) को ऐक्सेस किया जा सकता है.

  • Dataflow के मॉनिटरिंग इंटरफ़ेस पर जाएं.

  • SQL से जॉब बनाएं पर क्लिक करें.

4. एसक्यूएल क्वेरी के साथ Dataflow जॉब चलाना

Dataflow की एसक्यूएल क्वेरी लिखना

Dataflow एसक्यूएल क्वेरी, Dataflow SQL क्वेरी सिंटैक्स का इस्तेमाल करते हैं. Dataflow SQL क्वेरी सिंटैक्स BigQuery स्टैंडर्ड एसक्यूएल की तरह ही है. Pub/Sub जैसे डेटाफ़्लो के लगातार अपडेट होने वाले सोर्स से डेटा इकट्ठा करने के लिए, Dataflow के एसक्यूएल स्ट्रीमिंग एक्सटेंशन का इस्तेमाल किया जा सकता है. उदाहरण के लिए, नीचे दी गई क्वेरी में, टैक्सी राइड की Pub/Sub स्ट्रीम में हर मिनट में यात्रियों की गिनती की जाती है:

SELECT
  TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
  SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
  ride_status = "pickup"
GROUP BY
  TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')

Dataflow की एसक्यूएल क्वेरी चलाना

जब Dataflow एसक्यूएल क्वेरी को चलाया जाता है, तो Dataflow क्वेरी को Apache बीम पाइपलाइन में बदल देता है और पाइपलाइन को एक्ज़ीक्यूट करता है.

Cloud Console या gcloud कमांड-लाइन टूल का इस्तेमाल करके, Dataflow की एसक्यूएल क्वेरी चलाई जा सकती है.

Dataflow SQL क्वेरी चलाने के लिए, Dataflow SQL यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करें.

  • Dataflow एसक्यूएल यूज़र इंटरफ़ेस (यूआई) पर जाएं.
  • क्वेरी एडिटर में, ऊपर दी गई Dataflow की एसक्यूएल क्वेरी डालें.
  • जॉब के विकल्पों वाला पैनल खोलने के लिए, 'Cloud Dataflow जॉब बनाएं' पर क्लिक करें.
  • (ज़रूरी नहीं) 'वैकल्पिक पैरामीटर दिखाएं' पर क्लिक करें और सूची ब्राउज़ करें.
  • पैनल के डेस्टिनेशन सेक्शन में, आउटपुट टाइप के तौर पर BigQuery चुनें.

1155e94529ff58fe.png

  • कोई डेटासेट आईडी चुनें और टेबल का नाम "passengers_per_min" बनाएं
  • 'बनाएं' पर क्लिक करें.

डेटा को क्वेरी करने और Dataflow SQL क्वेरी के नतीजों को लिखने के बारे में ज़्यादा जानकारी के लिए, Dataflow SQL का इस्तेमाल करना देखें.

5. Dataflow निगरानी के यूज़र इंटरफ़ेस (यूआई) पर जॉब को एक्सप्लोर करना

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

Google Cloud Console का इस्तेमाल करके, Dataflow के मॉनिटरिंग इंटरफ़ेस को ऐक्सेस किया जा सकता है. मॉनिटरिंग इंटरफ़ेस से आपको यह जानकारी मिल सकती है:

  • पिछले 30 दिनों में चलाए जा रहे Dataflow के साथ-साथ, पहले चलाए जा चुके जॉब की सूची.
  • हर पाइपलाइन को ग्राफ़िक के तौर पर दिखाया गया.
  • जॉब की स्थिति, प्रोग्राम चलाने, और SDK टूल के वर्शन की जानकारी.
  • आपकी पाइपलाइन पर चल रही Google Cloud की सेवाओं की जानकारी के लिंक, जैसे कि Compute Engine और Cloud Storage.
  • किसी काम के दौरान होने वाली कोई गड़बड़ी या चेतावनी.

Dataflow मॉनिटरिंग इंटरफ़ेस में, नौकरी की निगरानी वाले चार्ट देखे जा सकते हैं. इन चार्ट में, पाइपलाइन जॉब की अवधि के दौरान मेट्रिक दिखती हैं. साथ ही, इसमें नीचे दी गई जानकारी शामिल होती है:

  • चरण-लेवल पर पारदर्शिता की मदद से पता लगाएं कि किन चरणों की वजह से, पाइपलाइन लैग हो रहा है.
  • आंकड़ों से जुड़ी जानकारी, जिससे असामान्य व्यवहार का पता चल सकता है.
  • I/O मेट्रिक, जो आपके सोर्स और सिंक में आने वाली रुकावटों की पहचान करने में मदद कर सकती हैं.

Dataflow निगरानी के इंटरफ़ेस को ऐक्सेस करना

Dataflow के मॉनिटरिंग इंटरफ़ेस को ऐक्सेस करने के लिए, यह तरीका अपनाएं:

  • Cloud Console पर जाएं:

  • अपना Google Cloud प्रोजेक्ट चुनें.
  • सबसे ऊपर बाएं कोने में, मेन्यू पर क्लिक करें.
  • बिग डेटा सेक्शन में जाएं और Dataflow पर क्लिक करें.

Dataflow जॉब की स्थिति के साथ उनकी सूची दिखती है.

58f6402cc923d6bb.png

Cloud Console में मौजूद Dataflow जॉब की सूची, जिसमें 'चल रही है', 'पुष्टि नहीं हुई', और 'पूरी हो गई' स्टेटस वाली जॉब शामिल हैं.

किसी नौकरी के लिए ये स्थितियां हो सकती हैं:

  • : मॉनिटरिंग यूज़र इंटरफ़ेस (यूआई) को अभी तक Dataflow सेवा से कोई स्टेटस नहीं मिला है.
  • चल रहा है: जॉब अभी चल रहा है.
  • शुरू नहीं हुआ है: जॉब बन गया है, लेकिन सिस्टम को लॉन्च करने से पहले इसकी तैयारी करने के लिए कुछ समय चाहिए.
  • सूची में शामिल: FlexRS जॉब सूची में है.
  • रद्द किया जा रहा है...: काम रद्द किया जा रहा है.
  • रद्द किया गया: वह काम जिसे उपयोगकर्ता ने रद्द कर दिया था.
  • खाली हो रहा है...: काम खाली हो रहा है.
  • खाली है: उपयोगकर्ता ने काम को बहुत कम कर दिया है.
  • अपडेट हो रहा है...: जॉब अपडेट हो रहा है.
  • अपडेट किया गया: उपयोगकर्ता ने कार्य अपडेट किया.
  • सफल: काम पूरा हो गया.
  • प्रोसेस नहीं किया जा सका: काम पूरा नहीं हो सका.

"dfsql" वाली नौकरी खोजें जोड़ें और इसके नाम पर क्लिक करें.

e3bce9b1929564c9.png

नौकरी की ज़्यादा जानकारी वाला पेज, जिसमें नीचे दी गई जानकारी होती है:

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

नौकरी की ज़्यादा जानकारी वाले पेज पर, आप नौकरी के ग्राफ़ और नौकरी के मेट्रिक टैब से नौकरी का अपना व्यू बदल सकते हैं.

  • जॉब मेट्रिक टैब पर क्लिक करें और चार्ट देखें

7076f8a8911066ab.png

6. आपके Dataflow SQL जॉब को बंद किया जा रहा है

Dataflow SQL जॉब बंद करने के लिए, Cancel कमांड का इस्तेमाल करें. Drain की मदद से, Dataflow के SQL जॉब को रोका नहीं जा सकता.

1229697a873e1cf9.png