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