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

ফায়ারবেস দুটি ক্লাউড-ভিত্তিক, ক্লায়েন্ট-অ্যাক্সেসযোগ্য ডকুমেন্ট ডেটাবেস প্রদান করে। আমরা নতুন গ্রাহকদের Cloud Firestore দিয়ে শুরু করার পরামর্শ দিই।

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

  • Realtime Database হলো ফায়ারবেসের ক্লাসিক JSON ডেটাবেস। এটি সরল ডেটা মডেলযুক্ত অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত, যেগুলিতে সীমিত স্কেলেবিলিটিসহ সাধারণ লুকআপ, স্বল্প-বিলম্বের সিঙ্ক্রোনাইজেশন প্রয়োজন।

বিবেচনা করার মতো আরও কিছু গুরুত্বপূর্ণ বিষয় কী কী?

পূর্ববর্তী মূল বিষয়গুলো বিবেচনা করার পর, আপনি একটি ডেটাবেস বেছে নেওয়ার জন্য প্রস্তুত হতে পারেন। আপনি যদি এখনও সুবিধা এবং অসুবিধাগুলো বিচার-বিবেচনা করে থাকেন, তবে এই বিভাগে Cloud Firestore এবং Realtime Database মধ্যে অন্যান্য পার্থক্যগুলো আলোচনা করা হয়েছে।

ডেটা মডেল

Realtime Database এবং Cloud Firestore উভয়ই নোএসকিউএল (NoSQL) ডেটাবেস।

Cloud Firestore [ পছন্দসই ] Realtime Database
ডেটাকে ডকুমেন্টের সংগ্রহ হিসেবে সংরক্ষণ করে।
  • ডকুমেন্টে সরল ডেটা সহজে সংরক্ষণ করা যায়, যা অনেকটা JSON-এর মতোই।
  • ডকুমেন্টের মধ্যে সাব-কালেকশন ব্যবহার করে জটিল ও শ্রেণিবদ্ধ ডেটা বৃহৎ পরিসরে সংগঠিত করা সহজ হয়।
  • কম ডিনরমালাইজেশন এবং ডেটা ফ্ল্যাটেনিং প্রয়োজন।

Cloud Firestore ডেটা মডেল সম্পর্কে আরও জানুন।

ডেটা একটি বৃহৎ JSON ট্রি হিসেবে সংরক্ষণ করে।
  • সরল ডেটা সংরক্ষণ করা খুবই সহজ।
  • জটিল ও স্তরবিন্যস্ত ডেটা বৃহৎ পরিসরে সংগঠিত করা আরও কঠিন।

Realtime Database ডেটা মডেল সম্পর্কে আরও জানুন।

রিয়েলটাইম এবং অফলাইন সাপোর্ট

উভয়েরই মোবাইল-ফার্স্ট ও রিয়েলটাইম এসডিকে রয়েছে এবং উভয়ই অফলাইন-রেডি অ্যাপের জন্য লোকাল ডেটা স্টোরেজ সমর্থন করে।

Cloud Firestore [ পছন্দসই ] Realtime Database
অ্যাপল, অ্যান্ড্রয়েড এবং ওয়েব ক্লায়েন্টদের জন্য অফলাইন সমর্থন। অ্যাপল এবং অ্যান্ড্রয়েড ক্লায়েন্টদের জন্য অফলাইন সাপোর্ট।

উপস্থিতি

কোনো ক্লায়েন্ট কখন অনলাইন বা অফলাইন আছে তা জানা দরকারি হতে পারে। ফায়ারবেস Realtime Database ক্লায়েন্টের সংযোগের অবস্থা রেকর্ড করতে পারে এবং প্রতিবার ক্লায়েন্টের সংযোগের অবস্থা পরিবর্তিত হলে আপডেট প্রদান করে।

Cloud Firestore [ পছন্দসই ] Realtime Database
স্বাভাবিকভাবে সমর্থিত নয়। আপনি Cloud Functions ব্যবহার করে Cloud Firestore এবং Realtime Database সিঙ্ক করার মাধ্যমে Realtime Database প্রেজেন্স সাপোর্টকে আরও উন্নত করতে পারেন। Cloud Firestore প্রেজেন্স তৈরি করুন দেখুন। উপস্থিতি সমর্থিত।

কোয়েরি করা

কোয়েরির মাধ্যমে যেকোনো ডাটাবেস থেকে ডেটা পুনরুদ্ধার, সাজানো এবং ফিল্টার করুন।

Cloud Firestore [ পছন্দসই ] Realtime Database
যৌগিক সর্টিং এবং ফিল্টারিং সহ ইনডেক্সড কোয়েরি।
  • আপনি ফিল্টারগুলিকে শৃঙ্খলিত করতে পারেন এবং একটি একক কোয়েরিতে কোনো একটি প্রপার্টির উপর ফিল্টারিং ও সর্টিং একত্রিত করতে পারেন।
  • কোয়েরিগুলো শ্যালো বা সীমিত পরিসরের হয়: এগুলো শুধু একটি নির্দিষ্ট কালেকশন বা কালেকশন গ্রুপের ডকুমেন্টগুলো ফেরত দেয় এবং সাব-কালেকশনের ডেটা ফেরত দেয় না।
  • কোয়েরির মাধ্যমে সর্বদা সম্পূর্ণ ডকুমেন্ট ফেরত আসতে হবে।
  • কোয়েরিগুলো ডিফল্টরূপে ইনডেক্স করা থাকে: কোয়েরির পারফরম্যান্স আপনার ডেটাসেটের উপর নয়, বরং আপনার রেজাল্ট সেটের আকারের উপর নির্ভর করে।
সীমিত সর্টিং এবং ফিল্টারিং বৈশিষ্ট্য সহ গভীর কোয়েরি।
  • কোয়েরি কোনো একটি প্রপার্টির ওপর ভিত্তি করে সর্ট বা ফিল্টার করতে পারে, কিন্তু উভয়ই একসাথে পারে না।
  • কোয়েরিগুলো ডিফল্টভাবে গভীর হয়: এগুলো সর্বদা সম্পূর্ণ সাবট্রি-টি ফেরত দেয়।
  • কোয়েরিগুলো JSON ট্রি-এর স্বতন্ত্র লিফ-নোড ভ্যালু পর্যন্ত যেকোনো সূক্ষ্ম স্তরে ডেটা অ্যাক্সেস করতে পারে।
  • কোয়েরিগুলোর জন্য ইনডেক্সের প্রয়োজন হয় না; তবে আপনার ডেটাসেট বড় হওয়ার সাথে সাথে নির্দিষ্ট কিছু কোয়েরির পারফরম্যান্স হ্রাস পায়।

লেখা এবং লেনদেন

Cloud Firestore [ পছন্দসই ] Realtime Database
উন্নত লিখন এবং লেনদেন কার্যক্রম।
  • সেট ও আপডেট অপারেশনের পাশাপাশি অ্যারে ও নিউমেরিক অপারেটরের মতো উন্নত ট্রান্সফরমেশনের মাধ্যমে ডেটা অপারেশন লিখুন
  • ট্রানজ্যাকশন ডাটাবেসের যেকোনো অংশ থেকে অ্যাটমিকভাবে ডেটা রিড এবং রাইট করতে পারে।
মৌলিক লিখন এবং লেনদেন কার্যক্রম।

নির্ভরযোগ্যতা এবং কর্মক্ষমতা

Cloud Firestore [ পছন্দসই ] Realtime Database
Cloud Firestore একটি আঞ্চলিক এবং বহু-আঞ্চলিক সমাধান যা স্বয়ংক্রিয়ভাবে পরিবর্ধনযোগ্য।
  • একটি স্বল্প-বিলম্বের সমাধান, যার সাধারণ প্রতিক্রিয়া সময় ৩০ মিলিসেকেন্ডের বেশি নয়।
  • এটি বিভিন্ন অঞ্চলের একাধিক ডেটা সেন্টারে আপনার ডেটা সংরক্ষণ করে, যা বৈশ্বিক পরিবর্ধনযোগ্যতা এবং শক্তিশালী নির্ভরযোগ্যতা নিশ্চিত করে।
  • বিশ্বজুড়ে আঞ্চলিক বা বহু-আঞ্চলিক কনফিগারেশনে উপলব্ধ।
সার্ভিস লেভেল এগ্রিমেন্ট -এ Cloud Firestore পারফরম্যান্স এবং নির্ভরযোগ্যতার বৈশিষ্ট্য সম্পর্কে আরও পড়ুন।
Realtime Database একটি আঞ্চলিক সমাধান।
  • আঞ্চলিক কনফিগারেশনে উপলব্ধ। ডেটাবেসগুলো একটি অঞ্চলের মধ্যে জোনভিত্তিক প্রাপ্যতার মধ্যে সীমাবদ্ধ।
  • অত্যন্ত কম ল্যাটেন্সি, যার সাধারণ প্রতিক্রিয়া সময় ১০ মিলিসেকেন্ডের বেশি নয়। ঘন ঘন স্টেট-সিঙ্কিংয়ের জন্য এটি একটি আদর্শ বিকল্প।
সার্ভিস লেভেল এগ্রিমেন্ট -এ Realtime Database পারফরম্যান্স ও নির্ভরযোগ্যতার বৈশিষ্ট্য সম্পর্কে আরও পড়ুন।

আপটাইম

Cloud Firestore [ পছন্দসই ] Realtime Database
অত্যন্ত উচ্চ আপটাইম পারফরম্যান্স।
  • গড় আপটাইম পারফরম্যান্স ৯৯.৯৯৯%।
  • যদি প্রাপ্যতা সর্বাধিক গুরুত্বপূর্ণ হয়, উদাহরণস্বরূপ ই-কমার্স অ্যাপের ক্ষেত্রে, Cloud Firestore ব্যবহার করুন।
উচ্চ আপটাইম পারফরম্যান্স।
  • গড় আপটাইম পারফরম্যান্স ৯৯.৯৫%।

পরিমাপযোগ্যতা

Cloud Firestore [ পছন্দসই ] Realtime Database
স্কেলিং স্বয়ংক্রিয়।
  • সম্পূর্ণ স্বয়ংক্রিয়ভাবে স্কেল করে। যুগপৎ সংযোগ বা সামগ্রিক ডাটাবেস রাইট/সেকেন্ড রেটের উপর কোনো সীমাবদ্ধতা নেই।
  • স্বতন্ত্র নথি বা সূচীতে লেখার হারের উপর সীমাবদ্ধতা রয়েছে।
স্কেলিংয়ের জন্য শার্ডিং প্রয়োজন।
  • একটিমাত্র ডেটাবেসে প্রায় ২,০০,০০০ যুগপৎ সংযোগ এবং প্রতি সেকেন্ডে ১,০০০ রাইট পর্যন্ত স্কেল করা যায়। এর চেয়ে বেশি স্কেল করতে হলে একাধিক ডেটাবেসে আপনার ডেটা শার্ডিং করার প্রয়োজন হবে।
  • স্বতন্ত্র ডেটা খণ্ডে লেখার হারের উপর কোনো স্থানীয় সীমাবদ্ধতা নেই।

নিরাপত্তা

Cloud Firestore [ পছন্দসই ] Realtime Database
অ-ক্রমিক নিয়মাবলী যা অনুমোদন এবং বৈধতা যাচাইকে একত্রিত করে।
  • Cloud Firestore Security Rules দ্বারা সুরক্ষিত মোবাইল এসডিকেগুলো থেকে ডেটা পড়া ও লেখা যায়।
  • আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট (IAM) দ্বারা সুরক্ষিত সার্ভার SDK থেকে ডেটা পড়া এবং লেখা হয়।
  • ওয়াইল্ডকার্ড ব্যবহার না করলে নিয়মগুলো ক্রমান্বয়ে প্রযোজ্য হয় না।
  • নিয়ম কোয়েরিকে সীমাবদ্ধ করতে পারে: যদি কোনো কোয়েরির ফলাফলে এমন ডেটা থাকার সম্ভাবনা থাকে যা ব্যবহারকারীর অ্যাক্সেস নেই, তাহলে সম্পূর্ণ কোয়েরিটি ব্যর্থ হয়।
ক্যাসকেডিং রুলস ল্যাঙ্গুয়েজ যা অনুমোদন এবং বৈধতা যাচাইকে পৃথক করে।

মূল্য নির্ধারণ

উভয় সমাধানই Spark এবং Blaze-এর প্রাইসিং প্ল্যানগুলোতে পাওয়া যায়।

Cloud Firestore [ পছন্দসই ] Realtime Database
প্রধানত আপনার ডাটাবেসে সম্পাদিত অপারেশনগুলোর (পড়া, লেখা, মুছে ফেলা) উপর এবং অপেক্ষাকৃত কম হারে ব্যান্ডউইথ ও স্টোরেজের উপর চার্জ ধার্য করা হয়।

আপনার সাধ্যের বাইরে খরচ এড়ানোর জন্য Cloud Firestore মাসিক বাজেট এবং অ্যালার্ট সমর্থন করে।

Cloud Firestore মূল্য পরিকল্পনা সম্পর্কে আরও পড়ুন।

শুধুমাত্র ব্যান্ডউইথ এবং স্টোরেজের জন্য চার্জ করা হয়, তবে তা একটু বেশি হারে।

Realtime Database মূল্য পরিকল্পনা সম্পর্কে আরও পড়ুন।

Cloud Firestore এবং Realtime Database ব্যবহার করে

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

Realtime Database এবং Cloud Firestore উভয়টিতে উপলব্ধ বৈশিষ্ট্যগুলো সম্পর্কে আরও জানুন।

ডাটাবেস বেছে নিতে প্রস্তুত?

আশা করি এই তুলনাটি আপনাকে একটি ফায়ারবেস ডাটাবেস সমাধান বেছে নিতে সাহায্য করেছে। এখন আপনি শিখতে পারেন কীভাবে আপনার ফায়ারবেস প্রজেক্টে একটি ডাটাবেস যুক্ত করতে হয়।