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

यह सिर्फ़ Cloud Firestore Enterprise वर्शन के लिए काम का है.

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

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

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

कीमत

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

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

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

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

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

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

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

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

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

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

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

  • MongoDB के साथ काम करने वाला Cloud Firestore, किसी दस्तावेज़ की समयसीमा सिर्फ़ तब खत्म करता है, जब टीटीएल फ़ील्ड को Date and time या BSON Date टाइप पर सेट किया गया हो. दस्तावेज़ के हिसाब से समयसीमा खत्म होने की सुविधा बंद करने के लिए, फ़ील्ड को खाली छोड़ें या null जैसी वैल्यू पर सेट करें.

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

टीटीएल फ़ील्ड और इंडेक्स

टीटीएल फ़ील्ड को इंडेक्स किया जा सकता है या इंडेक्स नहीं किया जा सकता. हालांकि, टीटीएल फ़ील्ड एक टाइमस्टैंप होता है. इसलिए, फ़ील्ड को इंडेक्स करने से, ज़्यादा ट्रैफ़िक रेट पर परफ़ॉर्मेंस पर असर पड़ सकता है. टाइमस्टैंप फ़ील्ड को इंडेक्स करने से हॉटस्पॉट बन सकते हैं. यह सबसे सही तरीकों के ख़िलाफ़ है. हॉटस्पॉट, दस्तावेज़ की किसी छोटी रेंज में डेटा को पढ़ने, लिखने, और मिटाने की ज़्यादा दरें होती हैं.

अनुमतियां

टीटीएल नीति को कॉन्फ़िगर करने वाले प्रिंसिपल को प्रोजेक्ट में यह अनुमति देनी होगी:

  • टीटीएल की नीतियां देखने के लिए, 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

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

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

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

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

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

gcloud

  1. gcloud CLI सीएलआई को इंस्टॉल करें और शुरू करें.

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

     gcloud firestore fields ttls update
    ttl_field --collection-group=collection_name
    --enable-ttl 

टीटीएल नीति को चालू करने की अवधि

खाली डेटाबेस में भी, टीटीएल नीति को चालू होने में 10 मिनट या उससे ज़्यादा समय लग सकता है. कोई कार्रवाई शुरू करने के बाद, टर्मिनल को बंद करने से कार्रवाई रद्द नहीं होती.

टीटीएल से जुड़ी नीतियां देखना

टीटीएल की नीतियां और उनकी स्थितियां देखने के लिए, यह तरीका अपनाएं:

Google Cloud Console

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

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

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

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

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

gcloud

  1. gcloud CLI सीएलआई को इंस्टॉल करें और शुरू करें.

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

    gcloud firestore fields ttls list
    

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

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

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

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

चल रही और हाल ही में पूरी हुई सभी कार्रवाइयां देखने के लिए, operations list कमांड का इस्तेमाल करें:

gcloud firestore operations list

जवाब में, ऑपरेशन की प्रोग्रेस का अनुमान शामिल होता है.

टीटीएल की नीति बंद करना

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

Google Cloud Console

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

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

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

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

  4. टीटीएल नीति की टेबल में, टीटीएल नीति की लाइन ढूंढें. इस टेबल की लाइन में, मिटाएं (ट्रैश कैन) बटन पर क्लिक करें.

  5. मिटाएं पर क्लिक करके पुष्टि करें.

कंसोल, टाइम-टू-लाइव पेज पर वापस आ जाता है. समीक्षा के बाद, MongoDB के साथ काम करने वाला Cloud Firestore, टेबल से टीटीएल नीति हटा देता है.

gcloud

  1. gcloud CLI सीएलआई को इंस्टॉल करें और शुरू करें.

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

    gcloud firestore fields ttls update ttl_field --collection-group=collection_name --disable-ttl
    

टीटीएल के हिसाब से मिटाए गए डेटा पर नज़र रखना

टीटीएल के आधार पर मिटाए गए डेटा के बारे में मेट्रिक देखने के लिए, Cloud Monitoring का इस्तेमाल करें. MongoDB के साथ काम करने वाला Cloud Firestore, टीटीएल के लिए ये मेट्रिक उपलब्ध कराता है:

मेट्रिक का टाइप मेट्रिक का नाम मेट्रिक की जानकारी
firestore.googleapis.com/document/ttl_deletion_count मिटाए जाने के लिए तय समय

टीटीएल नीतियों के तहत मिटाए गए दस्तावेज़ों की कुल संख्या.

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays लाइव स्ट्रीम के खत्म होने से लेकर उसे मिटाने में लगने वाला समय

टीटीएल नीति के तहत किसी दस्तावेज़ की समयसीमा खत्म होने और उसे मिटाने के बीच का समय.

MongoDB के साथ काम करने वाली मेट्रिक के साथ Cloud Firestore का डैशबोर्ड सेट अप करने के लिए, कस्टम डैशबोर्ड मैनेज करना और डैशबोर्ड विजेट जोड़ना लेख पढ़ें.