Data Restore পদ্ধতি এবং কৌশল

TinyDB তে Data Backup এবং Restore - টাইনিডিবি (TinyDB) - Database Tutorials

321

TinyDB একটি JSON ফাইল ভিত্তিক ডাটাবেস, যেখানে ডেটা সাধারণত ফাইল সিস্টেমে সংরক্ষিত হয়। এটি একটি NoSQL ডাটাবেস হওয়ায় ডেটার কোনো সার্ভার-ভিত্তিক স্টোরেজ নেই, তবে ডেটা ফাইলের মাধ্যমে সরাসরি পড়া এবং লেখা হয়। তাই, Data Restore বা ডেটা পুনরুদ্ধার করা বেশ সহজ, এবং এটি মূলত ফাইল কপি, ব্যাকআপ, বা কাস্টম স্টোরেজ ব্যবস্থার মাধ্যমে করা হয়।

এখানে আমরা TinyDB তে ডেটা পুনরুদ্ধারের কিছু পদ্ধতি এবং কৌশল আলোচনা করব:


১. ফাইল কপি এবং ব্যাকআপ

Data Restore করতে সবচেয়ে সাধারণ এবং সহজ পদ্ধতি হলো ডেটাবেস ফাইলের ব্যাকআপ কপি করা এবং পুনরায় ডাটাবেসে লোড করা। TinyDB সাধারণত JSON ফাইল ব্যবহার করে ডেটা সংরক্ষণ করে, তাই ব্যাকআপ নেওয়া এবং পুনরুদ্ধার করা খুবই সহজ।

ব্যাকআপ তৈরি:

ডেটাবেস ফাইলের কপি তৈরি করে আপনি ভবিষ্যতে তার ব্যাকআপ হিসেবে ব্যবহার করতে পারেন।

import shutil

# ডেটাবেস ফাইলের ব্যাকআপ তৈরি
shutil.copy('db.json', 'db_backup.json')

ডেটা পুনরুদ্ধার:

যদি ডেটা হারিয়ে যায় বা কোনো ত্রুটি ঘটে, তাহলে আপনি ব্যাকআপ ফাইলটি পুনরায় মূল ডাটাবেসে কপি করতে পারেন।

# ব্যাকআপ ফাইল থেকে মূল ডেটাবেসে পুনরুদ্ধার
shutil.copy('db_backup.json', 'db.json')

এই পদ্ধতিটি খুবই সহজ এবং দ্রুত, তবে এটি কিছু সীমাবদ্ধতা রয়েছে, যেমন ডেটা অনেক বড় হলে পুরো ডাটাবেস ফাইল কপি করার সময় অনেক মেমরি ব্যবহার হতে পারে।


২. Custom Storage ব্যবহার করে Data Restore

আপনি কাস্টম স্টোরেজ ব্যবহার করে ডেটার পুনরুদ্ধারের পদ্ধতিটি আরও উন্নত করতে পারেন। যদি আপনার ডেটা খুব বড় বা জটিল হয়, তবে আপনি কাস্টম স্টোরেজ সমাধান তৈরি করতে পারেন যা ব্যাকআপ এবং পুনরুদ্ধারের প্রক্রিয়া আরও কার্যকর করবে।

উদাহরণ: কাস্টম স্টোরেজ ব্যবহার করে ব্যাকআপ এবং পুনরুদ্ধার

from tinydb import TinyDB, Query
from tinydb.storages import JSONStorage
import json

# কাস্টম স্টোরেজ তৈরি
class BackupStorage(JSONStorage):
    def __init__(self, path):
        super().__init__(path)

    def backup(self, backup_path):
        # ডেটাবেসের সমস্ত ডেটা ব্যাকআপ ফাইলে লেখা
        with open(self._path, 'r') as f:
            data = json.load(f)
        with open(backup_path, 'w') as backup_file:
            json.dump(data, backup_file)
        print(f"Backup completed: {backup_path}")

    def restore(self, backup_path):
        # ব্যাকআপ ফাইল থেকে ডেটা পুনরুদ্ধার
        with open(backup_path, 'r') as backup_file:
            data = json.load(backup_file)
        with open(self._path, 'w') as f:
            json.dump(data, f)
        print(f"Restore completed from: {backup_path}")

# ডেটাবেস তৈরি এবং ব্যাকআপ / পুনরুদ্ধার
db = TinyDB('db.json', storage=BackupStorage)

# ডেটা ইনসার্ট
db.insert({'name': 'Rahim', 'age': 30})

# ব্যাকআপ তৈরি
db.storage.backup('db_backup.json')

# পুনরুদ্ধার
db.storage.restore('db_backup.json')

এই পদ্ধতিতে, আপনি একটি কাস্টম স্টোরেজ ব্যবহার করে ডেটাবেসের ব্যাকআপ তৈরি এবং পুনরুদ্ধার করতে পারেন। কাস্টম স্টোরেজ ক্লাসের মাধ্যমে backup() এবং restore() মেথড ব্যবহার করে ফাইলের কপি তৈরি এবং পুনরুদ্ধার প্রক্রিয়া পরিচালনা করা হয়েছে।


৩. Data Restore with TinyDB Streams

TinyDB তে Streams ব্যবহৃত হয় যখন আপনি real-time data changes ট্র্যাক করতে চান। আপনি TinyDB Streams ব্যবহার করে ডেটা পরিবর্তনের উপর ভিত্তি করে পুনরুদ্ধার বা মুছে ফেলার কাজ করতে পারেন।

Streams Example for Data Recovery:

from tinydb import TinyDB, Query
from tinydb.storages import JSONStorage
from tinydb import where

class StreamBackupStorage(JSONStorage):
    def __init__(self, path):
        super().__init__(path)
        self._data_stream = []

    def add_stream_data(self, data):
        # ডেটা স্ট্রিমে যোগ করা
        self._data_stream.append(data)

    def commit_stream(self):
        # ডেটা স্ট্রিমের সমস্ত পরিবর্তন ডেটাবেসে সংরক্ষণ
        for item in self._data_stream:
            self.insert(item)
        self._data_stream = []

    def restore_stream(self, backup_path):
        # ব্যাকআপ থেকে ডেটা পুনরুদ্ধার করা
        with open(backup_path, 'r') as backup_file:
            data = json.load(backup_file)
        for item in data:
            self.insert(item)
        print(f"Stream Restore completed from: {backup_path}")

# টেস্ট ডেটাবেস তৈরি
db = TinyDB('db.json', storage=StreamBackupStorage)

# ডেটা ইনসার্ট
db.insert({'name': 'Aziz', 'age': 25})

# ডেটা স্ট্রিমে যোগ করা
db.storage.add_stream_data({'name': 'Mehedi', 'age': 30})

# স্ট্রিম কমিট করা
db.storage.commit_stream()

# স্ট্রিম ব্যাকআপ থেকে পুনরুদ্ধার
db.storage.restore_stream('db_backup.json')

এই কোডে Stream ব্যবহার করা হয়েছে, যেখানে ডেটা স্ট্রিমে যোগ করা হয় এবং commit_stream() মেথড দিয়ে এটি ডেটাবেসে সংরক্ষণ করা হয়। এর মাধ্যমে আপনি ডেটার গতিবিধি ট্র্যাক করতে পারেন এবং প্রয়োজনে স্ট্রিম থেকে ডেটা পুনরুদ্ধার করতে পারেন।


৪. Cloud Backup Integration

একটি উন্নত কৌশল হল Cloud Backup Integration, যেখানে আপনি TinyDB ডেটাবেসের ব্যাকআপ ক্লাউড সার্ভারে সংরক্ষণ করতে পারেন (যেমন AWS S3, Google Cloud Storage, Dropbox ইত্যাদি)। এটি বড় প্রকল্প বা ভার্চুয়াল মেশিনে ব্যবহৃত হতে পারে যেখানে আপনার ডেটা ডিভাইসের বাইরে সুরক্ষিত থাকে।


সারাংশ

TinyDB তে ডেটা পুনরুদ্ধার বা Data Restore বিভিন্ন পদ্ধতিতে করা যায়:

  1. ফাইল কপি এবং ব্যাকআপ – সরাসরি JSON ফাইল কপি করে ডেটা পুনরুদ্ধার।
  2. কাস্টম স্টোরেজ ব্যবহার – কাস্টম স্টোরেজ এবং মিডলওয়্যার তৈরি করে ব্যাকআপ এবং পুনরুদ্ধার।
  3. StreamsTinyDB Streams ব্যবহার করে ডেটা পরিবর্তন ট্র্যাক করা এবং পুনরুদ্ধার।
  4. Cloud Backup – ক্লাউড স্টোরেজ ব্যবহার করে ডেটার সুরক্ষিত ব্যাকআপ।

এগুলি আপনার ডেটা সুরক্ষিত রাখতে এবং সঠিক সময়ে ডেটা পুনরুদ্ধারের জন্য কার্যকর কৌশল হতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...