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

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

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

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

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