7

हमारे पास डेटास्टोर का उपयोग करते हुए Google App Engine पर चल रहा एक अनुप्रयोग है जो लगातार बैक-एंड के रूप में है। वर्तमान में आवेदन में ज्यादातर 'ओएलटीपी' विशेषताएं और कुछ प्राथमिक रिपोर्टिंग है। रिपोर्टों को लागू करते समय हमने अनुभव किया कि डेटास्टोर और जीक्यूएल का उपयोग करके बड़ी मात्रा में डेटा (लाखों वस्तुओं) को प्रोसेस करना बहुत मुश्किल है। उचित रिपोर्ट और बिजनेस इंटेलिजेंस सुविधाओं के साथ हमारे आवेदन को बढ़ाने के लिए हमें लगता है कि डेटास्टोर से बिगक्वायर तक डेटा ले जाने के लिए ईटीएल प्रक्रिया स्थापित करना बेहतर होगा।Google क्लाउड डेटाफ्लो ईटीएल (डेटास्टोर -> ट्रांसफॉर्म -> बिगQuery)

प्रारंभ में हमने ईटीएल प्रक्रिया को ऐप इंजन क्रॉन नौकरी के रूप में लागू करने के बारे में सोचा था, लेकिन ऐसा लगता है कि इसके लिए डेटाफ्लो का भी उपयोग किया जा सकता है। हम प्रक्रिया

  • BigQuery के गैर स्ट्रीमिंग API का उपयोग करके BigQuery में सभी मौजूदा डेटा को पुश करने में सक्षम हो की स्थापना के लिए आवश्यकताओं को निम्नलिखित है।
  • एक बार उपर्युक्त हो जाने पर, किसी भी नए डेटा को स्ट्रीमिंग एपीआई का उपयोग करके BigQuery पर अद्यतन किया गया है।

मेरे प्रश्न हैं

  1. इस पाइपलाइन लागू करने के लिए बादल Dataflow सही उम्मीदवार है?
  2. क्या हम मौजूदा डेटा को धक्का दे पाएंगे? कुछ प्रकार के लाखों ऑब्जेक्ट्स हैं।
  3. इसे लागू करने के लिए सही दृष्टिकोण क्या होना चाहिए? हम दो दृष्टिकोणों पर विचार कर रहे हैं। पहले दृष्टिकोण मौजूदा डेटा के लिए पब/उप iee के माध्यम से जाना है एक क्रॉन नौकरी बनाएं और सभी डेटा को पब/उप पर दबाएं। किसी भी नए अपडेट के लिए डेटा को उसी समय पब/उप पर पुश करें, इसे डेटास्टोर में अपडेट किया गया है। डेटाफ्लो पाइपलाइन इसे पब/उप से उठाएगी और इसे BigQuery पर धक्का देगी। दूसरा दृष्टिकोण डेटाफ्लो में एक बैच पाइपलाइन बनाने के लिए है जो डेटास्टोर से पूछताछ करेगा और BigQuery को कोई नया डेटा धक्का देगा।

प्रश्न ये दो दृष्टिकोण अक्षम हैं? कौन सा बेहतर मूल्यवान है? क्या कोई अन्य तरीका है जो ऊपर से दो से बेहतर है?

धन्यवाद,

rizTaak

उत्तर

7

Dataflow बिल्कुल इस उद्देश्य के लिए इस्तेमाल किया जा सकता। वास्तव में, डेटाफ्लो की स्केलेबिलिटी प्रक्रिया को तेज़ और अपेक्षाकृत आसान बनाना चाहिए।

आपके दोनों दृष्टिकोणों को काम करना चाहिए - मैं मौजूदा डेटा को स्थानांतरित करने के लिए बैच पाइपलाइन का उपयोग करने वाले दूसरे व्यक्ति को क्लाउड पब/सब के माध्यम से नए डेटा को संभालने के लिए एक स्ट्रीमिंग पाइपलाइन का प्राथमिकता दूंगा। डेटा आंदोलन के अतिरिक्त, डेटाफ्लो डेटा पर मनमाने ढंग से विश्लेषण/हेरफेर करने की अनुमति देता है।

ने कहा कि, BigQuery और डेटास्टोर सीधे कनेक्ट किया जा सकता है। उदाहरण के लिए, BigQuery दस्तावेज़ में Loading Data From Cloud Datastore देखें।

+0

डेटास्टोर बैकअप टूल का उपयोग कर "स्वचालित" समाधान फ़ाइलें API पर निर्भर करता है जो कुछ दिनों में बंद हो जाएगा। आज यह अस्थायी रूप से बंद कर दिया गया था। तो ऐसा लगता है कि इसे लागू करने के लिए डेटाफ्लो go_to समाधान होगा। मैं उदाहरणों को BigQuery को लिखने के लिए जानकारी प्रदान करता हूं, लेकिन हमें डेटास्टोर से पढ़ने पर एक उदाहरण की तलाश करनी चाहिए? मुझे प्रलेखन मिला और उस से काम करेगा, लेकिन डाटास्टोर का एक पूर्ण उदाहरण -> डेटाफ्लो का उपयोग करके BigQuery वास्तव में सहायक होगा। धन्यवाद! – Zebs

+0

डेटास्टोर से पढ़ने का एक उदाहरण हमारे ['कुकबुक'] में पाया जा सकता है (https://github.com/GoogleCloudPlatform/DataflowJavaSDK-examples/blob/master/src/main/java/com/google/cloud/dataflow/examples /cookbook/DatastoreWordCount.java) उदाहरण। BigQuery उदाहरण के साथ इसे जोड़ने के लिए यह सरल होना चाहिए। –

+0

इसे याद किया! धन्यवाद, पहले से ही इस पर काम कर रहा है :) – Zebs

1

Google BigQuery पर डेटा लोड करने के लिए किसी तृतीय पक्ष समाधान का उपयोग करने का एक और तरीका। उनमें से बहुत सारे here हैं। उनमें से अधिकतर भुगतान किए जाते हैं, लेकिन सीमित डेटा लोडिंग आवृत्ति के साथ one निःशुल्क हैं। इस मामले में आपको कुछ भी कोड करने की आवश्यकता नहीं होगी।

संबंधित मुद्दे