इस पेज पर, 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वैल्यू पर सेट करना ज़रूरी है. इसमें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 CLI को कार्रवाई पूरी होने का इंतज़ार न करना पड़े.
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 को अवधि से बदलें. उदाहरण के लिए, 7d
सात दिनों के लिए या 24h 24 घंटों के लिए. अगर इस फ़्लैग को छोड़ दिया जाता है, तो ऐक्सेस खत्म होने का
ऑफ़सेट डिफ़ॉल्ट रूप से 0 पर सेट हो जाता है.
टीटीएल नीति को चालू करने में लगने वाला समय
टीटीएल नीति को चालू करने में कम से कम 10 मिनट या उससे ज़्यादा समय लग सकता है. कोई कार्रवाई शुरू करने के बाद, टर्मिनल बंद करने पर कार्रवाई रद्द नहीं होती.
टीटीएल नीतियां देखना
टीटीएल नीतियां और उनकी स्थितियां देखने के लिए, यह तरीका अपनाएं:
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 CLI को कार्रवाई पूरी होने का इंतज़ार न करना पड़े.
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 मेट्रिक के साथ डैशबोर्ड सेट अप करने के लिए, पसंद के मुताबिक डैशबोर्ड मैनेज करना और डैशबोर्ड में विजेट जोड़ना देखें.