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

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

लाइव व्यू की जानकारी

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

कीमत

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gcloud components update

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

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

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

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

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

gcloud

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

 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

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

   gcloud firestore fields ttls list
   

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

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

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

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

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