ফায়ারবেস রিয়েলটাইম ডাটাবেসের সাথে ক্লাউড ফায়ারস্টোর ব্যবহার করুন

আপনি আপনার অ্যাপে ফায়ারবেস রিয়েলটাইম ডেটাবেস এবং ক্লাউড ফায়ারস্টোর উভয়ই ব্যবহার করতে পারেন এবং আপনার প্রয়োজনের সাথে মানানসই প্রতিটি ডাটাবেস সমাধানের সুবিধাগুলি ব্যবহার করতে পারেন৷ উদাহরণস্বরূপ, আপনি উপস্থিতির জন্য রিয়েলটাইম ডেটাবেসের সমর্থন লাভ করতে চাইতে পারেন, যেমনটি বিল্ড প্রেজেন্স ইন ক্লাউড ফায়ারস্টোরে বর্ণিত হয়েছে।

ডাটাবেসের মধ্যে পার্থক্য সম্পর্কে আরও জানুন।

ক্লাউড ফায়ারস্টোরে ডেটা সরানো হচ্ছে

আপনি যদি সিদ্ধান্ত নিয়ে থাকেন যে আপনি আপনার কিছু ডেটা রিয়েলটাইম ডেটাবেস থেকে ক্লাউড ফায়ারস্টোরে স্থানান্তর করতে চান, তাহলে নিম্নলিখিত প্রবাহটি বিবেচনা করুন৷ যেহেতু প্রতিটি ডাটাবেসের অনন্য চাহিদা এবং কাঠামোগত বিবেচনা রয়েছে, তাই একটি স্বয়ংক্রিয় স্থানান্তর পথ নেই। পরিবর্তে, আপনি এই সাধারণ অগ্রগতি অনুসরণ করতে পারেন:

  1. রিয়েলটাইম ডেটাবেস থেকে ক্লাউড ফায়ারস্টোরে ডেটা স্ট্রাকচার এবং নিরাপত্তা নিয়ম ম্যাপ করুন। রিয়েলটাইম ডেটাবেস এবং ক্লাউড ফায়ারস্টোর উভয়ই ফায়ারবেস প্রমাণীকরণের উপর নির্ভর করে, তাই আপনাকে আপনার অ্যাপের জন্য ব্যবহারকারীর প্রমাণীকরণ পরিবর্তন করতে হবে না। যাইহোক, নিরাপত্তা বিধি এবং ডেটা মডেল আলাদা এবং আপনি ক্লাউড ফায়ারস্টোরে ডেটা স্থানান্তর শুরু করার আগে সেই বিভেদের জন্য সাবধানে অ্যাকাউন্ট করা গুরুত্বপূর্ণ।

  2. ঐতিহাসিক তথ্য সরান. আপনি ক্লাউড ফায়ারস্টোরে আপনার নতুন ডেটা কাঠামো সেট আপ করার সময়, আপনি রিয়েলটাইম ডেটাবেস থেকে আপনার নতুন ক্লাউড ফায়ারস্টোর উদাহরণে বিদ্যমান ডেটা ম্যাপ করতে এবং সরাতে পারেন৷ যাইহোক, আপনি যদি আপনার অ্যাপে উভয় ডাটাবেস ব্যবহার করেন, তাহলে আপনাকে রিয়েলটাইম ডেটাবেস থেকে ঐতিহাসিক ডেটা সরানোর দরকার নেই।

  3. রিয়েলটাইমে ফায়ারস্টোরে নতুন ডেটা মিরর করুন। আপনার নতুন ক্লাউড ফায়ারস্টোর ডাটাবেসে নতুন ডেটা লিখতে ক্লাউড ফাংশনগুলি ব্যবহার করুন কারণ এটি রিয়েলটাইম ডেটাবেসে যুক্ত হয়৷

  4. স্থানান্তরিত ডেটার জন্য ক্লাউড ফায়ারস্টোরকে আপনার প্রাথমিক ডাটাবেস করুন৷ একবার আপনি আপনার কিছু ডেটা স্থানান্তরিত করার পরে, আপনার প্রাথমিক ডাটাবেস হিসাবে ক্লাউড ফায়ারস্টোর ব্যবহার করুন এবং স্থানান্তরিত ডেটার জন্য আপনার রিয়েলটাইম ডেটাবেস ব্যবহার হ্রাস করুন৷ আপনার অ্যাপের সংস্করণগুলি বিবেচনা করুন যেগুলি এখনও সেই ডেটার জন্য রিয়েলটাইম ডেটাবেসের সাথে সংযুক্ত রয়েছে এবং আপনি কীভাবে তাদের সমর্থন চালিয়ে যাওয়ার পরিকল্পনা করছেন৷

নিশ্চিত করুন যে আপনি রিয়েলটাইম ডেটাবেস এবং ক্লাউড ফায়ারস্টোর উভয়ের জন্য বিলিং খরচের জন্য অ্যাকাউন্ট করেছেন৷

আপনার ডেটা ম্যাপ করুন

রিয়েলটাইম ডেটাবেসের ডেটা একটি একক গাছ হিসাবে গঠন করা হয়, যখন ক্লাউড ফায়ারস্টোর নথি, সংগ্রহ এবং উপ-সংগ্রহের মাধ্যমে আরও স্পষ্ট ডেটা শ্রেণিবিন্যাস সমর্থন করে। আপনি যদি রিয়েলটাইম ডেটাবেস থেকে ক্লাউড ফায়ারস্টোরে আপনার কিছু ডেটা স্থানান্তর করেন, আপনি আপনার ডেটার জন্য একটি ভিন্ন আর্কিটেকচার বিবেচনা করতে চাইতে পারেন।

বিবেচনা করার জন্য প্রধান পার্থক্য

আপনি যদি আপনার বিদ্যমান রিয়েলটাইম ডেটাবেস ট্রি থেকে ক্লাউড ফায়ারস্টোর নথি এবং সংগ্রহগুলিতে ডেটা স্থানান্তর করেন, তাহলে ডেটাবেসগুলির মধ্যে নিম্নলিখিত প্রধান পার্থক্যগুলি মনে রাখবেন যা ক্লাউড ফায়ারস্টোরে আপনি কীভাবে ডেটা গঠন করবেন তা প্রভাবিত করতে পারে:

  • অগভীর প্রশ্নগুলি শ্রেণীবদ্ধ ডেটা কাঠামোতে আরও নমনীয়তা প্রদান করে।
  • জটিল প্রশ্নগুলি আরও গ্রানুলিটি অফার করে এবং ডুপ্লিকেট ডেটার প্রয়োজনীয়তা হ্রাস করে৷
  • ক্যোয়ারী কার্সার আরো শক্তিশালী পেজিনেশন অফার করে।
  • লেনদেনের জন্য আপনার সমস্ত ডেটার জন্য আর একটি সাধারণ রুটের প্রয়োজন নেই এবং এটি আরও দক্ষ।
  • রিয়েলটাইম ডেটাবেস এবং ক্লাউড ফায়ারস্টোরের মধ্যে বিলিং খরচ আলাদা। অনেক ক্ষেত্রে, ক্লাউড ফায়ারস্টোর রিয়েলটাইম ডেটাবেসের চেয়ে বেশি ব্যয়বহুল হতে পারে, বিশেষ করে যদি আপনি অনেক ছোট অপারেশনের উপর নির্ভর করেন। আপনার ডাটাবেসে অপারেশনের সংখ্যা কমানোর কথা বিবেচনা করুন এবং অপ্রয়োজনীয় লেখাগুলি এড়িয়ে চলুন। রিয়েলটাইম ডেটাবেস এবং ক্লাউড ফায়ারস্টোরের মধ্যে বিলিং এর পার্থক্য সম্পর্কে আরও জানুন।

কর্মে সর্বোত্তম অনুশীলন

নিম্নলিখিত উদাহরণটি আপনার ডেটাবেসগুলির মধ্যে আপনার ডেটা স্থানান্তর করার সময় কিছু বিবেচনার প্রতিফলন করে। আপনি রিয়েলটাইম ডেটাবেস ব্যবহার করে থাকতে পারেন তার চেয়ে বেশি প্রাকৃতিক ডেটা স্ট্রাকচারের জন্য অগভীর পঠন এবং উন্নত কোয়েরি করার ক্ষমতা ব্যবহার করতে পারেন।

একটি সিটি গাইড অ্যাপ বিবেচনা করুন যা ব্যবহারকারীদের সারা বিশ্বের শহরগুলিতে উল্লেখযোগ্য ল্যান্ডমার্ক খুঁজে পেতে সহায়তা করে৷ যেহেতু রিয়েলটাইম ডেটাবেসে অগভীর পাঠের অভাব রয়েছে, তাই আপনাকে দুটি শীর্ষ-স্তরের নোডে ডেটা গঠন করতে হতে পারে, নিম্নরূপ:

// /cities/$CITY_KEY
{
  name: "New York",
  population: 8000000,
  capital: False
}

// /city-landmark/$CITY_KEY/$LANDMARK_KEY
{
  name: "Empire State Building",
  category: "Architecture"
}

ক্লাউড ফায়ারস্টোরের অগভীর পাঠ রয়েছে, তাই সংগ্রহে থাকা নথিগুলির জন্য অনুসন্ধান করা উপসংগ্রহ থেকে ডেটা টেনে আনে না। ফলস্বরূপ, আপনি একটি উপ-সংগ্রহে ল্যান্ডমার্ক তথ্য সংরক্ষণ করতে পারেন:

// /cities/$CITY_ID
{
  name: "New York",
  population: 8000000,
  capital: False,
  landmarks: [... subcollection ...]
}

নথিগুলির সর্বাধিক আকার 1MB, যা একটি উপ-সংগ্রহ হিসাবে ল্যান্ডমার্ক সংরক্ষণ করার আরেকটি কারণ, প্রতিটি শহরের নথি ছোট রাখা, নেস্টেড তালিকার সাথে নথিগুলিকে ফুলে তোলার পরিবর্তে।

ক্লাউড ফায়ারস্টোরের উন্নত ক্যোয়ারী করার ক্ষমতা সাধারণ অ্যাক্সেস প্যাটার্নের জন্য ডেটা ডুপ্লিকেট করার প্রয়োজনকে কমিয়ে দেয়। উদাহরণ স্বরূপ, সিটি গাইড অ্যাপে একটি স্ক্রীন বিবেচনা করুন যা জনসংখ্যার ভিত্তিতে সমস্ত রাজধানী শহর দেখায়। রিয়েলটাইম ডাটাবেসে, এটি করার সবচেয়ে কার্যকর উপায় হল রাজধানী শহরগুলির একটি পৃথক তালিকা বজায় রাখা যা cities তালিকা থেকে ডেটা নকল করে, নিম্নরূপ:

{
   cities: {
    // ...
   },

   capital-cities: {
     // ...
   }
}

ক্লাউড ফায়ারস্টোরে, আপনি একক প্রশ্ন হিসাবে জনসংখ্যার ক্রম অনুসারে রাজধানী শহরগুলির একটি তালিকা প্রকাশ করতে পারেন:

db.collection('cities')
    .where('capital', '==', true)
    .orderBy('population')

ক্লাউড ফায়ারস্টোর ডেটা মডেল সম্পর্কে আরও পড়ুন এবং কীভাবে আপনার ক্লাউড ফায়ারস্টোর ডাটাবেস গঠন করবেন সে সম্পর্কে আরও ধারণার জন্য আমাদের সমাধানগুলি দেখুন৷

আপনার ডেটা সুরক্ষিত করুন

আপনি অ্যান্ড্রয়েড, অ্যাপল বা ওয়েব ক্লায়েন্টের জন্য ক্লাউড ফায়ারস্টোর সুরক্ষা নিয়ম বা সার্ভারের জন্য আইডেন্টিটি অ্যাক্সেস ম্যানেজমেন্ট (IAM) ব্যবহার করছেন না কেন, নিশ্চিত করুন যে আপনি ক্লাউড ফায়ারস্টোরের পাশাপাশি রিয়েলটাইম ডেটাবেসে আপনার ডেটা সুরক্ষিত করছেন৷ ব্যবহারকারী প্রমাণীকরণ উভয় ডাটাবেসের জন্য প্রমাণীকরণ দ্বারা পরিচালিত হয়, তাই আপনি ক্লাউড ফায়ারস্টোর ব্যবহার শুরু করার সময় আপনার প্রমাণীকরণের বাস্তবায়ন পরিবর্তন করতে হবে না।

বিবেচনা করার জন্য প্রধান পার্থক্য

  • মোবাইল এবং ওয়েব SDKগুলি ক্লাউড ফায়ারস্টোর সুরক্ষা নিয়মগুলি ব্যবহার করে, যখন সার্ভার SDKগুলি ডেটা সুরক্ষিত করতে আইডেন্টিটি অ্যাক্সেস ম্যানেজমেন্ট (IAM) ব্যবহার করে৷
  • আপনি একটি ওয়াইল্ডকার্ড ব্যবহার না করলে ক্লাউড ফায়ারস্টোর সুরক্ষা নিয়মগুলি ক্যাসকেড হয় না৷ নথি এবং সংগ্রহ অন্যথায় নিয়মের উত্তরাধিকারী হয় না।
  • আপনাকে আর আলাদাভাবে ডেটা যাচাই করতে হবে না (যেমন আপনি রিয়েলটাইম ডেটাবেসে করেছেন)।
  • ক্লাউড ফায়ারস্টোর একটি ক্যোয়ারী চালানোর আগে নিয়মগুলি পরীক্ষা করে নিশ্চিত করে যে ব্যবহারকারীর কাছে ক্যোয়ারী দ্বারা প্রত্যাবর্তিত সমস্ত ডেটার জন্য উপযুক্ত অ্যাক্সেস রয়েছে৷

ক্লাউড ফায়ারস্টোরে ঐতিহাসিক ডেটা সরান

একবার আপনি ক্লাউড ফায়ারস্টোরের ডেটা এবং সুরক্ষা মডেলগুলিতে আপনার ডেটা এবং সুরক্ষা কাঠামো ম্যাপ করলে, আপনি আপনার ডেটা যোগ করা শুরু করতে পারেন৷ আপনি যদি রিয়েলটাইম ডেটাবেস থেকে ক্লাউড ফায়ারস্টোরে আপনার অ্যাপ সরানোর পরে ঐতিহাসিক ডেটা জিজ্ঞাসা করার পরিকল্পনা করেন, তাহলে আপনার নতুন ক্লাউড ফায়ারস্টোর ডাটাবেসে আপনার পুরানো ডেটা রপ্তানি করুন৷ আপনি যদি আপনার অ্যাপে রিয়েলটাইম ডেটাবেস এবং ক্লাউড ফায়ারস্টোর উভয়ই ব্যবহার করার পরিকল্পনা করেন তবে আপনি এই পদক্ষেপটি এড়িয়ে যেতে পারেন।

পুরানো ডেটা দিয়ে নতুন ডেটা ওভাররাইট করা এড়াতে, আপনি প্রথমে আপনার ঐতিহাসিক ডেটা যোগ করতে চাইতে পারেন। আপনি যদি পরবর্তী ধাপে আলোচনা করা হয়েছে একই সাথে উভয় ডাটাবেসে নতুন ডেটা যোগ করেন, তাহলে নিশ্চিত করুন যে আপনি ক্লাউড ফাংশন দ্বারা ক্লাউড ফায়ারস্টোরে যোগ করা নতুন ডেটাকে প্রাধান্য দিয়েছেন।

ক্লাউড ফায়ারস্টোরে ঐতিহাসিক ডেটা স্থানান্তর করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. রিয়েলটাইম ডেটাবেস থেকে আপনার ডেটা রপ্তানি করুন বা সাম্প্রতিক ব্যাকআপ ব্যবহার করুন।
    1. ফায়ারবেস কনসোলের রিয়েলটাইম ডেটাবেস বিভাগে যান।
    2. ডেটা ট্যাব থেকে, আপনার ডাটাবেসের রুট-লেভেল নোড নির্বাচন করুন এবং মেনু থেকে JSON রপ্তানি নির্বাচন করুন।
  2. ক্লাউড ফায়ারস্টোরে আপনার নতুন ডাটাবেস তৈরি করুন এবং আপনার ডেটা যোগ করুন

    ক্লাউড ফায়ারস্টোরে আপনার কিছু ডেটা সরানোর সময় নিম্নলিখিত কৌশলগুলি বিবেচনা করুন:

    • একটি কাস্টম স্ক্রিপ্ট লিখুন যা আপনার জন্য আপনার ডেটা পোর্ট করে। যদিও আমরা এই স্ক্রিপ্টের জন্য একটি টেমপ্লেট অফার করতে পারি না, কারণ প্রতিটি ডাটাবেসের অনন্য চাহিদা থাকবে, আমাদের স্ল্যাক চ্যানেলে বা স্ট্যাক ওভারফ্লোতে ক্লাউড ফায়ারস্টোর বিশেষজ্ঞরা আপনার স্ক্রিপ্ট পর্যালোচনা করতে পারেন বা আপনার নির্দিষ্ট পরিস্থিতির জন্য পরামর্শ দিতে পারেন।
    • ক্লাউড ফায়ারস্টোরে সরাসরি ডেটা লিখতে সার্ভার SDKs (Node.js, Java, Python, or Go) ব্যবহার করুন৷ সার্ভার SDK সেট আপ করার নির্দেশাবলীর জন্য, শুরু করুন দেখুন।
    • বৃহৎ ডেটা স্থানান্তর ত্বরান্বিত করতে, ব্যাচ করা লেখা ব্যবহার করুন এবং একক নেটওয়ার্ক অনুরোধে 500টি পর্যন্ত অপারেশন পাঠান।
    • ক্লাউড ফায়ারস্টোর রেট সীমার অধীনে থাকার জন্য, প্রতিটি সংগ্রহের জন্য 500 রাইট/সেকেন্ডে অপারেশন সীমিত করুন।

ক্লাউড ফায়ারস্টোরে নতুন ডেটা যোগ করুন

আপনার ডাটাবেসের মধ্যে সমতা বজায় রাখতে, রিয়েলটাইমে উভয় ডাটাবেসে নতুন ডেটা যোগ করুন। ক্লাউড ফায়ারস্টোরে একটি লেখা ট্রিগার করতে ক্লাউড ফাংশন ব্যবহার করুন যখনই কোনো ক্লায়েন্ট রিয়েলটাইম ডেটাবেসে লেখে। নিশ্চিত করুন যে ক্লাউড ফায়ারস্টোর ক্লাউড ফাংশন থেকে আসা নতুন ডেটাকে আপনার ঐতিহাসিক ডেটা মাইগ্রেশন থেকে তৈরি করা যেকোনো লেখার উপর অগ্রাধিকার দেয়৷

ক্লাউড ফায়ারস্টোরে নতুন বা পরিবর্তন করা ডেটা লেখার জন্য একটি ফাংশন তৈরি করুন প্রতিবার যখন কোনও ক্লায়েন্ট রিয়েলটাইম ডেটাবেসে ডেটা লেখে। ক্লাউড ফাংশনের জন্য রিয়েলটাইম ডেটাবেস ট্রিগার সম্পর্কে আরও জানুন।

স্থানান্তরিত ডেটার জন্য ক্লাউড ফায়ারস্টোরকে আপনার প্রাথমিক ডাটাবেস করুন৷

আপনি যদি আপনার কিছু ডেটার জন্য ক্লাউড ফায়ারস্টোরকে আপনার প্রাথমিক ডাটাবেস হিসাবে ব্যবহার করার সিদ্ধান্ত নিয়ে থাকেন, তাহলে নিশ্চিত করুন যে আপনি যে কোনও ডেটা-মিররিং ফাংশন সেট আপ করেছেন এবং আপনার ক্লাউড ফায়ারস্টোর সুরক্ষা নিয়মগুলি যাচাই করেছেন৷

  1. আপনি যদি আপনার ডাটাবেসের মধ্যে সমতা বজায় রাখতে ক্লাউড ফাংশন ব্যবহার করেন, তবে নিশ্চিত করুন যে আপনি একটি লুপে উভয় ডাটাবেস জুড়ে লেখার ক্রিয়াকলাপগুলিকে নকল করছেন না৷ একটি একক ডাটাবেসে লেখার জন্য আপনার ফাংশনটি স্যুইচ করুন, বা ফাংশনটি সম্পূর্ণভাবে মুছে ফেলুন এবং রিয়েলটাইম ডেটাবেসের সাথে সংযুক্ত অ্যাপগুলিতে স্থানান্তরিত ডেটার জন্য লেখার কার্যকারিতা পর্যায়ক্রমে বন্ধ করা শুরু করুন৷ আপনার অ্যাপের জন্য আপনি কীভাবে এটি পরিচালনা করবেন তা আপনার নির্দিষ্ট চাহিদা এবং আপনার ব্যবহারকারীদের উপর নির্ভর করে।

  2. আপনার ডেটা সঠিকভাবে সুরক্ষিত আছে তা যাচাই করুন। আপনার ক্লাউড ফায়ারস্টোর নিরাপত্তা নিয়ম বা IAM সেটআপ যাচাই করুন।