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