अपने डेटाबेस से डेटा मिटाने के लिए, मैनेज की गई एक साथ कई आइटम मिटाने की सेवा का इस्तेमाल करें. इस सुविधा की मदद से, एक या एक से ज़्यादा कलेक्शन ग्रुप मिटाए जा सकते हैं.
इस पेज पर, मैनेज की गई एक साथ कई दस्तावेज़ मिटाने की सेवा का इस्तेमाल करके, एक साथ कई दस्तावेज़ मिटाने का तरीका बताया गया है. 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
को ऐक्सेस करें.पक्का करें कि
gcloud
को सही प्रोजेक्ट के लिए कॉन्फ़िगर किया गया हो:gcloud config set project [PROJECT_ID]
Google Cloud SDK टूल इंस्टॉल करें और उसे इस्तेमाल करना शुरू करें.
एक साथ कई डिवाइसों का डेटा मिटाना
एक साथ कई दस्तावेज़ मिटाने की प्रोसेस में, सबसे पहले आपके डेटाबेस में मौजूद सभी दस्तावेज़ों का पता लगाया जाता है. इसके बाद, उन्हें बैच में मिटाया जाता है. इन दस्तावेज़ों को अब भी क्वेरी किया जा सकता है या पढ़ा जा सकता है. हालांकि, किए गए काम के आधार पर नतीजे अलग-अलग हो सकते हैं. एक साथ कई दस्तावेज़ मिटाने की सुविधा का इस्तेमाल करने पर, वे दस्तावेज़ नहीं मिटते जिन्हें इस सुविधा का इस्तेमाल शुरू होने के बाद जोड़ा या बदला गया है.
चुनिंदा कलेक्शन ग्रुप को एक साथ मिटाना
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 की रिपोर्ट वाले पेज पर, इस लेबल का इस्तेमाल करके एक साथ कई आइटम मिटाने से जुड़ी लागत देखी जा सकती है.
सबसे सही तरीके
मिटाए गए डेटा को स्किप करने से बचें. इससे क्वेरी की प्रोसेस धीमी हो सकती है.