এই পৃষ্ঠায়, কীভাবে 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 ফিল্ডে নির্দিষ্ট ভ্যালু টাইপ সেট করা থাকলে তবেই কোনও ডকুমেন্টের মেয়াদ শেষ করে। Standard এডিশন ডেটাবেসের জন্য, ফিল্ডে অবশ্যই
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 স্ট্যান্ডার্ড এডিশন সব ফিল্ডের জন্য একটি সিঙ্গেল-ফিল্ড ইন্ডেক্স তৈরি করে। 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
অপারেশনের বিবরণ দেখুন
CREATING স্টেটে থাকা TTL নীতি
সম্পর্কে আরও বিবরণ দেখতে আপনি gcloud CLI ব্যবহার করতে পারবেন।
সব রানিং এবং
সম্প্রতি সম্পূর্ণ হওয়া অপারেশন দেখতে 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 | Time-to-live মুছে ফেলার সংখ্যা |
TTL নীতি অনুযায়ী মুছে দেওয়া ডকুমেন্টের মোট সংখ্যা। |
| firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | মুছে ফেলার বিলম্বের কারণে টাইম-টু-লাইভ এক্সপায়ার হওয়া |
TTL নীতি অনুযায়ী কোনও ডকুমেন্টের মেয়াদ শেষ হওয়ার সময় থেকে সেটি আসলে মুছে ফেলার সময় পর্যন্ত অতিক্রান্ত সময়। |
Cloud Firestore মেট্রিক্স সহ ড্যাশবোর্ড সেট-আপ করতে, কাস্টম ড্যাশবোর্ড ম্যানেজ করুন এবং ড্যাশবোর্ড উইজেট যোগ করুন বিকল্প দেখুন।