इस पेज पर, Google Cloud Console और Google Cloud CLI का इस्तेमाल करके, टाइम टू लिव (टीटीएल) नीतियां कॉन्फ़िगर करने का तरीका बताया गया है. इस पेज को पढ़ने से पहले, आपको Cloud Firestore डेटा मॉडल के बारे में पता होना चाहिए.
टाइम टू लिव की खास जानकारी
अपने डेटाबेस से पुराने डेटा को अपने-आप हटाने के लिए, टीटीएल नीतियों का इस्तेमाल करें. टीटीएल नीति, किसी कलेक्शन ग्रुप में मौजूद दस्तावेज़ों के लिए, किसी फ़ील्ड को एक्सपायर होने का समय तय करती है. टीटीएल की मदद से, पुराने डेटा को हटाकर स्टोरेज की लागत कम की जा सकती है. आम तौर पर, डेटा के एक्सपायर होने की तारीख के 24 घंटे के अंदर उसे मिटा दिया जाता है.
कीमत
टीटीएल की मदद से मिटाने की कार्रवाइयों को, दस्तावेज़ मिटाने की लागत में गिना जाता है. मिटाने की कार्रवाइयों की कीमत जानने के लिए, Cloud Firestore की कीमत देखें.
सीमाएं और पाबंदियां
- हर कलेक्शन ग्रुप के लिए, सिर्फ़ एक फ़ील्ड को टीटीएल फ़ील्ड के तौर पर मार्क किया जा सकता है.
- फ़ील्ड लेवल पर ज़्यादा से ज़्यादा 500 कॉन्फ़िगरेशन किए जा सकते हैं. एक फ़ील्ड कॉन्फ़िगरेशन में, एक ही फ़ील्ड के लिए कई कॉन्फ़िगरेशन शामिल हो सकते हैं. उदाहरण के लिए, किसी एक फ़ील्ड के लिए इंडेक्सिंग से छूट और उसी फ़ील्ड पर टीटीएल नीति को, सीमा के हिसाब से एक फ़ील्ड कॉन्फ़िगरेशन के तौर पर गिना जाता है.
- Datastore मोड में Firestore का इस्तेमाल करने वाले ग्राहकों के लिए, टीटीएल का इस्तेमाल, Entity Groups के साथ ऑप्टिमिस्टिक के कॉनकरेंसी मोड के साथ नहीं किया जा सकता. कॉनकरेंसी मोड को ऑप्टिमिस्टिक कॉनकरेंसी मोड में बदलने के बारे में सोचें.
टीटीएल की मदद से डेटा मिटाना
टीटीएल की मदद से डेटा मिटाने से जुड़ी इन अहम बातों का ध्यान रखें:
टीटीएल की मदद से डेटा मिटाने की प्रोसेस तुरंत नहीं होती. एक्सपायर हो चुके दस्तावेज़, क्वेरी और लुकअप के अनुरोधों में तब तक दिखते रहते हैं, जब तक टीटीएल की प्रोसेस उन्हें मिटा नहीं देती. टीटीएल की मदद से डेटा मिटाने में लगने वाले समय के मुकाबले, डेटा मिटाने की कुल लागत कम होती है. आम तौर पर, डेटा के एक्सपायर होने की तारीख के 24 घंटे के अंदर उसे मिटा दिया जाता है.
टीटीएल की मदद से किसी दस्तावेज़ को मिटाने पर, उस दस्तावेज़ के तहत मौजूद सबकलेक्शन नहीं मिटते.
किसी मौजूदा कलेक्शन ग्रुप पर टीटीएल नीति लागू करने से, नए टीटीएल नीति के मुताबिक, एक्सपायर हो चुके सभी डेटा को एक साथ मिटा दिया जाता है. ध्यान दें कि एक साथ डेटा मिटाने की प्रोसेस भी तुरंत नहीं होती. यह इस बात पर निर्भर करती है कि उस कलेक्शन ग्रुप के लिए कितना डेटा मौजूद है.
अगर किसी दस्तावेज़ के एक्सपायर होने का समय बीत चुका है और आपने कलेक्शन में नई टीटीएल नीति जोड़ी है, तो टीटीएल नीति के सेटअप होने और चालू होने के 24 घंटे के अंदर दस्तावेज़ मिट जाएगा.
यह ज़रूरी नहीं है कि टीटीएल, दस्तावेज़ों को उनके एक्सपायर होने के टाइमस्टैंप के क्रम में ही मिटाए.
डेटा मिटाने की प्रोसेस, लेन-देन के तौर पर नहीं की जाती. यह ज़रूरी नहीं है कि एक ही समय पर एक्सपायर होने वाले दस्तावेज़, एक ही समय पर मिटाए जाएं. अगर आपको ऐसा करना है, तो क्लाइंट लाइब्रेरी का इस्तेमाल करके डेटा मिटाएं.
Cloud Firestore एक्सपायर होने का समय तय करने के लिए, हमेशा सबसे नए टीटीएल फ़ील्ड का इस्तेमाल करेगा. उदाहरण के लिए, अगर एक्सपायर हो चुके, लेकिन अब तक मिटाए नहीं गए किसी दस्तावेज़ के टीटीएल फ़ील्ड को बाद की तारीख पर अपडेट किया जाता है, तो दस्तावेज़ एक्सपायर नहीं होगा. साथ ही, नई तारीख का इस्तेमाल किया जाएगा.
Cloud Firestore किसी दस्तावेज़ को सिर्फ़ तब एक्सपायर करता है, जब टीटीएल फ़ील्ड को खास वैल्यू टाइप पर सेट किया जाता है. स्टैंडर्ड एडिशन वाले डेटाबेस के लिए, फ़ील्ड को
Date and timeवैल्यू पर सेट करना ज़रूरी है. Enterprise एडिशन वाले डेटाबेस के लिए, फ़ील्ड कोDate and timeवैल्यू या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 आइडेंटिटी ऐंड ऐक्सेस मैनेजमेंट की भूमिकाएं देखें.
टीटीएल नीति बनाना
टीटीएल नीति बनाते समय, किसी कलेक्शन ग्रुप में मौजूद दस्तावेज़ों के लिए, किसी दस्तावेज़ फ़ील्ड को एक्सपायर होने का समय तय किया जाता है.
टीटीएल, मिटाने के लिए ज़रूरी दस्तावेज़ों की पहचान करने के लिए, तय किए गए फ़ील्ड का इस्तेमाल करता है.
स्टैंडर्ड एडिशन वाले डेटाबेस के लिए, टीटीएल फ़ील्ड को Date and time वैल्यू पर सेट करना ज़रूरी है.
Enterprise एडिशन वाले डेटाबेस के लिए, इसे Date and time वैल्यू या Array वैल्यू पर सेट करना ज़रूरी है. इसमें Date and time वैल्यू शामिल होती है. ऐसा फ़ील्ड चुना जा सकता है जो पहले से मौजूद है या ऐसा फ़ील्ड तय किया जा सकता है जिसे बाद में जोड़ा जाना है.
टीटीएल फ़ील्ड की वैल्यू सेट करने से पहले, इन बातों का ध्यान रखें:
टीटीएल फ़ील्ड की वैल्यू, आने वाले समय, अभी या बीते समय की हो सकती है. अगर वैल्यू बीते समय की है, तो दस्तावेज़ तुरंत मिटाने के लिए ज़रूरी हो जाता है. उदाहरण के लिए,
expireAtफ़ील्ड के साथ टीटीएल नीति बनाई जा सकती है. इसके बाद, इसे मौजूदा दस्तावेज़ों में जोड़ा जा सकता है.किसी अन्य डेटा टाइप का इस्तेमाल करने या टीटीएल फ़ील्ड की वैल्यू सेट न करने पर, दस्तावेज़ के लिए टीटीएल बंद हो जाएगा.
टीटीएल नीति बनाने के लिए, यह तरीका अपनाएं:
Google Cloud Console
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची में से, ज़रूरी डेटाबेस चुनें.
नेविगेशन मेन्यू में, टाइम-टू-लिव पर क्लिक करें.
नीति बनाएं पर क्लिक करें.
कलेक्शन ग्रुप का नाम और टाइमस्टैंप फ़ील्ड का नाम डालें.
बनाएं पर क्लिक करें.
कंसोल, टाइम-टू-लिव पेज पर वापस आ जाता है. अगर कार्रवाई सफलतापूर्वक शुरू होती है, तो पेज, टीटीएल नीतियों की टेबल में एक एंट्री जोड़ता है. कार्रवाई पूरी न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.
gcloud
टीटीएल नीति को कॉन्फ़िगर करने के लिए, firestore fields ttls
update
कमांड का इस्तेमाल करें. --async फ़्लैग जोड़ें, ताकि
gcloud सीएलआई को कार्रवाई पूरी होने का इंतज़ार न करना पड़े.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl
टीटीएल नीति को चालू करने में लगने वाला समय
टीटीएल नीति को चालू करने में कम से कम दस मिनट या उससे ज़्यादा समय लग सकता है. कोई कार्रवाई शुरू करने के बाद, टर्मिनल बंद करने से कार्रवाई रद्द नहीं होती.
टीटीएल नीतियां देखना
टीटीएल नीतियां और उनकी स्थितियां देखने के लिए, यह तरीका अपनाएं:
Google Cloud Console
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची में से, ज़रूरी डेटाबेस चुनें.
नेविगेशन मेन्यू में, टाइम-टू-लिव पर क्लिक करें.
कंसोल, आपके डेटाबेस के लिए टीटीएल नीतियां दिखाता है. साथ ही, हर नीति की स्थिति भी दिखाता है.
gcloud
टीटीएल नीति को कॉन्फ़िगर करने के लिए,
firestore fields ttls list
कमांड का इस्तेमाल करें. यहां दिया गया कमांड, सभी टीटीएल
नीतियां दिखाता है.
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
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची में से, ज़रूरी डेटाबेस चुनें.
नेविगेशन मेन्यू में, टाइम-टू-लिव पर क्लिक करें.
टीटीएल नीति की टेबल में, टीटीएल नीति वाली पंक्ति ढूंढें. इस टेबल की पंक्ति में, मिटाएं (ट्रैश कैन) बटन पर क्लिक करें.
मिटाएं पर क्लिक करके पुष्टि करें.
कंसोल, टाइम-टू-लिव पेज पर वापस आ जाता है. कार्रवाई पूरी होने पर, 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 मेट्रिक के साथ डैशबोर्ड सेट अप करने के लिए, पसंद के मुताबिक डैशबोर्ड मैनेज करना और डैशबोर्ड में विजेट जोड़ना देखें.