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

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

लाइव जाने के समय के बारे में खास जानकारी

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

कीमत

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

सीमाएं और सीमाएं

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

TTL मिटाना

TTL (टीटीएल) के ज़रिए कोड मिटाने के इन मुख्य तरीकों पर ध्यान दें:

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

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

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

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

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

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

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

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

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

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

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

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

अनुमतियां

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

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

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

वेब कंटेनर इंस्टॉल करने से पहले

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

gcloud components update

TTL नीति बनाएं

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

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

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

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

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

TTL नीति बनाने के लिए, इन चरणों का पालन करें:

Google Cloud Console

  1. Google Cloud Platform कंसोल में, डेटाबेस पेज पर जाएं.

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

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

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

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

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

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

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

Gcloud

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

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

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

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

TTL की नीतियां देखें

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

Google Cloud Console

  1. Google Cloud Platform कंसोल में, डेटाबेस पेज पर जाएं.

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

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

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

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

Gcloud

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

   gcloud firestore fields ttls list
   

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

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

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

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

सभी चालू और हाल ही में पूरे हुए ऑपरेशन देखने के लिए, operations list कमांड का इस्तेमाल करें:

gcloud firestore operations list

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

TTL नीति बंद करना

TTL नीति को बंद करने के लिए, इन चरणों का पालन करें:

Google Cloud Console

  1. Google Cloud Platform कंसोल में, डेटाबेस पेज पर जाएं.

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

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

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

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

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

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

Gcloud

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

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

TTL (टीटीएल) के मिटाए जाने की जानकारी पर नज़र रखना

TTL (टीटीएल) से मिटाई गई चीज़ों के बारे में मेट्रिक देखने के लिए, क्लाउड मॉनिटरिंग की सुविधा का इस्तेमाल किया जा सकता है. Cloud Firestore, टीटीएल के लिए ये मेट्रिक उपलब्ध कराता है:

मेट्रिक का टाइप मेट्रिक का नाम मेट्रिक की जानकारी
firestore.googleapis.com/document/ttl_deletion_count कुल कितने समय तक लाइव रहते हुए मिटाने की संख्या

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

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays समयसीमा खत्म होने और उसे मिटाने में देरी होने तक

TTL नीति के तहत दस्तावेज़ की समय-सीमा खत्म होने और इसे असल में मिटाए जाने के बीच का समय बीत गया है.

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