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

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

टाइम टू लिव की खास जानकारी

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

कीमत

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

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

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

टीटीएल के तहत मिटाना

टीटीएल के तहत मिटाने की सुविधा के मुख्य व्यवहार के बारे में यहां बताया गया है:

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

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

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

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

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

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

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

  • Cloud Firestore किसी दस्तावेज़ का ऐक्सेस तभी खत्म करता है, जब टीटीएल फ़ील्ड को वैल्यू के खास टाइप पर सेट किया जाता है. स्टैंडर्ड एडिशन वाले डेटाबेस के लिए, फ़ील्ड को Date and time वैल्यू पर सेट करना ज़रूरी है. Enterprise एडिशन वाले डेटाबेस के लिए, फ़ील्ड को Date and time वैल्यू या Array वैल्यू पर सेट करना ज़रूरी है. इसमें 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 आइडेंटिटी ऐंड ऐक्सेस मैनेजमेंट की भूमिकाएं देखें.

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

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

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

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

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

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

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

Google Cloud Console

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

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

  2. डेटाबेस की सूची में से, ज़रूरी डेटाबेस चुनें.

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

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

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

  6. ज़रूरी नहीं: ऐक्सेस खत्म होने का ऑफ़सेट कॉन्फ़िगर करें. कोई वैल्यू डालें और कोई यूनिट (दिन, घंटे, मिनट या सेकंड) चुनें. डिफ़ॉल्ट रूप से, ऑफ़सेट 0 होता है.

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

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

gcloud

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

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

ऐक्सेस खत्म होने के ऑफ़सेट के साथ टीटीएल चालू करने के लिए, --expiration-offset फ़्लैग जोड़ें:

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

expiration_offset को अवधि से बदलें. उदाहरण के लिए, 7d सात दिनों के लिए या 24h 24 घंटों के लिए. अगर इस फ़्लैग को छोड़ दिया जाता है, तो ऐक्सेस खत्म होने का ऑफ़सेट डिफ़ॉल्ट रूप से 0 पर सेट हो जाता है.

टीटीएल नीति को चालू करने में लगने वाला समय

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

टीटीएल नीतियां देखना

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

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
   

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

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

चालू और हाल ही में पूरी हुई सभी कार्रवाइयां देखने के लिए, 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 CLI को कार्रवाई पूरी होने का इंतज़ार न करना पड़े.

   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 मेट्रिक के साथ डैशबोर्ड सेट अप करने के लिए, पसंद के मुताबिक डैशबोर्ड मैनेज करना और डैशबोर्ड में विजेट जोड़ना देखें.