कोई डेटाबेस चुनें: Cloud Firestore या रीयल टाइम डेटाबेस

Firebase, क्लाउड पर आधारित दो ऐसे दस्तावेज़ डेटाबेस उपलब्ध कराता है जिन्हें क्लाइंट ऐक्सेस कर सकते हैं. हमारा सुझाव है कि नए ग्राहक Cloud Firestore से शुरू करें:

  • Cloud Firestore एक सुझाया गया है, जो एंटरप्राइज़-ग्रेड JSON के साथ काम करने वाला दस्तावेज़ है. इस पर 2,50,000 से ज़्यादा डेवलपर भरोसा करते हैं. यह उन ऐप्लिकेशन के लिए सही है जिनमें रिच डेटा मॉडल होते हैं और जिन्हें क्वेरी करने, स्केल करने, और ज़्यादा उपलब्धता की ज़रूरत होती है. इससे क्लाइंट को कम समय में डेटा सिंक करने और ऑफ़लाइन डेटा ऐक्सेस करने की सुविधा भी मिलती है.

  • Realtime Database, Firebase का क्लासिक JSON डेटाबेस है. यह उन ऐप्लिकेशन के लिए सही है जिनमें आसान डेटा मॉडल होते हैं. साथ ही, इनमें सीमित स्केलेबिलिटी के साथ, आसान लुकअप और कम इंतज़ार के साथ सिंक करने की ज़रूरत होती है.

किन अन्य ज़रूरी बातों का ध्यान रखना चाहिए?

ऊपर बताई गई ज़रूरी बातों को ध्यान में रखकर, अब आप डेटाबेस चुनने के लिए तैयार हो सकते हैं. अगर आपको अब भी Cloud Firestore और Realtime Database के फ़ायदों और नुकसानों के बारे में पता करना है, तो इस सेक्शन में इनके बीच के अन्य अंतरों के बारे में बताया गया है.

डेटा मॉडल

Realtime Database और Cloud Firestore, दोनों NoSQL डेटाबेस हैं.

Cloud Firestore [ सुझाया गया ] Realtime Database
डेटा को दस्तावेज़ों के कलेक्शन के तौर पर सेव करता है.
  • सामान्य डेटा को दस्तावेज़ों में आसानी से सेव किया जा सकता है. ये दस्तावेज़, JSON से काफ़ी मिलते-जुलते होते हैं.
  • दस्तावेज़ों में सब-कलेक्शन का इस्तेमाल करके, बड़े पैमाने पर जटिल और हैरारकी वाले डेटा को व्यवस्थित करना आसान होता है.
  • इसमें डेटा को सामान्य फ़ॉर्मैट में बदलने और डेटा को फ़्लैट करने की ज़रूरत कम होती है.

Cloud Firestore डेटा मॉडल के बारे में ज़्यादा जानें.

डेटा को एक बड़े JSON ट्री के तौर पर सेव करता है.
  • सामान्य डेटा को सेव करना बहुत आसान है.
  • बड़े पैमाने पर, जटिल और हैरारकी वाले डेटा को व्यवस्थित करना मुश्किल होता है.

Realtime Database डेटा मॉडल के बारे में ज़्यादा जानें.

रीयल-टाइम और ऑफ़लाइन सहायता

दोनों में मोबाइल-फ़र्स्ट और रीयल टाइम SDK टूल हैं. साथ ही, दोनों में ऑफ़लाइन काम करने वाले ऐप्लिकेशन के लिए, लोकल डेटा स्टोरेज की सुविधा काम करती है.

Cloud Firestore [ प्राथमिकता दी जाती है ] Realtime Database
Apple, Android, और वेब क्लाइंट के लिए ऑफ़लाइन सहायता. Apple और Android क्लाइंट के लिए ऑफ़लाइन सहायता.

मौजूदगी

यह जानना फ़ायदेमंद हो सकता है कि कोई क्लाइंट ऑनलाइन है या ऑफ़लाइन. Firebase Realtime Database, क्लाइंट कनेक्शन की स्थिति रिकॉर्ड कर सकता है और हर बार क्लाइंट कनेक्शन की स्थिति बदलने पर अपडेट दे सकता है.

Cloud Firestore [ सुझाया गया ] Realtime Database
यह सुविधा डिफ़ॉल्ट रूप से काम नहीं करती. Realtime Database के साथ Cloud Firestore को सिंक करके, Realtime Database में मौजूद रहने की सुविधा को बेहतर बनाया जा सकता है. इसके लिए, Cloud Functions का इस्तेमाल करें. Cloud Firestore में मौजूद रहने की सुविधा को बेहतर बनाएं लेख पढ़ें. मौजूदगी की सुविधा उपलब्ध है.

क्वेरी करना

क्वेरी के ज़रिए दोनों में से किसी भी डेटाबेस से डेटा वापस पाएं, क्रम से लगाएं, और फ़िल्टर करें.

Cloud Firestore [ सुझाया गया ] Realtime Database
कंपाउंड क्रम से लगाने और फ़िल्टर करने वाली इंडेक्स की गई क्वेरी.
  • एक ही क्वेरी में, फ़िल्टर को चेन किया जा सकता है. साथ ही, किसी प्रॉपर्टी को फ़िल्टर करने और क्रम से लगाने की सुविधा को जोड़ा जा सकता है.
  • क्वेरी में बहुत कम जानकारी होती है: वे सिर्फ़ किसी खास कलेक्शन या कलेक्शन ग्रुप के दस्तावेज़ दिखाती हैं और सब-कलेक्शन डेटा नहीं दिखातीं.
  • क्वेरी से हमेशा पूरे दस्तावेज़ दिखने चाहिए.
  • क्वेरी को डिफ़ॉल्ट रूप से इंडेक्स किया जाता है: क्वेरी की परफ़ॉर्मेंस, आपके नतीजे के सेट के साइज़ के हिसाब से होती है, न कि आपके डेटासेट के साइज़ पर.
डीप क्वेरी, जिनमें क्रम से लगाने और फ़िल्टर करने की सुविधाएं सीमित होती हैं.
  • क्वेरी, किसी प्रॉपर्टी को क्रम से लगा सकती हैं या फ़िल्टर कर सकती हैं, लेकिन दोनों नहीं.
  • क्वेरी डिफ़ॉल्ट रूप से डीप होती हैं: वे हमेशा पूरा सबट्री दिखाती हैं.
  • क्वेरी, JSON ट्री में अलग-अलग लीफ-नोड वैल्यू के साथ-साथ, ज़्यादा जानकारी वाले डेटा को भी ऐक्सेस कर सकती हैं.
  • क्वेरी के लिए इंडेक्स की ज़रूरत नहीं होती है. हालांकि, जैसे-जैसे आपका डेटासेट बढ़ता है, कुछ क्वेरी की परफ़ॉर्मेंस में गिरावट आती है.

डेटा लिखना और लेन-देन

Cloud Firestore [ सुझाया गया ] Realtime Database
लिखने और लेन-देन से जुड़ी बेहतर कार्रवाइयां.
  • सेट और अपडेट ऑपरेशन के साथ-साथ ऐरे और संख्या वाले ऑपरेटर जैसे ऐडवांस ट्रांसफ़ॉर्मेशन की मदद से, डेटा ऑपरेशन लिखें.
  • लेन-देन डेटाबेस के किसी भी हिस्से से डेटा को एक साथ पढ़ और लिख सकता है.
लिखने और लेन-देन से जुड़े बुनियादी ऑपरेशन.

विश्वसनीयता और परफ़ॉर्मेंस

Cloud Firestore [ सुझाया गया ] Realtime Database
Cloud Firestore एक क्षेत्रीय और एक से ज़्यादा इलाकों में उपलब्ध समाधान है, जो अपने-आप बड़ा हो जाता है.
  • कम इंतज़ार वाला समाधान, जिसमें जवाब देने में लगने वाला औसत समय 30 सेकंड से ज़्यादा नहीं होता.
  • आपका डेटा अलग-अलग इलाकों में कई डेटा सेंटर में सेव करके रखा जाता है. इससे दुनिया भर में डेटा इस्तेमाल करने की क्षमता और भरोसे को मज़बूत बनाने में मदद मिलती है.
  • दुनिया भर के क्षेत्रीय या एक से ज़्यादा क्षेत्रों वाले कॉन्फ़िगरेशन में उपलब्ध.
सेवा स्तर समझौते में, Cloud Firestore परफ़ॉर्मेंस और भरोसेमंदता की विशेषताओं के बारे में ज़्यादा पढ़ें.
Realtime Database, क्षेत्र के हिसाब से लागू होने वाला समाधान है.
  • यह सुविधा, देश/इलाके के हिसाब से कॉन्फ़िगरेशन में उपलब्ध है. डेटाबेस, किसी क्षेत्र में ज़ोन के हिसाब से उपलब्ध होते हैं.
  • इंतज़ार का समय बहुत कम है. आम तौर पर, जवाब मिलने का समय 10 मि॰से॰ से ज़्यादा नहीं होना चाहिए. बार-बार स्थिति सिंक करने के लिए, यह एक बेहतर विकल्प है.
सेवा स्तर समझौते में, Realtime Database परफ़ॉर्मेंस और भरोसेमंदता की विशेषताओं के बारे में ज़्यादा पढ़ें.

चालू रहने का समय

Cloud Firestore [ प्राथमिकता दी जाती है ] Realtime Database
उपलब्ध रहने की अवधि बहुत ज़्यादा है.
  • आम तौर पर, अपटाइम की परफ़ॉर्मेंस 99.999% होती है.
  • अगर उपलब्धता सबसे ज़्यादा अहम है, तो Cloud Firestore का इस्तेमाल करें. उदाहरण के लिए, ई-कॉमर्स ऐप्लिकेशन में.
लंबे समय तक चालू रहने की बेहतर परफ़ॉर्मेंस.
  • सामान्य अपटाइम परफ़ॉर्मेंस 99.95% है.

बड़े पैमाने पर इस्तेमाल की जा सकने की सुविधा

Cloud Firestore [ सुझाया गया ] Realtime Database
स्केलिंग अपने-आप होती है.
  • यह पूरी तरह से अपने-आप स्केल होता है. स्केलिंग की सीमाएं, एक साथ 10 लाख कनेक्शन और 10,000 लिखने/सेकंड के आस-पास होती हैं. हम आने वाले समय में इन सीमाओं को बढ़ाने पर काम कर रहे हैं.
  • अलग-अलग दस्तावेज़ों या इंडेक्स में डेटा लिखने की दरों पर सीमाएं हैं.
स्केलिंग के लिए, शर्डिंग की ज़रूरत होती है.
  • एक ही डेटाबेस में, एक साथ 2,00,000 कनेक्शन और 1,000 लिखने की दर से डेटा डाला जा सकता है. इससे ज़्यादा स्केल करने के लिए, आपको अपने डेटा को कई डेटाबेस में बांटना होगा.
  • डेटा के अलग-अलग हिस्सों को लिखने की दरों पर कोई स्थानीय सीमा नहीं है.

सुरक्षा

Cloud Firestore [ सुझाया गया ] Realtime Database
ऐसे नियम जो अनुमति और पुष्टि को एक साथ जोड़ते हैं और कैस्केड नहीं होते.
  • ऐसे मोबाइल SDK टूल से पढ़ता और लिखता है जिन्हें Cloud Firestore Security Rules ने सुरक्षित किया है.
  • Identity and Access Management (IAM) से सुरक्षित किए गए सर्वर SDK टूल से पढ़ता और लिखता है.
  • वाइल्डकार्ड का इस्तेमाल किए बिना, नियम कैस्केड नहीं होते.
  • नियमों से क्वेरी पर पाबंदी लगाई जा सकती है: अगर किसी क्वेरी के नतीजों में ऐसा डेटा हो सकता है जिसका ऐक्सेस उपयोगकर्ता के पास नहीं है, तो पूरी क्वेरी काम नहीं करती.
कस्केडिंग नियमों की भाषा, जो अनुमति और पुष्टि को अलग करती है.
  • Realtime Database Security Rules से सुरक्षित किए गए मोबाइल SDK टूल से डेटा पढ़ता और उसमें डेटा सेव करता है.
  • नियमों के कैस्केड को पढ़ना और उसमें बदलाव करना.
  • validate नियम का इस्तेमाल करके, डेटा की पुष्टि अलग से की जाती है.

कीमत

Spark और Blaze के प्राइसिंग प्लान पर ये दोनों सुविधाएं उपलब्ध हैं.

Cloud Firestore [ प्राथमिकता दी जाती है ] Realtime Database
शुल्क मुख्य रूप से आपके डेटाबेस में किए गए ऑपरेशन (रीड, राइट, मिटाएं) के हिसाब से तय किया जाता है. साथ ही, कम दर पर बैंडविड्थ और स्टोरेज के हिसाब से भी शुल्क लिया जाता है.

Cloud Firestore, App Engine प्रोजेक्ट के लिए हर दिन खर्च की सीमा तय करता है. इससे यह पक्का किया जाता है कि लागत से ज़्यादा पैसे खर्च न हों.

Cloud Firestore के प्लान की कीमत के बारे में ज़्यादा जानें.

सिर्फ़ बैंडविड्थ और स्टोरेज के लिए शुल्क लिया जाता है. हालांकि, यह शुल्क ज़्यादा होता है.

Realtime Database के प्लान की कीमत के बारे में ज़्यादा जानें.

Cloud Firestore और Realtime Database का इस्तेमाल करना

एक ही Firebase ऐप्लिकेशन या प्रोजेक्ट में, दोनों डेटाबेस का इस्तेमाल किया जा सकता है. दोनों NoSQL डेटाबेस, एक ही तरह का डेटा सेव कर सकते हैं. साथ ही, क्लाइंट लाइब्रेरी भी एक जैसे तरीके से काम करती हैं. अगर आपको अपने ऐप्लिकेशन में दोनों डेटाबेस का इस्तेमाल करना है, तो पहले बताए गए अंतरों को ध्यान में रखें.

Realtime Database और Cloud Firestore, दोनों में उपलब्ध सुविधाओं के बारे में ज़्यादा जानें.

क्या आप डेटाबेस चुनने के लिए तैयार हैं?

उम्मीद है कि इस तुलना से आपको Firebase डेटाबेस के किसी समाधान को चुनने में मदद मिली होगी. अब अपने Firebase प्रोजेक्ट में डेटाबेस जोड़ने का तरीका जानें.