अपने डेटाबेस से डेटा मिटाने के लिए, 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 की रिपोर्ट वाले पेज पर, एक साथ कई आइटम मिटाने की प्रोसेस से जुड़ी लागत देखने के लिए, इस लेबल का इस्तेमाल किया जा सकता है.
सबसे सही तरीके
मिटाए गए डेटा को नज़रअंदाज़ न करें. इससे क्वेरी कम हो सकती हैं.