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

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

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

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

कीमत

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

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

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

टीटीएल के हिसाब से डेटा मिटाना

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अनुमतियां

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

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

ये अनुमतियां असाइन करने वाली भूमिकाओं के बारे में जानने के लिए, Cloud Firestore पहचान और ऐक्सेस मैनेजमेंट की भूमिकाएं देखें.

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

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

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

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

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

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

gcloud

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

 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 या 24 घंटों के लिए 24h. अगर इस फ़्लैग को शामिल नहीं किया जाता है, तो समयसीमा खत्म होने का ऑफ़सेट डिफ़ॉल्ट रूप से 0 पर सेट हो जाता है.

TTL नीति चालू करने की अवधि

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

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

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

Google Cloud Console

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

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

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

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

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

gcloud

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

   gcloud firestore fields ttls list
   

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

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

ऑपरेशन की जानकारी देखना

gcloud सीएलआई का इस्तेमाल करके, 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 सीएलआई को कार्रवाई पूरी होने का इंतज़ार न करना पड़े.

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