TTL की नीतियों की मदद से, डेटा का रखरखाव मैनेज करें

इस पेज पर, टाइम टू लिव (टीटीएल) नीतियां कॉन्फ़िगर करने के लिए, Google Cloud Console और Google Cloud CLI का इस्तेमाल करने का तरीका बताया गया है. इस पेज को पढ़ने से पहले, आपको Cloud Firestore डेटा मॉडल के बारे में पता होना चाहिए.

लाइव व्यू की खास जानकारी

टीटीएल नीतियों का इस्तेमाल करके, अपने डेटाबेस से पुराना डेटा अपने-आप हटाएं. टीटीएल नीति, किसी फ़ील्ड को किसी कलेक्शन ग्रुप में मौजूद दस्तावेज़ों के लिए समयसीमा खत्म होने का समय तय करती है. टीटीएल की मदद से, पुराने डेटा को हटाकर स्टोरेज के खर्च को कम किया जा सकता है. आम तौर पर, डेटा की समयसीमा खत्म होने के 24 घंटे के अंदर उसे मिटा दिया जाता है.

कीमत

टीटीएल के हिसाब से मिटाने की कार्रवाइयों को, दस्तावेज़ मिटाने की लागत में गिना जाता है. डेटा मिटाने की कार्रवाइयों की कीमत के बारे में जानने के लिए, Cloud Firestore की कीमत देखें.

सीमाएं और पाबंदियां

  • हर कलेक्शन ग्रुप के लिए, सिर्फ़ एक फ़ील्ड को टीटीएल फ़ील्ड के तौर पर मार्क किया जा सकता है.
  • फ़ील्ड लेवल पर ज़्यादा से ज़्यादा 500 कॉन्फ़िगरेशन की अनुमति है. एक फ़ील्ड कॉन्फ़िगरेशन में, एक ही फ़ील्ड के लिए कई कॉन्फ़िगरेशन हो सकते हैं. उदाहरण के लिए, एक ही फ़ील्ड के लिए इंडेक्सिंग से छूट और टीटीएल की नीति को, सीमा के हिसाब से एक फ़ील्ड कॉन्फ़िगरेशन माना जाता है.
  • Datastore मोड में Firestore का इस्तेमाल करने वाले ग्राहकों के लिए, टीटीएल का इस्तेमाल Optimistic With Entity Groups के कॉन्करेंसी मोड के साथ नहीं किया जा सकता. कॉन्करेंसी मोड को ऑप्टिमिस्टिक कॉन्करेंसी मोड में बदलें.

टीटीएल मिटाना

टीटीएल के आधार पर डेटा मिटाने की सुविधा से जुड़े इन मुख्य पहलुओं पर ध्यान दें:

  • टीटीएल के ज़रिए डेटा मिटाने की प्रोसेस में कुछ समय लगता है. समयसीमा खत्म हो चुके दस्तावेज़, क्वेरी और लुकअप अनुरोधों में तब तक दिखते रहते हैं, जब तक टीटीएल प्रोसेस उन्हें मिटा नहीं देती. टीटीएल ट्रेड को मिटाने में लगने वाला समय, ताकि मिटाने की टोटल कॉस्ट ऑफ़ ओनरशिप कम हो सके. आम तौर पर, डेटा की समयसीमा खत्म होने के 24 घंटे के अंदर उसे मिटा दिया जाता है.

  • टीटीएल के ज़रिए किसी दस्तावेज़ को मिटाने से, उस दस्तावेज़ के तहत मौजूद सब-कलेक्शन नहीं मिटते.

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

  • अगर किसी दस्तावेज़ की समयसीमा खत्म हो चुकी है और आपने कलेक्शन में नई टीटीएल नीति जोड़ी है, तो टीटीएल नीति के सेटअप होने और चालू होने के 24 घंटों के अंदर दस्तावेज़ मिटा दिया जाएगा.

  • टीटीएल, दस्तावेज़ों को उसी क्रम में नहीं मिटाता जिस क्रम में उनके खत्म होने के टाइमस्टैंप होते हैं.

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

  • Cloud Firestore हमेशा सबसे नए टीटीएल फ़ील्ड का इस्तेमाल करेगा, ताकि यह तय किया जा सके कि कुकी कब खत्म होगी. उदाहरण के लिए, अगर किसी ऐसे दस्तावेज़ के टीटीएल फ़ील्ड को बाद की तारीख में अपडेट किया जाता है जिसकी समयसीमा खत्म हो गई है, लेकिन जिसे अब तक नहीं मिटाया गया है, तो दस्तावेज़ की समयसीमा खत्म नहीं होगी और नई तारीख का इस्तेमाल किया जाएगा.

  • Cloud Firestore किसी दस्तावेज़ की समयसीमा सिर्फ़ तब खत्म करता है, जब टीटीएल फ़ील्ड को Date and time टाइप पर सेट किया गया हो. इस फ़ील्ड को खाली छोड़ने या null जैसी वैल्यू पर सेट करने से, हर दस्तावेज़ के हिसाब से समयसीमा खत्म होने की सुविधा बंद की जा सकती है.

  • टीटीएल को इस तरह से डिज़ाइन किया गया है कि इससे डेटाबेस की अन्य गतिविधियों पर कम से कम असर पड़े. टीटीएल की वजह से मिटाए गए डेटा को कम प्राथमिकता दी जाती है. टीटीएल के आधार पर मिटाए गए डेटा की वजह से होने वाली ट्रैफ़िक में अचानक बढ़ोतरी को कम करने के लिए, अन्य रणनीतियां भी लागू की जाती हैं.

  • टीटीएल के ज़रिए मिटाने की प्रोसेस, सभी चालू स्नैपशॉट लिसनर और Cloud Functions Cloud Firestore ट्रिगर को कॉल करती है.

टीटीएल फ़ील्ड और इंडेक्स

टीटीएल फ़ील्ड को इंडेक्स किया जा सकता है या इंडेक्स नहीं किया जा सकता. हालांकि, टीटीएल फ़ील्ड एक टाइमस्टैंप होता है. इसलिए, फ़ील्ड को इंडेक्स करने से, ज़्यादा ट्रैफ़िक रेट पर परफ़ॉर्मेंस पर असर पड़ सकता है. टाइमस्टैंप फ़ील्ड को इंडेक्स करने से हॉटस्पॉट बन सकते हैं. यह सबसे सही तरीकों के ख़िलाफ़ है. हॉटस्पॉट, दस्तावेज़ की किसी छोटी रेंज में डेटा को पढ़ने, लिखने, और मिटाने की ज़्यादा दरें होती हैं.

डिफ़ॉल्ट रूप से, Cloud Firestore सभी फ़ील्ड के लिए सिंगल-फ़ील्ड इंडेक्स बनाता है. टीटीएल फ़ील्ड पर इंडेक्स बंद करने के लिए, एक फ़ील्ड के लिए इंडेक्सिंग से छूट दी जा सकती है.

अनुमतियां

टीटीएल नीति को कॉन्फ़िगर करने वाले प्रिंसिपल को प्रोजेक्ट में यह अनुमति देनी होगी:

  • टीटीएल की नीतियां देखने के लिए, datastore.indexes.list और datastore.indexes.get अनुमतियां ज़रूरी हैं.
  • टीटीएल की नीतियों में बदलाव करने के लिए, datastore.indexes.update अनुमति ज़रूरी है.
  • टीटीएल की कार्रवाइयों की स्थिति देखने के लिए, datastore.operations.list और datastore.operations.get की ज़रूरत होती है.

इन अनुमतियों को असाइन करने वाली भूमिकाओं के बारे में जानने के लिए, Cloud Firestore Identity and Access Management की भूमिकाएं देखें.

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

टीटीएल की नीतियों को मैनेज करने के लिए gcloud CLI का इस्तेमाल करने से पहले, gcloud components update कमांड का इस्तेमाल करके, कॉम्पोनेंट को उपलब्ध सबसे नए वर्शन पर अपडेट करें:

gcloud components update

टीटीएल की नीति बनाना

टीटीएल नीति बनाते समय, किसी दस्तावेज़ फ़ील्ड को कलेक्शन ग्रुप में मौजूद दस्तावेज़ों के लिए समयसीमा खत्म होने का समय तय किया जाता है.

टीटीएल, मिटाए जाने के लिए ज़रूरी दस्तावेज़ों की पहचान करने के लिए, तय किए गए फ़ील्ड का इस्तेमाल करता है. यह टीटीएल फ़ील्ड, Date and time टाइप का होना चाहिए. आपके पास ऐसा फ़ील्ड चुनने का विकल्प होता है जो पहले से मौजूद है. इसके अलावा, ऐसा फ़ील्ड भी चुना जा सकता है जिसे आपको बाद में जोड़ना है.

टीटीएल फ़ील्ड की वैल्यू सेट करने से पहले, इन बातों का ध्यान रखें:

  • टीटीएल फ़ील्ड की वैल्यू, आने वाले समय, अभी या बीते समय की हो सकती है. अगर वैल्यू में पिछली तारीख का समय दिया गया है, तो दस्तावेज़ को तुरंत मिटाया जा सकता है. उदाहरण के लिए, expireAt फ़ील्ड के साथ टीटीएल नीति बनाई जा सकती है. इसके बाद, इसे मौजूदा दस्तावेज़ों में जोड़ा जा सकता है.

  • किसी अन्य डेटा टाइप का इस्तेमाल करने या टीटीएल फ़ील्ड की वैल्यू सेट न करने पर, दस्तावेज़ के लिए टीटीएल बंद हो जाएगा.

टीटीएल नीति बनाने के लिए, यह तरीका अपनाएं:

Google Cloud Console

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, टाइम-टू-लाइव पर क्लिक करें.

  4. नीति बनाएं पर क्लिक करें.

  5. कलेक्शन ग्रुप का नाम और टाइमस्टैंप फ़ील्ड का नाम डालें.

  6. बनाएं पर क्लिक करें.

कंसोल, टाइम-टू-लाइव पेज पर वापस आ जाता है. अगर ऑपरेशन सफलतापूर्वक शुरू हो जाता है, तो पेज, टीटीएल की नीतियों वाली टेबल में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.

gcloud

टीटीएल नीति को कॉन्फ़िगर करने के लिए, firestore fields ttls update कमांड का इस्तेमाल करें. --async फ़्लैग जोड़ें, ताकि gcloud सीएलआई को कार्रवाई पूरी होने का इंतज़ार न करना पड़े.

 gcloud firestore fields ttls update
  ttl_field --collection-group=collection_group_name
  --enable-ttl 

टीटीएल नीति को चालू करने की अवधि

खाली डेटाबेस में भी टीटीएल नीति को चालू होने में 10 मिनट या उससे ज़्यादा समय लग सकता है. कोई कार्रवाई शुरू करने के बाद, टर्मिनल को बंद करने से कार्रवाई रद्द नहीं होती.

टीटीएल से जुड़ी नीतियां देखना

टीटीएल की नीतियां और उनकी स्थितियां देखने के लिए, यह तरीका अपनाएं:

Google Cloud Console

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, टाइम-टू-लाइव पर क्लिक करें.

कंसोल में, आपके डेटाबेस के लिए टीटीएल नीतियों की सूची दी गई है. इसमें हर नीति की स्थिति भी शामिल है.

gcloud

टीटीएल नीति को कॉन्फ़िगर करने के लिए, firestore fields ttls list कमांड का इस्तेमाल करें. नीचे दी गई कमांड, सभी टीटीएल नीतियों की सूची दिखाती है.

   gcloud firestore fields ttls list
   

किसी कलेक्शन ग्रुप के तहत टीटीएल की नीतियां दिखाने के लिए, इसका इस्तेमाल करें:

   gcloud firestore fields ttls list  --collection-group=collection_group_name
   

कार्रवाई की जानकारी देखना

CREATING स्थिति में मौजूद टीटीएल नीति के बारे में ज़्यादा जानकारी देखने के लिए, gcloud CLI का इस्तेमाल किया जा सकता है.

operations list कमांड का इस्तेमाल करके, चालू और हाल ही में पूरी हुई सभी कार्रवाइयां देखें:

gcloud firestore operations list

जवाब में, ऑपरेशन की प्रोग्रेस का अनुमान शामिल होता है.

टीटीएल की नीति बंद करना

टीटीएल की नीति बंद करने के लिए, यह तरीका अपनाएं:

Google Cloud Console

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, टाइम-टू-लाइव पर क्लिक करें.

  4. टीटीएल नीति की टेबल में, टीटीएल नीति की लाइन ढूंढें. इस टेबल की लाइन में, मिटाएं (ट्रैश कैन) बटन पर क्लिक करें.

  5. मिटाएं पर क्लिक करके पुष्टि करें.

कंसोल, टाइम-टू-लाइव पेज पर वापस आ जाता है. सफल होने पर, Cloud Firestore टेबल से टीटीएल नीति हटा देता है.

gcloud

1. टीटीएल नीति को कॉन्फ़िगर करने के लिए, firestore fields ttls update कमांड का इस्तेमाल करें. --async फ़्लैग जोड़ें, ताकि gcloud सीएलआई को कार्रवाई पूरी होने का इंतज़ार न करना पड़े.

   gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl
   

टीटीएल के हिसाब से मिटाए गए डेटा पर नज़र रखना

टीटीएल के आधार पर मिटाए गए डेटा के बारे में मेट्रिक देखने के लिए, Cloud Monitoring का इस्तेमाल करें. Cloud Firestore, टीटीएल के लिए ये मेट्रिक उपलब्ध कराता है:

मेट्रिक का टाइप मेट्रिक का नाम मेट्रिक की जानकारी
firestore.googleapis.com/document/ttl_deletion_count समयसीमा खत्म होने के बाद मिटाए गए डेटा की संख्या

टीटीएल नीतियों के तहत मिटाए गए दस्तावेज़ों की कुल संख्या.

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays टाइम-टू-लाइव की समयसीमा खत्म होने से लेकर डेटा मिटाने में लगने वाला समय

टीटीएल नीति के तहत किसी दस्तावेज़ की समयसीमा खत्म होने और उसे मिटाने के बीच का समय.

Cloud Firestore मेट्रिक वाला डैशबोर्ड सेट अप करने के लिए, कस्टम डैशबोर्ड मैनेज करना और डैशबोर्ड विजेट जोड़ना लेख पढ़ें.