अपने डेटाबेस से डेटा मिटाने के लिए, मैनेज की जा रही बल्क डिलीट सेवा का इस्तेमाल करें. इस सुविधा की मदद से, एक या उससे ज़्यादा कलेक्शन ग्रुप मिटाए जा सकते हैं.
एक साथ कई आइटम मिटाने की सेवा मैनेज करना
एक साथ कई दस्तावेज़ मिटाने के लिए, मैनेज की जा रही बल्क डिलीट सेवा का इस्तेमाल करें. Cloud Firestore की मैनेज की गई बल्क डिलीट सेवा, gcloud कमांड-लाइन टूल और Cloud Firestore REST API के ज़रिए उपलब्ध है.
शुरू करने से पहले
एक साथ कई डेटा मिटाने की सेवा का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:
- एक साथ कई दस्तावेज़ मिटाने के लिए, अपने 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]
एक साथ कई डेटा मिटाने की सेवा का इस्तेमाल करके डेटा मिटाना
एक साथ कई दस्तावेज़ मिटाने की प्रोसेस में, सबसे पहले आपके डेटाबेस में मौजूद सभी ज़रूरी दस्तावेज़ों को ढूंढा जाता है. इसके बाद, उन्हें बैच में मिटाया जाता है. इन दस्तावेज़ों के बारे में अब भी क्वेरी की जा सकती है या इन्हें पढ़ा जा सकता है. हालांकि, प्रोग्रेस के आधार पर नतीजे अलग-अलग हो सकते हैं. एक साथ कई दस्तावेज़ मिटाने की प्रोसेस शुरू होने के बाद, जोड़े गए या उनमें किए गए बदलावों को नहीं मिटाया जाता.
एक साथ कई कलेक्शन ग्रुप मिटाना
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 दस्तावेज़ों को मिटाने का शुल्क लिया जाएगा.ध्यान दें कि Cloud Firestore, असल में किए गए काम के हिसाब से शुल्क लेता है. अगर उपयोगकर्ता की गलती की वजह से कार्रवाई रद्द हो जाती है या पूरी नहीं हो पाती है, तो आपसे अब तक की गई कार्रवाई के लिए शुल्क लिया जाएगा. Cloud Firestore उन दस्तावेज़ों को पढ़ने या मिटाने के लिए शुल्क नहीं लेगा जिन्हें आखिर में नहीं मिटाया गया है. जैसे, वे दस्तावेज़ जिनमें मिटाने की कार्रवाई शुरू होने के बाद बदलाव किया गया है. ऑपरेशन पूरा होने के दिन, लागत का हिसाब लगाया जाएगा.
एक साथ कई आइटम मिटाने की प्रोसेस पूरी होने तक, Google Cloud बजट से जुड़ी सूचनाएं ट्रिगर नहीं होती हैं. इसी तरह, एक साथ कई डेटा मिटाने की कार्रवाई के दौरान, डेटा को पढ़ने और मिटाने की कार्रवाई, कार्रवाई पूरी होने के बाद आपके फ़्री टियर के इस्तेमाल पर लागू होती है. एक साथ कई आइटम मिटाने से, कंसोल के इस्तेमाल वाले सेक्शन में दिखाए गए इस्तेमाल पर कोई असर नहीं पड़ता.
एक साथ कई आइटम मिटाने की लागत देखना
एक साथ कई कार्रवाइयां मिटाने पर, बिल की गई कार्रवाइयों पर goog-firestoremanaged:bulkdelete लेबल लागू होता है. क्लाउड बिलिंग रिपोर्ट पेज पर, इस लेबल का इस्तेमाल करके, एक साथ कई आइटम मिटाने से जुड़ी कार्रवाइयों की लागत देखी जा सकती है.
सबसे सही तरीके
मिटाए गए डेटा को स्किप करने से बचें. इससे क्वेरी की स्पीड कम हो सकती है.