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

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

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

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

कीमत

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अनुमतियां

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 प्रकार का होना चाहिए. ऐसा फ़ील्ड चुना जा सकता है पहले से मौजूद है या किसी फ़ील्ड को बाद में जोड़ा जा सकता है.

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

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

gcloud

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

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

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

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

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

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

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
   

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

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

सभी मौजूदा औरoperations list हाल ही में पूरी की गई कार्रवाइयां:

gcloud firestore operations list

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

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

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

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
   

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

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

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

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

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

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

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