एक साथ कई फ़ोटो मिटाना

अपने डेटाबेस से डेटा मिटाने के लिए, मैनेज की गई एक साथ कई आइटम मिटाने की सेवा का इस्तेमाल करें. इस सुविधा की मदद से, एक या उससे ज़्यादा कलेक्शन ग्रुप मिटाए जा सकते हैं.

एक साथ कई आइटम मिटाने की मैनेज की जा रही सेवा

एक साथ कई दस्तावेज़ मिटाने के लिए, मैनेज की गई एक साथ कई आइटम मिटाने की सेवा का इस्तेमाल करें. Cloud Firestore मैनेज की गई बल्क डिलीट सेवा, gcloud कमांड-लाइन टूल और Cloud Firestore REST API के ज़रिए उपलब्ध है.

शुरू करने से पहले

मैनेज की गई एक साथ कई आइटम मिटाने की सेवा का इस्तेमाल करने से पहले, आपको ये टास्क पूरे करने होंगे:

  1. एक साथ कई दस्तावेज़ मिटाने के लिए, अपने Google Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू करें. एक साथ कई फ़ाइलें मिटाने की सुविधा का इस्तेमाल सिर्फ़ उन Google Cloud प्रोजेक्ट के लिए किया जा सकता है जिनमें बिलिंग की सुविधा चालू है.
  2. पक्का करें कि आपके खाते के पास Cloud Firestore के लिए ज़रूरी अनुमतियां हों. अगर आप प्रोजेक्ट के मालिक हैं, तो आपके खाते के पास ज़रूरी अनुमतियां हैं. इसके अलावा, इन भूमिकाओं के पास एक साथ कई आइटम मिटाने की ज़रूरी अनुमतियां होती हैं:

    • Cloud Firestore भूमिकाएं: Owner, Cloud Datastore Owner या Cloud Datastore Bulk Admin

अपने प्रोजेक्ट के लिए gcloud सेट अप करना

Google Cloud Console या gcloud कमांड-लाइन टूल का इस्तेमाल करके, एक साथ कई ऑब्जेक्ट मिटाए जा सकते हैं. gcloud का इस्तेमाल करने के लिए, कमांड-लाइन टूल सेट अप करें और इनमें से किसी एक तरीके से अपने प्रोजेक्ट से कनेक्ट करें:

डेटा को एक साथ मिटाने की सेवा का इस्तेमाल करके डेटा मिटाना

एक साथ कई दस्तावेज़ मिटाने की प्रोसेस में, सबसे पहले आपके डेटाबेस में मौजूद सभी ज़रूरी दस्तावेज़ों का पता लगाया जाता है. इसके बाद, उन्हें बैच में मिटाया जाता है. इन दस्तावेज़ों को अब भी क्वेरी किया जा सकता है या पढ़ा जा सकता है. हालांकि, की गई प्रोग्रेस के आधार पर नतीजे अलग-अलग हो सकते हैं. एक साथ कई आइटम मिटाने की सुविधा, ऑपरेशन शुरू होने के बाद जोड़े गए या बदले गए किसी भी दस्तावेज़ को नहीं मिटाती.

चुनिंदा कलेक्शन ग्रुप को एक साथ मिटाना

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

सबसे सही तरीके

मिटाए गए डेटा को स्किप करने से बचें. इससे क्वेरी की प्रोसेस धीमी हो सकती है.