এই পৃষ্ঠাটি বর্ণনা করে কিভাবে Google Cloud কনসোল এবং Google Cloud CLI ব্যবহার করে টাইম টু লাইভ (TTL) নীতিগুলি কনফিগার করতে হয়। এই পৃষ্ঠাটি পড়ার আগে, আপনার Cloud Firestore ডেটা মডেলটি বোঝা উচিত।
লাইভের সময় ওভারভিউ
আপনার ডাটাবেস থেকে স্বয়ংক্রিয়ভাবে পুরানো ডেটা অপসারণ করতে TTL নীতি ব্যবহার করুন। একটি TTL নীতি একটি নির্দিষ্ট সংগ্রহ গোষ্ঠীর নথির মেয়াদ শেষ হওয়ার সময় হিসাবে একটি নির্দিষ্ট ক্ষেত্রকে নির্ধারণ করে। TTL এর সাহায্যে, আপনি পুরানো ডেটা পরিষ্কার করে স্টোরেজ খরচ কমাতে পারেন। ডেটা সাধারণত মেয়াদ শেষ হওয়ার 24 ঘন্টার মধ্যে মুছে ফেলা হয়।
মূল্য নির্ধারণ
টিটিএল ডিলিট অপারেশনগুলি আপনার ডকুমেন্ট ডিলিট খরচের মধ্যে গণনা করা হবে। ডিলিট অপারেশনের মূল্য নির্ধারণের জন্য, Cloud Firestore মূল্য নির্ধারণ দেখুন।
সীমাবদ্ধতা এবং সীমাবদ্ধতা
- আপনি প্রতি সংগ্রহ গ্রুপে শুধুমাত্র একটি ক্ষেত্রকে TTL ক্ষেত্র হিসেবে চিহ্নিত করতে পারেন।
- আপনার সর্বোচ্চ ৫০০টি ফিল্ড লেভেল কনফিগারেশন অনুমোদিত। একটি ফিল্ড কনফিগারেশনে একই ফিল্ডের জন্য একাধিক কনফিগারেশন থাকতে পারে। উদাহরণস্বরূপ, একটি সিঙ্গেল-ফিল্ড ইনডেক্সিং এক্সেম্পশন এবং একই ফিল্ডে একটি TTL নীতি সীমার দিকে একটি ফিল্ড কনফিগারেশন হিসাবে গণনা করা হয়।
- ডেটাস্টোর মোডে ফায়ারস্টোর গ্রাহকদের জন্য, TTL অপটিমিস্টিক উইথ এন্টিটি গ্রুপের কনকারেন্সি মোডের সাথে ব্যবহার করা যাবে না। কনকারেন্সি মোডকে অপটিমিস্টিক কনকারেন্সি মোডে পরিবর্তন করার কথা বিবেচনা করুন।
TTL মুছে ফেলা
TTL-চালিত মুছে ফেলার নিম্নলিখিত মূল আচরণগুলি লক্ষ্য করুন:
TTL এর মাধ্যমে মুছে ফেলা তাৎক্ষণিক প্রক্রিয়া নয়। মেয়াদোত্তীর্ণ নথিগুলি কোয়েরি এবং লুকআপ অনুরোধে প্রদর্শিত হতে থাকে যতক্ষণ না TTL প্রক্রিয়াটি আসলে সেগুলি মুছে ফেলে। TTL মুছে ফেলার জন্য মালিকানার মোট খরচ হ্রাসের সুবিধার জন্য মুছে ফেলার সময়োপযোগীতা বিনিময় করে। ডেটা সাধারণত মেয়াদ শেষ হওয়ার 24 ঘন্টার মধ্যে মুছে ফেলা হয়।
TTL এর মাধ্যমে একটি ডকুমেন্ট মুছে ফেলা হলে সেই ডকুমেন্টের অধীনে থাকা উপ-সংগ্রহগুলি মুছে যাবে না।
নতুন TTL নীতি অনুসারে, বিদ্যমান সংগ্রহ গোষ্ঠীতে TTL নীতি প্রয়োগ করলে সমস্ত মেয়াদোত্তীর্ণ ডেটা বাল্কভাবে মুছে ফেলা হবে। মনে রাখবেন যে এই বাল্ক মুছে ফেলাও তাৎক্ষণিক নয় এবং এটি সেই সংগ্রহ গোষ্ঠীর জন্য কতটা ডেটা বিদ্যমান তার উপর নির্ভর করে।
যদি কোনও ডকুমেন্টের মেয়াদ অতীতে শেষ হয়ে যায় এবং আপনি সংগ্রহে একটি নতুন TTL নীতি যোগ করেন, তাহলে TTL নীতি সেটআপ শেষ করে সক্রিয় হওয়ার 24 ঘন্টার মধ্যে ডকুমেন্টটি মুছে ফেলা হবে।
TTL অগত্যা ডকুমেন্টগুলিকে তাদের মেয়াদ শেষ হওয়ার টাইমস্ট্যাম্পের মতো একই ক্রমে মুছে ফেলে না।
মুছে ফেলা লেনদেনের মাধ্যমে করা হয় না। একই মেয়াদোত্তীর্ণ সময়ের ডকুমেন্টগুলি একই সময়ে মুছে ফেলা হয় না। যদি আপনার এই আচরণের প্রয়োজন হয়, তাহলে ক্লায়েন্ট লাইব্রেরি ব্যবহার করে মুছে ফেলার কাজটি করুন।
Cloud Firestore সর্বদা মেয়াদোত্তীর্ণতা নির্ধারণের জন্য সর্বশেষ TTL ক্ষেত্রটি সম্মান করবে। উদাহরণস্বরূপ, যদি কোনও মেয়াদোত্তীর্ণ কিন্তু এখনও মুছে ফেলা হয়নি এমন নথির TTL ক্ষেত্রটি পরবর্তী তারিখে আপডেট করা হয়, তাহলে নথিটির মেয়াদোত্তীর্ণ হবে না এবং নতুন তারিখ ব্যবহার করা হবে।
Cloud Firestore শুধুমাত্র তখনই একটি ডকুমেন্টের মেয়াদ শেষ করে যখন TTL ফিল্ডটি নির্দিষ্ট মানের ধরণের জন্য সেট করা থাকে। স্ট্যান্ডার্ড সংস্করণ ডাটাবেসের জন্য, ফিল্ডটি একটি
Date and timeমান সেট করতে হবে। এন্টারপ্রাইজ সংস্করণ ডাটাবেসের জন্য, ফিল্ডটি একটিDate and timeমান অথবা একটিDate and timeমান ধারণকারী একটিArrayমান সেট করতে হবে। ফিল্ডটি অনুপস্থিত রেখে বাnullমতো একটি মানের জন্য সেট করলে প্রতি-ডকুমেন্টের ভিত্তিতে মেয়াদ শেষ হওয়ার তারিখ অক্ষম করা যায়।TTL অন্যান্য ডাটাবেস কার্যকলাপের উপর প্রভাব কমানোর জন্য ডিজাইন করা হয়েছে। TTL দ্বারা চালিত মুছে ফেলার কাজগুলিকে কম অগ্রাধিকার দেওয়া হয়। TTL-চালিত মুছে ফেলার ফলে ট্র্যাফিকের বৃদ্ধি মসৃণ করার জন্য অন্যান্য কৌশলও রয়েছে।
TTL এর মাধ্যমে মুছে ফেলা হলে সমস্ত সক্রিয় স্ন্যাপশট শ্রোতাদের কল করা হয় এবং Cloud Functions ট্রিগার করা হয়। Cloud Firestore ট্রিগার করা হয়।
TTL ক্ষেত্র এবং সূচক
একটি TTL ক্ষেত্র সূচীকৃত বা আনইনডেক্স করা যেতে পারে। তবে, যেহেতু একটি TTL ক্ষেত্র একটি টাইমস্ট্যাম্প, তাই ক্ষেত্রটি সূচীকৃত করা উচ্চ ট্র্যাফিক হারে কর্মক্ষমতাকে প্রভাবিত করতে পারে। একটি টাইমস্ট্যাম্প ক্ষেত্র সূচীকৃত করা হটস্পট তৈরি করতে পারে যা সর্বোত্তম অনুশীলনের বিরুদ্ধে। হটস্পটগুলিতে একটি সংকীর্ণ ডকুমেন্ট পরিসরে উচ্চ পঠন, লেখা এবং মুছে ফেলার হার থাকে।
ডিফল্টরূপে, Cloud Firestore স্ট্যান্ডার্ড সংস্করণ সমস্ত ক্ষেত্রের জন্য একটি একক-ক্ষেত্র সূচক তৈরি করে। আপনি একটি TTL ক্ষেত্রের সূচকগুলি অক্ষম করার জন্য একটি একক-ক্ষেত্র সূচক ছাড় তৈরি করতে পারেন।
অনুমতিসমূহ
একটি TTL নীতি কনফিগার করার জন্য প্রিন্সিপালের প্রকল্পে নিম্নলিখিত অনুমতি প্রয়োজন:
- TTL নীতিগুলি দেখার জন্য
datastore.indexes.listএবংdatastore.indexes.getঅনুমতি প্রয়োজন। - TTL নীতি পরিবর্তন করার জন্য
datastore.indexes.updateঅনুমতি প্রয়োজন। - TTL অপারেশনের অবস্থা পরীক্ষা করার জন্য
datastore.operations.listএবংdatastore.operations.getপ্রয়োজন।
এই অনুমতিগুলি বরাদ্দকারী ভূমিকাগুলির জন্য, Cloud Firestore আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট ভূমিকা দেখুন।
শুরু করার আগে
TTL নীতি পরিচালনা করার জন্য gcloud CLI ব্যবহার করার আগে, সর্বশেষ উপলব্ধ সংস্করণে উপাদানগুলি আপডেট করতে gcloud components update কমান্ডটি ব্যবহার করুন:
gcloud components update
একটি TTL নীতি তৈরি করুন
যখন আপনি একটি TTL নীতি তৈরি করেন, তখন আপনি একটি সংগ্রহ গোষ্ঠীর নথির মেয়াদ শেষ হওয়ার সময় হিসাবে একটি নথি ক্ষেত্র নির্ধারণ করেন।
মুছে ফেলার যোগ্য নথি সনাক্ত করতে TTL একটি নির্দিষ্ট ক্ষেত্র ব্যবহার করে। স্ট্যান্ডার্ড সংস্করণ ডাটাবেসের জন্য, TTL ক্ষেত্রটি একটি Date and time মান সেট করতে হবে। এন্টারপ্রাইজ সংস্করণ ডাটাবেসের জন্য, এটি একটি Date and time মান অথবা একটি Date and time মান ধারণকারী একটি Array মান সেট করতে হবে। আপনি ইতিমধ্যেই বিদ্যমান একটি ক্ষেত্র নির্বাচন করতে পারেন অথবা আপনি এমন একটি ক্ষেত্র নির্ধারণ করতে পারেন যা আপনি পরে যোগ করার পরিকল্পনা করছেন।
TTL ফিল্ড মান সেট করার আগে নিম্নলিখিত বিষয়গুলি বিবেচনা করুন:
TTL ফিল্ডের মান ভবিষ্যতের, বর্তমানে, অথবা অতীতের একটি সময় হতে পারে। যদি মানটি অতীতের একটি সময় হয়, তাহলে ডকুমেন্টটি অবিলম্বে মুছে ফেলার যোগ্য। উদাহরণস্বরূপ, আপনি
expireAtফিল্ড দিয়ে একটি TTL নীতি তৈরি করতে পারেন, যা আপনি বিদ্যমান ডকুমেন্টগুলিতে যোগ করতে পারেন।অন্য কোনও ডেটা টাইপ ব্যবহার করলে অথবা TTL ফিল্ড মান সেট না করলে পৃথক ডকুমেন্টের জন্য TTL অক্ষম হয়ে যাবে।
একটি TTL নীতি তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
গুগল ক্লাউড কনসোল
গুগল ক্লাউড কনসোলে, ডাটাবেস পৃষ্ঠায় যান।
ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেস নির্বাচন করুন।
নেভিগেশন মেনুতে, টাইম-টু-লাইভ ক্লিক করুন।
নীতি তৈরি করুন ক্লিক করুন।
একটি সংগ্রহ গোষ্ঠীর নাম এবং একটি টাইমস্ট্যাম্প ক্ষেত্রের নাম লিখুন।
তৈরি করুন ক্লিক করুন।
কনসোলটি টাইম-টু-লাইভ পৃষ্ঠায় ফিরে আসে। যদি অপারেশনটি সফলভাবে শুরু হয়, তাহলে পৃষ্ঠাটি TTL নীতিমালা টেবিলে একটি এন্ট্রি যোগ করবে। ব্যর্থতার ক্ষেত্রে, পৃষ্ঠাটি একটি ত্রুটি বার্তা প্রদর্শন করবে।
জিক্লাউড
একটি TTL নীতি কনফিগার করতে firestore fields ttls update কমান্ড ব্যবহার করুন। gcloud CLI যাতে অপারেশন সম্পূর্ণ না হয় তার জন্য --async ফ্ল্যাগ যোগ করুন।
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl
TTL নীতি সক্ষমকরণের সময়কাল
এমনকি একটি খালি ডাটাবেসেও, একটি TTL নীতি সক্রিয় করতে দশ মিনিট বা তার বেশি সময় লাগতে পারে। একবার আপনি একটি অপারেশন শুরু করলে, টার্মিনাল বন্ধ করলে অপারেশন বাতিল হয় না।
TTL নীতিগুলি দেখুন
TTL নীতি এবং তাদের স্থিতি দেখতে, এই পদক্ষেপগুলি অনুসরণ করুন:
গুগল ক্লাউড কনসোল
গুগল ক্লাউড কনসোলে, ডাটাবেস পৃষ্ঠায় যান।
ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেস নির্বাচন করুন।
নেভিগেশন মেনুতে, টাইম-টু-লাইভ ক্লিক করুন।
কনসোলটি আপনার ডাটাবেসের জন্য TTL নীতিগুলি তালিকাভুক্ত করে এবং প্রতিটি নীতির স্থিতি অন্তর্ভুক্ত করে।
জিক্লাউড
একটি TTL নীতি কনফিগার করতে firestore fields ttls list কমান্ড ব্যবহার করুন। নিম্নলিখিত কমান্ডটি সমস্ত TTL নীতি তালিকাভুক্ত করে।
gcloud firestore fields ttls list
একটি নির্দিষ্ট সংগ্রহ গোষ্ঠীর অধীনে TTL নীতিগুলি তালিকাভুক্ত করতে, নিম্নলিখিতগুলি ব্যবহার করুন:
gcloud firestore fields ttls list --collection-group=collection_group_name
অপারেশনের বিবরণ দেখুন
CREATING অবস্থায় থাকা একটি TTL নীতি সম্পর্কে আরও বিশদ দেখতে আপনি gcloud CLI ব্যবহার করতে পারেন।
চলমান এবং সম্প্রতি সম্পন্ন সমস্ত ক্রিয়াকলাপ দেখতে operations list কমান্ডটি ব্যবহার করুন:
gcloud firestore operations list
প্রতিক্রিয়াটিতে অপারেশনের অগ্রগতির একটি অনুমান অন্তর্ভুক্ত রয়েছে।
একটি TTL নীতি অক্ষম করুন
একটি TTL নীতি নিষ্ক্রিয় করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
গুগল ক্লাউড কনসোল
গুগল ক্লাউড কনসোলে, ডাটাবেস পৃষ্ঠায় যান।
ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেস নির্বাচন করুন।
নেভিগেশন মেনুতে, টাইম-টু-লাইভ ক্লিক করুন।
TTL পলিসি টেবিলে, TTL পলিসির জন্য সারিটি খুঁজুন। এই টেবিলের সারির মধ্যে, ডিলিট (ট্র্যাশক্যান) বোতামে ক্লিক করুন।
মুছে ফেলুন ক্লিক করে নিশ্চিত করুন।
কনসোলটি টাইম-টু-লাইভ পৃষ্ঠায় ফিরে আসে। সফল হলে, Cloud Firestore টেবিল থেকে TTL নীতিটি সরিয়ে দেয়।
জিক্লাউড
১. একটি TTL নীতি কনফিগার করতে firestore fields ttls update কমান্ড ব্যবহার করুন। gcloud CLI যাতে অপারেশন সম্পূর্ণ না হয় তার জন্য --async ফ্ল্যাগ যোগ করুন।
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl
TTL মুছে ফেলার উপর নজর রাখুন
TTL-চালিত মুছে ফেলার মেট্রিক্স দেখতে আপনি Cloud Monitoring ব্যবহার করতে পারেন। Cloud Firestore TTL-এর জন্য নিম্নলিখিত মেট্রিক্স প্রদান করে:
| মেট্রিক টাইপ | মেট্রিক নাম | মেট্রিক বর্ণনা |
|---|---|---|
| firestore.googleapis.com/document/ttl_deletion_count | টাইম-টু-লাইভ ডিলিটেশনের সংখ্যা | TTL নীতিমালা দ্বারা মুছে ফেলা নথির মোট সংখ্যা। |
| firestore.googleapis.com/document/ttl_expiration_to_deletion_delays সম্পর্কে | টাইম-টু-লাইভ মেয়াদ শেষ হওয়ার পর মুছে ফেলার বিলম্ব | TTL নীতির অধীনে একটি নথির মেয়াদ শেষ হওয়ার এবং এটি আসলে মুছে ফেলার মধ্যে সময় অতিবাহিত হয়েছে। |
Cloud Firestore মেট্রিক্স সহ একটি ড্যাশবোর্ড সেট আপ করতে, কাস্টম ড্যাশবোর্ড পরিচালনা করুন এবং ড্যাশবোর্ড উইজেট যোগ করুন দেখুন।