अपने डेटाबेस से डेटा मिटाने के लिए, मैनेज की गई एक साथ कई आइटम मिटाने की सेवा का इस्तेमाल करें. इस सुविधा की मदद से, एक या एक से ज़्यादा कलेक्शन ग्रुप मिटाए जा सकते हैं.
इस पेज पर, मैनेज की जा रही एक साथ कई दस्तावेज़ मिटाने की सेवा का इस्तेमाल करके, एक साथ कई दस्तावेज़ मिटाने का तरीका बताया गया है. मैनेज की जा रही एक साथ कई दस्तावेज़ मिटाने की सेवा, gcloud कमांड-लाइन टूल और Cloud Firestore REST API के ज़रिए उपलब्ध है.Cloud Firestore
शुरू करने से पहले
मैनेज की गई एक साथ कई आइटम मिटाने की सेवा का इस्तेमाल करने से पहले, आपको ये काम पूरे करने होंगे:
- एक साथ कई दस्तावेज़ मिटाने के लिए, अपने Google Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू करें. एक साथ कई फ़ाइलें मिटाने की सुविधा का इस्तेमाल सिर्फ़ उन Google Cloud प्रोजेक्ट के लिए किया जा सकता है जिनमें बिलिंग की सुविधा चालू है.
-
पक्का करें कि आपके खाते के पास Cloud Firestore के लिए ज़रूरी अनुमतियां हों. अगर आप प्रोजेक्ट के मालिक हैं, तो आपके खाते के पास ज़रूरी अनुमतियां हैं. इसके अलावा, इन भूमिकाओं के पास एक साथ कई लिंक मिटाने की ज़रूरी अनुमतियां होती हैं:
- Cloud Firestore भूमिकाएं:
Owner,Cloud Datastore OwnerयाCloud Datastore Bulk Admin
- Cloud Firestore भूमिकाएं:
अपने प्रोजेक्ट के लिए gcloud सेट अप करना
Google Cloud console या gcloud कमांड-लाइन टूल की मदद से, एक साथ कई फ़ाइलें मिटाई जा सकती हैं. gcloud का इस्तेमाल करने के लिए, कमांड-लाइन टूल सेट अप करें. इसके बाद, यहां दिए गए किसी एक तरीके से अपने प्रोजेक्ट से कनेक्ट करें:
Cloud Shell का इस्तेमाल करके, Google Cloud Console से
gcloudको ऐक्सेस करें.पक्का करें कि
gcloudको सही प्रोजेक्ट के लिए कॉन्फ़िगर किया गया हो:gcloud config set project [PROJECT_ID]Google Cloud SDK टूल इंस्टॉल करें और उसे इस्तेमाल करना शुरू करें.
एक साथ कई आइटम मिटाना
एक साथ कई दस्तावेज़ मिटाने की सुविधा, सबसे पहले आपके डेटाबेस में मौजूद सभी दस्तावेज़ों का पता लगाती है. इसके बाद, उन्हें बैच में मिटाती है. इस प्रोसेस के दौरान, इन दस्तावेज़ों को क्वेरी किया जा सकता है या पढ़ा जा सकता है. हालांकि, प्रोसेस पूरी होने के आधार पर नतीजों में अंतर हो सकता है. एक साथ कई दस्तावेज़ मिटाने की सुविधा, प्रोसेस शुरू होने के बाद जोड़े गए या बदले गए किसी भी दस्तावेज़ को नहीं मिटाती.
चुनिंदा कलेक्शन ग्रुप को एक साथ मिटाना
gcloud
किसी खास कलेक्शन ग्रुप को एक साथ कई बार मिटाने के लिए, --collection-ids फ़्लैग का इस्तेमाल करें.
इस ऑपरेशन से, सिर्फ़ दिए गए आईडी वाले कलेक्शन ग्रुप मिटाए जाते हैं.
कलेक्शन ग्रुप में, तय किए गए कलेक्शन ग्रुप वाले सभी दस्तावेज़ और नेस्ट किए गए दस्तावेज़ (किसी भी पाथ पर) शामिल होते हैं.
gcloud firestore bulk-delete \ --collection-ids=[COLLECTION_GROUP_ID_1_OR_KIND_1],[COLLECTION_GROUP_ID_2_OR_KIND_2],[SUBCOLLECTION_GROUP_ID_1_OR_KIND_3] \ --database=[DATABASE]
cymbal डेटाबेस के टॉप लेवल restaurants कलेक्शन में, रेस्टोरेंट के बारे में जानकारी देने वाले कई दस्तावेज़ मौजूद हैं. हर रेस्टोरेंट के दस्तावेज़ में, कई नेस्ट किए गए सब-कलेक्शन होते हैं. जैसे, ratings, reviews, और outlets. restaurants और reviews कलेक्शन ग्रुप को एक साथ मिटाने के लिए, आपकी कमांड इस तरह दिखेगी:
gcloud firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
एक साथ कई आइटम मिटाने की कार्रवाइयों को मैनेज करना
बल्क में मिटाने की कार्रवाई शुरू करने के बाद, Cloud Firestore इस कार्रवाई को एक यूनीक नाम असाइन करता है. कार्रवाई का नाम इस्तेमाल करके, कार्रवाई को मिटाया, रद्द किया जा सकता है या उसकी स्थिति देखी जा सकती है.
कार्रवाई के नामों से पहले projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/ प्रीफ़िक्स लगाया जाता है. उदाहरण के लिए:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
हालांकि, describe, cancel, और delete कमांड के लिए ऑपरेशन का नाम तय करते समय, प्रीफ़िक्स को छोड़ा जा सकता है.
एक साथ कई आइटम मिटाने की सभी कार्रवाइयों की सूची बनाना
gcloud
operations list कमांड का इस्तेमाल करके, चालू और हाल ही में पूरे हुए सभी ऑपरेशन देखें. इनमें एक साथ कई आइटम मिटाने के ऑपरेशन भी शामिल हैं:
gcloud firestore operations list
कार्रवाई की स्थिति देखना
gcloud
बल्क में मिटाने की कार्रवाई की स्थिति देखने के लिए, operations describe कमांड का इस्तेमाल करें.
gcloud firestore operations describe [OPERATION_NAME]
पूरा होने का अनुमानित समय
लंबे समय तक चलने वाली कार्रवाई के स्टेटस के लिए किए गए अनुरोध से, workEstimated और workCompleted मेट्रिक मिलती हैं. इनमें से हर मेट्रिक को बाइट की संख्या और दस्तावेज़ों की संख्या, दोनों में दिखाया जाता है:
workEstimatedसे, किसी ऑपरेशन के लिए प्रोसेस किए जाने वाले बाइट और दस्तावेज़ों की अनुमानित कुल संख्या दिखती है. अगर Cloud Firestore अनुमान नहीं लगा पाता है, तो हो सकता है कि वह इस मेट्रिक को शामिल न करे.workCompletedसे, अब तक मिटाए गए बाइट और दस्तावेज़ों की संख्या दिखती है. ऑपरेशन पूरा होने के बाद, वैल्यू में प्रोसेस किए गए बाइट और दस्तावेज़ों की कुल संख्या दिखती है. यह संख्या,workEstimatedकी वैल्यू से ज़्यादा हो सकती है.
प्रोग्रेस का अनुमान लगाने के लिए, workCompleted को workEstimated से भाग दें. यह अनुमान गलत हो सकता है, क्योंकि यह आंकड़ों के इकट्ठा होने में हुई देरी पर निर्भर करता है.
कार्रवाई रद्द करना
gcloud
जारी कार्रवाई को रोकने के लिए, operations cancel कमांड का इस्तेमाल करें:
gcloud firestore operations cancel [OPERATION_NAME]
चल रही कार्रवाई को रद्द करने से, वह पहले जैसी नहीं हो जाती. एक साथ कई दस्तावेज़ मिटाने के रद्द किए गए ऑपरेशन से, मिटाए गए दस्तावेज़ वापस नहीं आते.
किसी कार्रवाई को मिटाना
हाल ही के ऑपरेशनों की सूची से किसी पूरे हो चुके ऑपरेशन को हटाने के लिए, gcloud firestore operations delete कमांड का इस्तेमाल करें. चालू कार्रवाई को रद्द करने के लिए, रद्द करने की पिछली कार्रवाई का इस्तेमाल करें.
gcloud firestore operations delete [OPERATION_NAME]
एक साथ कई आइटम मिटाने की कार्रवाइयों के लिए बिलिंग और कीमत
मैनेज की गई एक साथ कई आइटम मिटाने की सेवा का इस्तेमाल करने से पहले, आपको अपने Google Cloud प्रोजेक्ट के लिए बिलिंग चालू करनी होगी.
एक साथ कई दस्तावेज़ मिटाने की कार्रवाइयों के लिए, दस्तावेज़ पढ़ने और मिटाने के शुल्क लिए जाते हैं. ये शुल्क, Cloud Firestore की कीमत में दिए गए हैं. एक साथ कई दस्तावेज़ मिटाने की कार्रवाइयों के लिए, खोज के नतीजों में मिले हर दस्तावेज़ के लिए इंडेक्स एंट्री को एक बार पढ़ा जाता है. साथ ही, मिटाए गए हर दस्तावेज़ के लिए, मिटाने की एक कार्रवाई की जाती है. इंडेक्स की 1,000 तक एंट्री पढ़ने के लिए, आपसे एक बार पढ़ने का शुल्क लिया जाता है. उदाहरण के लिए, एक साथ कई दस्तावेज़ मिटाने की कार्रवाई में 1,500 दस्तावेज़ मिटाए गए. ऐसे में, आपसे दो दस्तावेज़ पढ़ने और 1,500 दस्तावेज़ मिटाने का शुल्क लिया जाएगा.ध्यान दें कि Cloud Firestore, किए गए असल काम के लिए शुल्क लेता है. अगर उपयोगकर्ता की गड़बड़ी की वजह से कार्रवाई रद्द हो जाती है या पूरी नहीं होती है, तो आपसे किए गए काम के लिए शुल्क लिया जाएगा. Cloud Firestore, उन दस्तावेज़ों को पढ़ने या मिटाने के लिए शुल्क नहीं लेगा जिन्हें आखिर में मिटाया नहीं जाता. जैसे, मिटाने की कार्रवाई शुरू होने के बाद बदले गए दस्तावेज़. शुल्क, कार्रवाई पूरी होने के दिन लिया जाएगा.
एक साथ कई आइटम मिटाने की कार्रवाइयों के पूरा होने तक, आपको Google Cloud बजट से जुड़ी सूचनाएं नहीं मिलेंगी. इसी तरह, एक साथ कई आइटम मिटाने की कार्रवाई के दौरान किए गए रीड और मिटाने के अनुरोध, कार्रवाई पूरी होने के बाद आपके मुफ़्त टियर के इस्तेमाल पर लागू होते हैं. एक साथ कई आइटम मिटाने से, कंसोल के इस्तेमाल वाले सेक्शन में दिखने वाले इस्तेमाल पर कोई असर नहीं पड़ता.
एक साथ कई आइटम मिटाने की लागत देखना
एक साथ कई कार्रवाइयों को मिटाने पर, बिल की गई कार्रवाइयों पर goog-firestoremanaged:bulkdelete लेबल लागू होता है. क्लाउड बिलिंग की रिपोर्ट वाले पेज पर, इस लेबल का इस्तेमाल करके एक साथ कई आइटम मिटाने की कार्रवाइयों से जुड़े शुल्क देखे जा सकते हैं.
सबसे सही तरीके
मिटाए गए डेटा को स्किप करने से बचें. इससे क्वेरी की प्रोसेस धीमी हो सकती है.