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

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

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

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

इसके अलावा, किन बातों का ध्यान रखना ज़रूरी है?

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

डेटा मॉडल

रीयलटाइम डेटाबेस और Cloud Firestore, दोनों NoSQL डेटाबेस हैं.

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

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

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

रीयल टाइम डेटाबेस डेटा मॉडल के बारे में ज़्यादा जानें.

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

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

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

मौजूदगी

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

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

क्वेरी की जा रही है

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

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

लिखें और लेन-देन

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

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

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

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

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

कीमत

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

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

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

Cloud Firestore के प्राइसिंग प्लान के बारे में और पढ़ें.

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

रीयल टाइम डेटाबेस के प्राइसिंग प्लान के बारे में ज़्यादा पढ़ें.

Cloud Firestore और रीयलटाइम डेटाबेस का इस्तेमाल करना

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

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

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

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