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

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

लाइव होने में लगने वाले समय की खास जानकारी

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

कीमत

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अनुमतियां

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

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

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

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

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

gcloud components update

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

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

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

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

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

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

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

Google Cloud Console

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

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

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

  3. नेविगेशन मेन्यू में, टिकट के दिखने की अवधि पर क्लिक करें.

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

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

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

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

gcloud

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

 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

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

   gcloud firestore fields ttls list
   

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

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

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

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

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

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

टीटीएल मिटाने की प्रक्रिया को मॉनिटर करना

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

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

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

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

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

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