TTL (Time to Live) হল একটি গুরুত্বপূর্ণ ফিচার যা DynamoDB টেবিলের ডেটা স্বয়ংক্রিয়ভাবে এক নির্দিষ্ট সময় পর মুছে ফেলার সুযোগ প্রদান করে। TTL কনফিগারেশন করার মাধ্যমে আপনি এমন ডেটা রাখতে পারেন যা নির্দিষ্ট সময়ের পরে আর প্রয়োজন হয় না, যেমন সেশন ডেটা, টেম্পোরারি ফাইল, ইত্যাদি। এর মাধ্যমে আপনার টেবিলের আকার কমানো যায় এবং খরচও নিয়ন্ত্রণ করা সম্ভব হয়।
TTL কনফিগারেশন এবং Monitoring হল DynamoDB টেবিলের পারফরম্যান্স এবং ডেটার জীবিতকাল পর্যবেক্ষণ এবং পরিচালনা করার প্রক্রিয়া।
TTL কনফিগারেশন:
- TTL ফিচার চালু করা: DynamoDB টেবিলে TTL চালু করতে, আপনাকে একটি নির্দিষ্ট attribute নির্ধারণ করতে হবে যা TTL এর মেয়াদ প্রদর্শন করবে (একটি timestamp যা বলে দিবে কখন ডেটাটি মুছে যাবে)।
- TTL কনফিগার করার প্রক্রিয়া:
- Step 1: AWS Management Console এ লগইন করুন এবং DynamoDB সেকশনে যান।
- Step 2: টেবিল নির্বাচন করুন যেখানে TTL কনফিগার করতে চান।
- Step 3: Time to Live সেকশনটি খুঁজে পেতে টেবিলের "Manage Time to Live" অপশনে ক্লিক করুন।
- Step 4: একটি নতুন TTL attribute তৈরি করুন (যেমন
expirationTime), যা ইন্সার্ট বা আপডেটের সময় টাইমস্ট্যাম্প হিসেবে সেট হবে এবং ডেটা কখন মুছে যাবে তা নির্ধারণ করবে। - Step 5: TTL চালু করুন এবং সেটিংস সংরক্ষণ করুন।
TTL Attribute Example: উদাহরণস্বরূপ, আপনি যদি
expirationTimeনামে একটি ফিল্ড ব্যবহার করেন, তবে এর মান হিসেবে ইউনিক্স টাইমস্ট্যাম্প নির্ধারণ করবেন, যা ডেটার মুছে যাওয়ার সময় উল্লেখ করবে।কোড উদাহরণ (Python - Boto3):
import boto3 from datetime import datetime, timedelta # DynamoDB client তৈরি dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('YourTableName') # TTL ফিল্ড তৈরি করা (যেমন, 24 ঘণ্টার পর ডেটা মুছে যাবে) expiration_time = int((datetime.utcnow() + timedelta(days=1)).timestamp()) # ডেটা ইনসার্ট করা TTL সহ table.put_item( Item={ 'PartitionKey': 'value1', 'SortKey': 'value2', 'data': 'some_data', 'expirationTime': expiration_time # TTL টাইমস্ট্যাম্প } )- TTL কার্যকর হওয়া:
- যখন TTL কনফিগার করা হয়, DynamoDB স্বয়ংক্রিয়ভাবে ডেটার মেয়াদ শেষ হওয়ার পর সেটি মুছে ফেলে।
- এটি সাধারণত কিছু মিনিট সময় নেয়, তবে ডেটা 48 ঘণ্টার মধ্যে ডিলিট হতে পারে।
TTL Monitoring:
TTL কনফিগারেশন করার পর, DynamoDB আপনাকে TTL ডেটা মুছে ফেলার কার্যকলাপ পর্যবেক্ষণ করতে সাহায্য করে। আপনাকে বিভিন্ন AWS টুল ব্যবহার করতে হবে যাতে এই মুছে ফেলা ডেটার ট্র্যাক রাখতে পারেন এবং পারফরম্যান্স পর্যবেক্ষণ করতে পারেন।
- CloudWatch Metrics:
- DynamoDB TTL মেট্রিক্স আপনাকে ডেটা কত দ্রুত মুছে যাচ্ছে এবং কেমন পারফরম্যান্স হচ্ছে তা মনিটর করতে সাহায্য করবে।
ConsumedWriteCapacityUnitsএবংThrottledRequestsমেট্রিক্স ব্যবহার করতে পারেন, যা দেখাবে কত রিসোর্স ডিমান্ড হচ্ছে ডেটা মুছে ফেলার জন্য।
- CloudWatch Logs:
- আপনি CloudWatch Logs ব্যবহার করে TTL ডেটার মুছে ফেলার কার্যক্রম লোগ করতে পারেন। DynamoDB থেকে মুছে ফেলা ডেটার জন্য আলাদা লোগ গ্রুপ তৈরি করা যেতে পারে।
- DynamoDB Table Metrics:
- DynamoDB টেবিলের TTL সম্পর্কিত মেট্রিক্স দেখতে পারেন যাতে আপনি জানতে পারেন কতটি আইটেম TTL-এর মাধ্যমে মুছে গেছে। আপনি DynamoDB Streams ব্যবহার করে মুছে ফেলা ডেটা ট্র্যাক করতে পারেন।
- Monitoring via CloudWatch:
- আপনি CloudWatch Dashboards তৈরি করে মুছে ফেলা ডেটার পরিমাণ, পারফরম্যান্স ইত্যাদি মনিটর করতে পারবেন।
TTL Monitoring Example:
import boto3
# CloudWatch client তৈরি
cloudwatch = boto3.client('cloudwatch')
# CloudWatch মেট্রিক্স পর্যবেক্ষণ করা
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'ttl_metric',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/DynamoDB',
'MetricName': 'TimeToLiveDeletedItemCount',
'Dimensions': [
{
'Name': 'TableName',
'Value': 'YourTableName'
},
]
},
'Period': 60,
'Stat': 'Sum',
},
'ReturnData': True,
},
],
StartTime='2024-11-01T00:00:00Z',
EndTime='2024-11-26T23:59:59Z'
)
print(response)
এই কোডটি CloudWatch থেকে TimeToLiveDeletedItemCount মেট্রিক্স বের করবে, যা আপনাকে কত আইটেম TTL এর মাধ্যমে মুছে গেছে তা জানাবে।
TTL এর সুবিধা এবং সীমাবদ্ধতা:
সুবিধা:
- স্টোরেজ ব্যবস্থাপনা: পুরনো বা অপ্রয়োজনীয় ডেটা স্বয়ংক্রিয়ভাবে মুছে ফেলার মাধ্যমে স্টোরেজ স্পেস অপটিমাইজ করা যায়।
- ক্লাউড রিসোর্স অপটিমাইজেশন: ডেটা না থাকার কারণে ক্লাউড রিসোর্সের অপচয় কমে যায়।
- সুবিধাজনক অ্যাপ্লিকেশন: সময়সীমা পূর্ণ হলে ডেটা স্বয়ংক্রিয়ভাবে মুছে যাওয়া সহজ এবং কার্যকরী হয়।
সীমাবদ্ধতা:
- TTL বাস্তবায়ন সময়: TTL এর প্রভাব সরাসরি ডেটার রেকর্ডে নয়, বরং ডেটার মুছে ফেলার জন্য ডেটাবেস ইঞ্জিন কিছু সময় নেয়, যা কিছুক্ষণ বিলম্বিত হতে পারে।
- ডেটা মুছে যাওয়ার আগে অ্যাক্সেস: TTL মুছে যাওয়ার পরে সেই ডেটায় অ্যাক্সেস পাওয়া যাবে না, ফলে প্রয়োজনে ডেটা ফেরত পেতে ব্যবস্থা রাখতে হবে।
TTL কনফিগারেশন এবং Monitoring ব্যবহারের মাধ্যমে DynamoDB এর খরচ নিয়ন্ত্রণ, পারফরম্যান্স অপটিমাইজেশন এবং স্টোরেজ ব্যবস্থাপনা আরও সহজ হয়।
Read more