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