এই পৃষ্ঠায় Google Cloud কনসোল ও Google Cloud CLI ব্যবহার করে টাইম টু লিভ (TTL) নীতি কীভাবে কনফিগার করতে হয় তা বর্ণনা করা হয়েছে। এই পৃষ্ঠা পড়ার আগে, আপনাকে Cloud Firestore ডেটা মডেল বুঝতে হবে।
লাইভ ওভারভিউয়ের সময়
আপনার ডেটাবেস থেকে পুরনো ডেটা অটোমেটিক মুছে ফেলতে TTL নীতি ব্যবহার করুন। TTL নীতি কোনও নির্দিষ্ট ফিল্ডকে কোনও নির্দিষ্ট সংগ্রহ গ্রুপের ডকুমেন্টের মেয়াদ শেষ হওয়ার সময় হিসেবে চিহ্নিত করে। TTL-এর মাধ্যমে, আপনি পুরনো ডেটা মুছে দিয়ে স্টোরেজের খরচ কমাতে পারবেন। মেয়াদ শেষ হওয়ার ২৪ ঘণ্টার মধ্যে সাধারণত ডেটা মুছে ফেলা হয়।
মূল্য
TTL মুছে ফেলার অপারেশন আপনার ডকুমেন্ট মুছে ফেলার খরচের সাথে যোগ করা হয়। মুছে দেওয়ার অপারেশন সংক্রান্ত দাম জানতে, Cloud Firestore দাম দেখুন।
সীমা ও সীমাবদ্ধতা
- আপনি প্রতিটি কালেকশন গ্রুপে শুধুমাত্র একটি ফিল্ডকে TTL ফিল্ড হিসেবে চিহ্নিত করতে পারবেন।
- আপনি সর্বাধিক ১০০০টি ফিল্ড লেভেল কনফিগারেশন করতে পারবেন। একটি ফিল্ড কনফিগারেশনে একই ফিল্ডের জন্য একাধিক কনফিগারেশন থাকতে পারে। যেমন, একই ফিল্ডে একটি সিঙ্গল-ফিল্ড ইন্ডেক্সিং ছাড় এবং একটি TTL নীতি, সীমার মধ্যে একটি ফিল্ড কনফিগারেশন হিসেবে গণনা করা হয়।
- Datastore মোডে Firestore ব্যবহারকারী গ্রাহকদের জন্য, TTL-কে এনটিটি গ্রুপের সাথে অপ্টিমিস্টিক কনকারেন্সি মোডের সাথে ব্যবহার করা যাবে না। কনকারেন্সি মোড পরিবর্তন করে অপ্টিমিস্টিক কনকারেন্সি মোড করার কথা বিবেচনা করুন।
TTL মুছে ফেলা
TTL-চালিত মুছে ফেলার নিম্নলিখিত মূল আচরণগুলি লক্ষ্য করুন:
TTL-এর মাধ্যমে মুছে ফেলা একটি তাৎক্ষণিক প্রক্রিয়া নয়। TTL প্রসেস আসলে মুছে না দেওয়া পর্যন্ত মেয়াদ শেষ হয়ে যাওয়া ডকুমেন্ট কোয়েরি ও লুক-আপ অনুরোধে দেখা যেতে থাকে। TTL ট্রেড মুছে ফেলার সময়সীমা মুছে ফেলার জন্য মালিকানার মোট খরচ কমানোর সুবিধা দেয়। মেয়াদ শেষ হওয়ার ২৪ ঘণ্টার মধ্যে সাধারণত ডেটা মুছে ফেলা হয়।
TTL-এর মাধ্যমে কোনও ডকুমেন্ট মুছে দিলে, সেই ডকুমেন্টের অধীনে থাকা সাবকালেকশন মুছে যায় না।
আগে থেকে থাকা কালেকশন গ্রুপে TTL নীতি প্রয়োগ করলে, নতুন TTL নীতি অনুযায়ী মেয়াদ শেষ হয়ে যাওয়া সব ডেটা একসাথে মুছে যায়। মনে রাখবেন যে এই বাল্ক মুছে ফেলার কাজটিও তাৎক্ষণিক নয় এবং এটি নির্ভর করে সেই সংগ্রহ গ্রুপের জন্য কতটা ডেটা রয়েছে তার উপর।
কোনও ডকুমেন্টের মেয়াদ শেষ হওয়ার সময় যদি অতীতে হয় এবং আপনি সংগ্রহে নতুন TTL নীতি যোগ করেন, তাহলে TTL নীতির সেট-আপ সম্পূর্ণ হওয়ার এবং সেটি অ্যাক্টিভ হওয়ার ২৪ ঘণ্টার মধ্যে ডকুমেন্টটি মুছে ফেলা হবে।
TTL যে একই ক্রমে ডকুমেন্ট মুছে দেয় তা নয়, যেমন তাদের মেয়াদ শেষ হওয়ার টাইমস্ট্যাম্প।
মুছে ফেলার কাজ ট্রানজ্যাকশন হিসেবে করা হয় না। একই মেয়াদ শেষ হওয়ার সময় সহ ডকুমেন্ট একই সময়ে মুছে ফেলা নাও হতে পারে। আপনি যদি এই আচরণ চান, তাহলে ক্লায়েন্ট লাইব্রেরি ব্যবহার করে মুছে ফেলার কাজটি করুন।
Cloud Firestore সবসময় লেটেস্ট TTL ফিল্ডকে সম্মান করবে যাতে মেয়াদ শেষ হওয়ার তারিখ নির্ধারণ করা যায়। যেমন, মেয়াদ শেষ হয়ে গেছে কিন্তু এখনও মুছে ফেলা হয়নি এমন ডকুমেন্টের TTL ফিল্ড পরবর্তী কোনও তারিখে আপডেট করা হলে, ডকুমেন্টের মেয়াদ শেষ হবে না এবং নতুন তারিখ ব্যবহার করা হবে।
Cloud Firestore কোনও ডকুমেন্টের মেয়াদ তখনই শেষ করে যখন TTL ফিল্ড নির্দিষ্ট ভ্যালুর ধরন হিসেবে সেট করা হয়। স্ট্যান্ডার্ড এডিশন ডেটাবেসের জন্য, ফিল্ডটি অবশ্যই
Date and timeভ্যালুতে সেট করতে হবে। Enterprise এডিশন ডেটাবেসের জন্য, ফিল্ডটি অবশ্যইDate and timeভ্যালু বাArrayভ্যালু যাতেDate and timeভ্যালু আছে সেটিতে সেট করতে হবে। ফিল্ডটি খালি রাখলে বাnull-এর মতো কোনও মান সেট করলে প্রতিটি ডকুমেন্টের ভিত্তিতে মেয়াদ শেষ হওয়ার তারিখ বন্ধ করা যায়।অন্যান্য ডেটাবেস অ্যাক্টিভিটির উপর প্রভাব কমানোর জন্য TTL ডিজাইন করা হয়েছে। TTL-এর মাধ্যমে মুছে ফেলার কাজ কম অগ্রাধিকার দিয়ে করা হয়। TTL-চালিত মুছে ফেলার কারণে ট্রাফিক স্পাইক মসৃণ করার জন্য অন্যান্য কৌশলও রয়েছে।
TTL-এর মাধ্যমে মুছে দিলে সব অ্যাক্টিভ স্ন্যাপশট লিসেনার এবং ট্রিগার Cloud Functions Cloud Firestore ট্রিগার কল করে।
TTL ফিল্ড ও ইন্ডেক্স
TTL ফিল্ড ইন্ডেক্স করা বা না করা থাকতে পারে। তবে, TTL ফিল্ড একটি টাইমস্ট্যাম্প হওয়ার কারণে, ফিল্ড ইন্ডেক্স করলে ট্রাফিক রেট বেশি হলে পারফর্ম্যান্স প্রভাবিত হতে পারে। টাইমস্ট্যাম্প ফিল্ড ইন্ডেক্স করলে হটস্পট তৈরি হতে পারে যা পেশাদার পদ্ধতির পরিপন্থী। হটস্পট হল ডকুমেন্টের একটি সংকীর্ণ রেঞ্জে উচ্চ রিড, রাইট এবং ডিলিট রেট।
ডিফল্ট হিসেবে, Cloud Firestore Standard এডিশন সব ফিল্ডের জন্য একটি সিঙ্গেল-ফিল্ড ইন্ডেক্স তৈরি করে। TTL ফিল্ডে ইন্ডেক্স বন্ধ করতে আপনি সিঙ্গেল-ফিল্ড ইন্ডেক্স এক্সেম্পশন তৈরি করতে পারবেন।
অনুমতি
TTL নীতি কনফিগার করা প্রিন্সিপালের জন্য প্রোজেক্টে নিম্নলিখিত অনুমতি প্রয়োজন:
- TTL নীতি দেখতে
datastore.indexes.listএবংdatastore.indexes.getঅনুমতি প্রয়োজন। - TTL নীতি পরিবর্তন করতে
datastore.indexes.updateঅনুমতি প্রয়োজন। - TTL অপারেশনের স্ট্যাটাস চেক করতে
datastore.operations.listএবংdatastore.operations.getপ্রয়োজন।
এইসব অনুমতি অ্যাসাইন করে এমন ভূমিকার জন্য, Cloud Firestore পরিচয় ও অ্যাক্সেস ম্যানেজমেন্ট ভূমিকা দেখুন।
TTL নীতি তৈরি করা
আপনি যখন TTL নীতি তৈরি করেন, তখন আপনি একটি ডকুমেন্ট ফিল্ডকে একটি কালেকশন গ্রুপের ডকুমেন্টের মেয়াদ শেষ হওয়ার সময় হিসাবে মনোনীত করেন।
মুছে ফেলার উপযুক্ত ডকুমেন্ট শনাক্ত করতে TTL একটি নির্দিষ্ট ফিল্ড ব্যবহার করে।
স্ট্যান্ডার্ড এডিশন ডেটাবেসের জন্য, TTL ফিল্ডটি অবশ্যই Date and time ভ্যালুতে সেট করতে হবে।
Enterprise এডিশন ডেটাবেসের জন্য, এটি অবশ্যই Date and time ভ্যালু বা Array ভ্যালু হিসেবে সেট করতে হবে
যার মধ্যে Date and time ভ্যালু রয়েছে। আপনি আগে থেকেই আছে এমন কোনও ফিল্ড বেছে নিতে পারেন অথবা পরে যোগ করার পরিকল্পনা আছে এমন কোনও ফিল্ড নির্দিষ্ট করতে পারেন।
TTL ফিল্ড ভ্যালু সেট করার আগে নিম্নলিখিত বিষয়গুলি বিবেচনা করুন:
TTL ফিল্ডের ভ্যালু ভবিষ্যতের, বর্তমানের বা অতীতের কোনও সময় হতে পারে। ভ্যালু যদি অতীতের কোনও সময় হয়, তাহলে ডকুমেন্টটি অবিলম্বে মুছে ফেলার উপযুক্ত হয়। যেমন, আপনি
expireAtফিল্ডের সাথে TTL নীতি তৈরি করতে পারেন, যা আপনি আগে থেকে থাকা ডকুমেন্টে যোগ করতে পারেন।অন্য কোনও ডেটার ধরন ব্যবহার করলে বা TTL ফিল্ডের ভ্যালু সেট না করলে, নির্দিষ্ট ডকুমেন্টের জন্য TTL বন্ধ হয়ে যাবে।
TTL নীতি তৈরি করতে, এই ধাপগুলি অনুসরণ করুন:
Google ক্লাউড কনসোল
Google Cloud কনসোলে, ডেটাবেস পৃষ্ঠায় যান।
ডেটাবেসের তালিকা থেকে প্রয়োজনীয় ডেটাবেস বেছে নিন।
নেভিগেশন মেনুতে, টাইম-টু-লাইভ বিকল্পে ক্লিক করুন।
নীতি তৈরি করুন বিকল্পে ক্লিক করুন।
কালেকশন গ্রুপের নাম এবং টাইমস্ট্যাম্প ফিল্ডের নাম লিখুন।
ঐচ্ছিক: মেয়াদ শেষ হওয়ার অফসেট কনফিগার করুন। একটি ভ্যালু লিখুন এবং একটি ইউনিট (দিন, ঘণ্টা, মিনিট বা সেকেন্ড) বেছে নিন। ডিফল্ট হিসেবে, অফসেট হল ০।
তৈরি করুন বিকল্পে ক্লিক করুন।
কনসোল টাইম-টু-লাইভ পৃষ্ঠায় ফিরে যায়। অপারেশনটি সফলভাবে শুরু হলে, পৃষ্ঠাটি TTL নীতি টেবিলে একটি এন্ট্রি যোগ করে। ব্যর্থ হলে, পৃষ্ঠায় একটি ত্রুটি মেসেজ দেখানো হয়।
gcloud
TTL নীতি কনফিগার করতে
firestore fields ttls
update কমান্ড ব্যবহার করুন। অপারেশন সম্পূর্ণ হওয়ার জন্য gcloud CLI-কে অপেক্ষা করা থেকে বিরত রাখতে
--async ফ্ল্যাগ যোগ করুন।
gcloud firestore fields ttls update
ttl_field
--collection-group=collection_group_name
--enable-ttl
মেয়াদ শেষ হওয়ার অফসেটের সাথে 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 ২৪ ঘণ্টার জন্য। আপনি এই ফ্ল্যাগ বাদ দিলে, মেয়াদ শেষ হওয়ার
অফসেট ডিফল্ট হিসেবে ০ হয়ে যায়।
TTL নীতি চালু করার সময়সীমা
TTL নীতি চালু করতে কমপক্ষে দশ মিনিট বা তার বেশি সময় লাগতে পারে। আপনি কোনও অপারেশন শুরু করলে, টার্মিনাল বন্ধ করে দিলেও অপারেশন বাতিল হয় না।
TTL নীতি দেখুন
TTL নীতি ও সেগুলির স্ট্যাটাস দেখতে, এইসব ধাপ অনুসরণ করুন:
Google ক্লাউড কনসোল
Google Cloud কনসোলে, ডেটাবেস পৃষ্ঠায় যান।
ডেটাবেসের তালিকা থেকে প্রয়োজনীয় ডেটাবেস বেছে নিন।
নেভিগেশন মেনুতে, টাইম-টু-লাইভ বিকল্পে ক্লিক করুন।
কনসোল আপনার ডেটাবেসের জন্য TTL নীতি তালিকাভুক্ত করে এবং প্রতিটি নীতির স্ট্যাটাস অন্তর্ভুক্ত করে।
gcloud
TTL নীতি কনফিগার করতে
firestore fields ttls list
কমান্ড ব্যবহার করুন। নিম্নলিখিত কমান্ড সব TTL
নীতি তালিকাভুক্ত করে।
gcloud firestore fields ttls list
নির্দিষ্ট কালেকশন গ্রুপের অধীনে TTL নীতি তালিকাভুক্ত করতে, নিম্নলিখিতগুলি ব্যবহার করুন:
gcloud firestore fields ttls list --collection-group=collection_group_name
অপারেশনের বিবরণ দেখুন
আপনি gcloud CLI ব্যবহার করে TTL নীতি সম্পর্কে আরও তথ্য দেখতে পারবেন
যা CREATING অবস্থায় আছে।
বর্তমানে চলছে এবং সম্প্রতি সম্পূর্ণ হয়েছে এমন সব অপারেশন দেখতে
operations list কমান্ড ব্যবহার করুন:
gcloud firestore operations list
উত্তরে অপারেশনের প্রগ্রেসের আনুমানিক হিসেব অন্তর্ভুক্ত থাকে।
TTL নীতি বন্ধ করা
TTL নীতি বন্ধ করতে, এই ধাপগুলি অনুসরণ করুন:
Google ক্লাউড কনসোল
Google Cloud কনসোলে, ডেটাবেস পৃষ্ঠায় যান।
ডেটাবেসের তালিকা থেকে প্রয়োজনীয় ডেটাবেস বেছে নিন।
নেভিগেশন মেনুতে, টাইম-টু-লাইভ বিকল্পে ক্লিক করুন।
TTL নীতি টেবিলে, TTL নীতির জন্য সারিটি খুঁজুন। এই টেবিল সারির মধ্যে, মুছুন (ট্র্যাশ ক্যান) বোতামে ক্লিক করুন।
মুছুন বিকল্পে ক্লিক করে কনফার্ম করুন।
কনসোল টাইম-টু-লাইভ পৃষ্ঠায় ফিরে যায়। সফল হলে, Cloud Firestore টেবিল থেকে TTL নীতি সরিয়ে দেয়।
gcloud
১. 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 মেট্রিক সহ ড্যাশবোর্ড সেট-আপ করতে, কাস্টম ড্যাশবোর্ড ম্যানেজ করুন এবং ড্যাশবোর্ড উইজেট যোগ করুন বিকল্প দেখুন।