अपने डेटाबेस से डेटा मिटाने के लिए, Cloud Firestore एक साथ कई आइटम मिटाने की मैनेज की गई सेवा का इस्तेमाल किया जा सकता है. इस सुविधा की मदद से, एक या एक से ज़्यादा कलेक्शन ग्रुप मिटाए जा सकते हैं.
इस पेज पर, एक साथ कई दस्तावेज़ मिटाने की सेवा का इस्तेमाल करके, Cloud Firestore दस्तावेज़ एक साथ मिटाने का तरीका बताया गया है. Cloud Firestore की ओर से मैनेज की जाने वाली, एक साथ कई आइटम मिटाने की सेवा, gcloud
कमांड-लाइन टूल और Cloud Firestore एपीआई (REST, RPC) के ज़रिए उपलब्ध है.
शुरू करने से पहले
एक साथ कई आइटम मिटाने की मैनेज की गई सेवा का इस्तेमाल करने से पहले, आपको ये काम पूरे करने होंगे:
- अपने 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 beta 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]
एक साथ कई आइटम मिटाने की सुविधा को मैनेज करना
एक साथ कई आइटम मिटाने की प्रोसेस शुरू करने के बाद, 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
लेबल लागू होता है. Cloud Billing की रिपोर्ट वाले पेज पर, एक साथ कई आइटम मिटाने की प्रोसेस से जुड़ी लागत देखने के लिए, इस लेबल का इस्तेमाल किया जा सकता है.
सबसे सही तरीके
मिटाया गया डेटा स्किप करने से बचें, क्योंकि इससे क्वेरी धीमी हो सकती हैं.