इस पेज पर, टाइम-टू-लिव (टीटीएल) की नीतियों को कॉन्फ़िगर करने के लिए, Google Cloud Console और Google Cloud CLI का इस्तेमाल करने का तरीका बताया गया है. इस पेज को पढ़ने से पहले, आपको Cloud Firestore डेटा मॉडल को समझना चाहिए.
लाइव होने में लगने वाले समय की खास जानकारी
अपने डेटाबेस से पुराना डेटा अपने-आप हटाने के लिए, टीटीएल नीतियों का इस्तेमाल करें. टीटीएल नीति, किसी फ़ील्ड को किसी कलेक्शन ग्रुप में दस्तावेज़ों के लिए, समयसीमा खत्म होने का समय तय करती है. टीटीएल की मदद से, पुराने डेटा को हटाकर स्टोरेज के खर्च को कम किया जा सकता है. आम तौर पर, डेटा की समयसीमा खत्म होने के 24 घंटे के अंदर उसे मिटा दिया जाता है.
कीमत
टीटीएल की मदद से दस्तावेज़ मिटाने की कार्रवाइयों को, दस्तावेज़ मिटाने की लागत में गिना जाता है. मिटाने की कार्रवाइयों की कीमत के बारे में जानने के लिए, Cloud Firestore की कीमत देखें.
सीमाएं और पाबंदियां
- हर कलेक्शन ग्रुप में सिर्फ़ एक फ़ील्ड को टीटीएल फ़ील्ड के तौर पर मार्क किया जा सकता है.
- फ़ील्ड लेवल पर कुल 200 कॉन्फ़िगरेशन की अनुमति है. एक फ़ील्ड कॉन्फ़िगरेशन में, एक ही फ़ील्ड के लिए कई कॉन्फ़िगरेशन हो सकते हैं. उदाहरण के लिए, एक फ़ील्ड को इंडेक्स करने से छूट और उसी फ़ील्ड पर टीटीएल नीति, दोनों को एक फ़ील्ड कॉन्फ़िगरेशन माना जाता है.
- डेटास्टोर मोड में Firestore का इस्तेमाल करने वाले ग्राहकों के लिए, टीटीएल का इस्तेमाल इकाई ग्रुप के साथ ऑप्टिमिस्टिक्स के एक साथ कई लेन-देन वाले मोड के साथ नहीं किया जा सकता. एक साथ कई टास्क करने की सुविधा के मोड को एक साथ कई टास्क करने की सुविधा के ऑप्टिमिस्टिक मोड में बदलें.
टीटीएल मिटाना
टीटीएल के हिसाब से डेटा मिटाने की सुविधा के इन मुख्य व्यवहारों पर ध्यान दें:
टीटीएल की मदद से डेटा मिटाने में थोड़ा समय लगता है. समयसीमा खत्म हो चुके दस्तावेज़, क्वेरी और लुकअप अनुरोधों में तब तक दिखते रहेंगे, जब तक कि टीटीएल प्रोसेस उन्हें मिटा नहीं देती. TTL, डेटा मिटाने की समयसीमा को कम करने के लिए, डेटा मिटाने की समयसीमा को बढ़ा देता है. इससे, डेटा मिटाने की कुल लागत कम हो जाती है. आम तौर पर, डेटा की समयसीमा खत्म होने के 24 घंटे के अंदर उसे मिटा दिया जाता है.
टीटीएल की मदद से किसी दस्तावेज़ को मिटाने पर, उस दस्तावेज़ के सब-कलेक्शन नहीं मिटते.
किसी मौजूदा कलेक्शन ग्रुप पर टीटीएल नीति लागू करने पर, टीटीएल की नई नीति के मुताबिक, समयसीमा खत्म हो चुके पूरे डेटा को एक साथ मिटा दिया जाता है. ध्यान दें कि एक साथ कई आइटम मिटाने की प्रोसेस भी तुरंत नहीं होती. यह इस बात पर निर्भर करता है कि कलेक्शन ग्रुप में कितना डेटा मौजूद है.
अगर किसी दस्तावेज़ की समयसीमा खत्म हो चुकी है और आपने कलेक्शन में नई टीटीएल नीति जोड़ी है, तो टीटीएल नीति के सेटअप होने और चालू होने के 24 घंटे के अंदर दस्तावेज़ मिटा दिया जाएगा.
यह ज़रूरी नहीं है कि टीटीएल, दस्तावेज़ों को उसी क्रम में मिटाए जिस क्रम में उनके खत्म होने का टाइमस्टैंप है.
डेटा को लेन-देन के हिसाब से नहीं मिटाया जाता. यह ज़रूरी नहीं है कि जिन दस्तावेज़ों की समयसीमा एक ही दिन खत्म हो रही है उन्हें एक ही समय पर मिटाया जाए. अगर आपको इस तरह की सुविधा चाहिए, तो क्लाइंट लाइब्रेरी का इस्तेमाल करके डेटा मिटाएं.
Cloud Firestore, खत्म होने की तारीख तय करने के लिए, हमेशा नए टीटीएल फ़ील्ड का इस्तेमाल करेगा. उदाहरण के लिए, अगर किसी दस्तावेज़ की समयसीमा खत्म हो गई है, लेकिन उसे अब तक मिटाया नहीं गया है और उसके टीटीएल फ़ील्ड को किसी बाद की तारीख पर अपडेट किया गया है, तो दस्तावेज़ की समयसीमा खत्म नहीं होगी और नई तारीख का इस्तेमाल किया जाएगा.
टीटीएल को डेटाबेस की अन्य गतिविधियों पर पड़ने वाले असर को कम करने के लिए डिज़ाइन किया गया है. टीटीएल की वजह से डेटा मिटाने की प्रोसेस को कम प्राथमिकता दी जाती है. टीटीएल की वजह से डेटा मिटाने पर होने वाले ट्रैफ़िक स्पाइक को कम करने के लिए, अन्य रणनीतियां भी अपनाई गई हैं.
टीटीएल की मदद से मिटाने पर, सभी ऐक्टिव स्नैपशॉट लिसनर को कॉल किया जाता है और Cloud Functions Cloud Firestore ट्रिगर ट्रिगर होते हैं.
TTL फ़ील्ड और इंडेक्स
टीटीएल फ़ील्ड को इंडेक्स किया जा सकता है या इंडेक्स नहीं किया जा सकता. हालांकि, टीटीएल फ़ील्ड एक टाइमस्टैंप होता है. इसलिए, फ़ील्ड को इंडेक्स करने से ज़्यादा ट्रैफ़िक रेट पर परफ़ॉर्मेंस पर असर पड़ सकता है. टाइमस्टैंप फ़ील्ड को इंडेक्स करने से, हॉटस्पॉट बन सकते हैं. यह सबसे सही तरीकों के मुताबिक नहीं है. हॉटस्पॉट, दस्तावेज़ की छोटी सी रेंज में, पढ़ने, लिखने, और मिटाने की दरें ज़्यादा होती हैं.
डिफ़ॉल्ट रूप से, 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
टीटीएल की नीति बनाना
टीटीएल नीति बनाते समय, किसी दस्तावेज़ फ़ील्ड को कलेक्शन ग्रुप में मौजूद दस्तावेज़ों के लिए, समयसीमा खत्म होने का समय तय किया जाता है.
टीटीएल, मिटाए जा सकने वाले दस्तावेज़ों की पहचान करने के लिए, किसी खास फ़ील्ड का इस्तेमाल करता है.
यह टीटीएल फ़ील्ड, Date and time
टाइप का होना चाहिए. आपके पास पहले से मौजूद कोई फ़ील्ड चुनने का विकल्प है. इसके अलावा, आपके पास ऐसा फ़ील्ड चुनने का विकल्प भी है जिसे बाद में जोड़ना है.
टीटीएल फ़ील्ड की वैल्यू सेट करने से पहले, इन बातों का ध्यान रखें:
टीटीएल फ़ील्ड की वैल्यू, आने वाले समय, मौजूदा समय या बीते समय की हो सकती है. अगर वैल्यू, किसी समय के पहले की है, तो दस्तावेज़ को तुरंत मिटाया जा सकता है. उदाहरण के लिए, आपके पास
expireAt
फ़ील्ड की मदद से टीटीएल नीति बनाने का विकल्प है. इसके बाद, इस नीति को मौजूदा दस्तावेज़ों में जोड़ा जा सकता है.किसी दूसरे डेटा टाइप का इस्तेमाल करने या TTL फ़ील्ड की वैल्यू सेट न करने पर, अलग-अलग दस्तावेज़ के लिए TTL बंद हो जाएगा.
टीटीएल नीति बनाने के लिए, यह तरीका अपनाएं:
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
टीटीएल नीति चालू करने की अवधि
खाली डेटाबेस में भी, टीटीएल नीति चालू करने में 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
ऑपरेशन की जानकारी देखना
CREATING
स्थिति वाली टीटीएल नीति के बारे में ज़्यादा जानकारी देखने के लिए, gcloud CLI का इस्तेमाल किया जा सकता है.
चल रहे और हाल ही में पूरे हुए सभी ऑपरेशन देखने के लिए, 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 मेट्रिक वाला डैशबोर्ड सेट अप करने के लिए, कस्टम डैशबोर्ड मैनेज करना और डैशबोर्ड विजेट जोड़ना लेख पढ़ें.