इस पेज पर, कुछ सामान्य स्थितियों में बिलिंग यूनिट के हिसाब से शुल्क कैलकुलेट करने के उदाहरण दिए गए हैं. ध्यान दें कि हर क्वेरी में प्रोसेस किया गया डेटा अलग-अलग हो सकता है. यह क्वेरी प्लान, डेटा के स्ट्रक्चर, और उपलब्ध इंडेक्स जैसे फ़ैक्टर पर निर्भर करता है.
हमारा सुझाव है कि अपनी खास क्वेरी की लागत और परफ़ॉर्मेंस को बेहतर तरीके से समझने के लिए, क्वेरी की व्याख्या करें सुविधा का इस्तेमाल करें.
डेटा पढ़ने की कार्रवाइयां
ज़्यादातर रीड ऑपरेशन में, किसी खास दस्तावेज़ को पॉइंट रीड करना या आइडेंटिफ़ायर के आधार पर डेटा की किसी रेंज को स्कैन करना शामिल होता है. डेटा पढ़ने की कार्रवाइयों में, रीड यूनिट का इस्तेमाल होता है. यहां दिए गए उदाहरण देखें.
पूरे टेक्स्ट में खोज करने की सुविधा
फ़ुल-टेक्स्ट सर्च क्वेरी के लिए शुल्क, टेक्स्ट इंडेक्स पर खोज करने की लागत और दस्तावेज़ों को वापस पाने की लागत के बीच अंतर के आधार पर तय किए जाते हैं. टेक्स्ट इंडेक्स में खोज करने की लागत, क्वेरी की जटिलता और नतीजों को ढूंढने के लिए इंडेक्स में स्कैन किए गए डेटा की मात्रा के आधार पर तय की जाती है. इस लागत पर कई चीज़ों का असर पड़ता है. जैसे, खोज के लिए इस्तेमाल किए गए शब्दों की संख्या और टाइप (उदाहरण के लिए, शब्द, वाक्यांश), क्या प्रासंगिकता स्कोरिंग लागू की गई है, और इंडेक्स की कितनी एंट्री की जांच करनी है. काम के दस्तावेज़ों को वापस पाने की लागत, खोज का चरण पूरा होने के बाद फ़ेच किए गए दस्तावेज़ों की संख्या और साइज़ पर आधारित होती है.
नीचे दी गई टेबल में, किसी नर्सरी के ई-कॉमर्स प्रॉडक्ट कैटलॉग के लिए, फ़ुल-टेक्स्ट खोज क्वेरी चलाने से जुड़े शुल्क के बारे में बताया गया है. इस उदाहरण में, यह माना गया है कि किसी कलेक्शन में 2,00,000 प्रॉडक्ट लिस्टिंग हैं. साथ ही, हर प्रॉडक्ट लिस्टिंग दस्तावेज़ का साइज़ 2 केआईबी है और उससे जुड़े टेक्स्ट सर्च इंडेक्स का साइज़ करीब 100 एमबी है.
| क्वेरी | कोड का उदाहरण | हर क्वेरी के लिए, अनुमानित तौर पर इस्तेमाल की गई रीड यूनिट | अनुमानित लागत (क्षेत्र: us-central1, अमेरिकी डॉलर में) |
|---|---|---|---|
| "ड्राई वॉटर" स्टैक फ़्लैट ट्रे वाले किसी ऐसे प्रॉडक्ट को खोजो जो आसानी से उपलब्ध न हो. इसके लिए, तीन दस्तावेज़ों को खोजा गया. | |
पढ़ने के लिए कुल 10 यूनिट यह अनुमान, फ़ुल-टेक्स्ट सर्च के लिए सात यूनिट और खोज के नतीजों के तौर पर मिले दस्तावेज़ों के लिए तीन अतिरिक्त यूनिट के आधार पर लगाया गया है. |
हर 10 लाख क्वेरी के लिए 0.50 डॉलर |
| घर के अंदर उगाए जाने वाले सभी खट्टे पेड़ों को खोजें. इससे 36 दस्तावेज़ मिलते हैं. | |
पढ़ी गई कुल 42 यूनिट यह कीमत, पूरे टेक्स्ट को खोजने के लिए छह यूनिट और खोज के नतीजों में मिले दस्तावेज़ों के लिए 36 अतिरिक्त यूनिट के आधार पर तय की गई है. |
हर 10 लाख क्वेरी के लिए 2.10 डॉलर |
| बालकनी में रखे जाने वाले गमलों के लिए खोज क्वेरी, जिसमें कई प्रॉडक्ट मेल खाते हैं. नतीजों को सबसे काम के नतीजों के हिसाब से क्रम में लगाएं. साथ ही, खोज के टॉप 50 नतीजों तक सीमित करें. | |
पढ़ने के लिए कुल 75 यूनिट यह कीमत, पूरे टेक्स्ट को खोजने के लिए 25 यूनिट और खोज के नतीजों में मिले दस्तावेज़ों के लिए 50 अतिरिक्त यूनिट के आधार पर तय की गई है. |
हर 10 लाख क्वेरी के लिए 3.75 डॉलर |
इन उदाहरणों से पता चलता है कि अलग-अलग क्वेरी पैटर्न से लागत पर क्या असर पड़ता है:
- "ड्राई वॉटर" क्वेरी में एक वाक्यांश (
"dry water") और अन्य शब्द शामिल हैं. फ़्रेज़ सर्च ज़्यादा जटिल होती हैं, क्योंकि क्वेरी इंजन को टोकन की प्रॉक्सिमिटी और क्रम की जांच करनी होती है. इससे खोज के चरण के लिए सात रीड यूनिट का इस्तेमाल होता है. बहुत कम दस्तावेज़ मैच होने की वजह से, दस्तावेज़ वापस पाने का शुल्क कम है. - "इंडोर" "सिट्रस" "ट्री" क्वेरी में तीन अलग-अलग शब्दों को खोजा जाता है. फ़्रेज़ मैच की तुलना में, हर शब्द के लिए यह थोड़ा कम मुश्किल होता है. हालांकि, इसके लिए अब भी कई टोकन देखने पड़ते हैं. इसमें "सूखा पानी" के उदाहरण की तुलना में, खोज इंडेक्स को स्कैन करने की लागत थोड़ी कम है. यह छह रीड यूनिट है. हालांकि, इसमें 36 दस्तावेज़ दिखाए जाते हैं, जिससे कुल लागत बढ़ जाती है.
- बालकनी में लगाने वाले गमले की क्वेरी के लिए, फ़ुल-टेक्स्ट सर्च की लागत सबसे ज़्यादा है. यह 25 यूनिट है. ऐसा इसलिए है, क्योंकि यह क्वेरी ऐसे शब्दों के आधार पर नतीजों को क्रम से लगाने का अनुरोध करती है जो कई दस्तावेज़ों से मेल खाते हैं. साथ ही, यह क्वेरी नतीजों को 'कितने काम के हैं' (
.sort({score: {$meta: "textScore"}})) के हिसाब से क्रम से लगाने का अनुरोध करती है. सबसे ज़्यादा काम के 50 नतीजे तय करने के लिए, क्वेरी इंजन को "बालकनी" या "गमला" से मिलते-जुलते सभी संभावित नतीजे ढूंढने होंगे. इसके बाद, हर नतीजे के लिए काम का स्कोर कैलकुलेट करना होगा और फिर उन्हें क्रम से लगाना होगा. इंडेक्स में मौजूद कई उम्मीदवारों के दस्तावेज़ों को स्कोर करने और उन्हें क्रम से लगाने की प्रोसेस में काफ़ी समय लगता है. भले ही, सिर्फ़ 50 दस्तावेज़ों को वापस लाया गया हो. ब्रॉड मैच वाले कीवर्ड के साथ-साथ काम के होने के आधार पर स्कोरिंग करने की वजह से, खोज के लिए इस्तेमाल किए गए शब्दों की लागत बढ़ जाती है.
जियोस्पेशल क्वेरी
जियोस्पेशल क्वेरी के लिए शुल्क, क्वेरी की जटिलता, इस्तेमाल की गई खास शर्तों और सॉर्टिंग के आधार पर तय किए जाते हैं. साथ ही, यह शुल्क इस बात पर भी निर्भर करता है कि जियोस्पेशल इंडेक्स में मौजूद सभी डेटा को स्कैन करने के लिए किन संसाधनों की ज़रूरत है.
इस टेबल में, मैप ऐप्लिकेशन के लिए भू-स्थानिक क्वेरी चलाने से जुड़े शुल्क के बारे में बताया गया है. इस उदाहरण में,दिलचस्पी के विषयों को दिखाने वाले 10,00, 000 दस्तावेज़ों का कलेक्शन माना गया है. इसमें हर दस्तावेज़ का साइज़ 1 केआईबी है. साथ ही, इससे जुड़े जियोस्पेशल इंडेक्स का साइज़ करीब 60 एमबी है.
| क्वेरी | कोड का उदाहरण | हर क्वेरी के लिए, अनुमानित तौर पर इस्तेमाल की गई रीड यूनिट | अनुमानित लागत (क्षेत्र: us-central1, अमेरिकी डॉलर में) |
|---|---|---|---|
| ज़्यादा से ज़्यादा 10 किलोमीटर के दायरे में मौजूद सभी लोकप्रिय जगहें ढूंढो. इसके लिए, 10 मैचिंग नतीजे दिखाओ. | |
पढ़ने के लिए कुल 16 यूनिट. जियोस्पेशल क्वेरी के लिए छह और जवाब में मिले दस्तावेज़ों के लिए 10 यूनिट. |
हर 10 लाख क्वेरी के लिए 0.80 डॉलर |
| 100 कि॰मी॰ के दायरे में मौजूद सभी लोकप्रिय जगहों की जानकारी दो. साथ ही, 1,000 मैच में से सबसे नज़दीक की 10 लोकप्रिय जगहों की जानकारी दो | |
पढ़ने के लिए कुल 19 यूनिट. यह अनुमान, जियोस्पेशल क्वेरी के लिए नौ और जवाब में मिले दस्तावेज़ों के लिए 10 यूनिट के आधार पर लगाया गया है. |
हर 10 लाख क्वेरी के लिए 0.95 डॉलर |
इन उदाहरणों से पता चलता है कि अलग-अलग क्वेरी पैटर्न से लागत पर क्या असर पड़ता है:
- 10 कि॰मी॰ के दायरे में क्वेरी: यह क्वेरी, छोटे भौगोलिक क्षेत्र को स्कैन करती है. इस 10 कि॰मी॰ के दायरे में सिर्फ़ 10 मैच मिलने की वजह से, क्वेरी इंजन को इन पॉइंट की पहचान करने और दूरी के हिसाब से क्रम में लगाने के लिए कम काम करना पड़ता है. ऐसा इसलिए, क्योंकि
$nearऐसा अपने-आप करता है. इससे इंडेक्स स्कैन करने की लागत कम हो जाती है. अब इसके लिए, सिर्फ़ छह रीड यूनिट खर्च होती हैं. - 100 कि॰मी॰ के दायरे में की गई क्वेरी: इस क्वेरी में ज़्यादा बड़ा इलाका शामिल होता है. इस क्वेरी से, 100 किलोमीटर के दायरे में 1,000 संभावित मैच मिलते हैं. सबसे नज़दीकी 10 पॉइंट के अनुरोध को पूरा करने के लिए, क्वेरी इंजन को दूरियों का हिसाब लगाना होता है. साथ ही, इंडेक्स में मौजूद ज़्यादा से ज़्यादा 1,000 पॉइंट के सेट को क्रम से लगाना होता है. ज़्यादा पॉइंट की जांच करने और उन्हें रैंक करने के लिए, ज़्यादा कंप्यूटेशनल काम करना पड़ता है. इसलिए, 10 कि॰मी॰ की क्वेरी की तुलना में, जियोस्पेशल क्वेरी की लागत ज़्यादा होती है. इसकी लागत 9 रीड यूनिट है. हालांकि, यह क्वेरी भी सिर्फ़ 10 दस्तावेज़ दिखाती है.
पॉइंट पढ़ना
पॉइंट रीड के लिए बिलिंग का उदाहरण:
- एक KiB के किसी दस्तावेज़ को एक बार पढ़ा गया. इस्तेमाल की गई यूनिट: 1 रीड यूनिट
- 4 केआईबी के एक दस्तावेज़ को पॉइंट रीड करना. इस्तेमाल की गई यूनिट: 1 रीड यूनिट
- एक 1 MiB दस्तावेज़ को पॉइंट रीड करना. इस्तेमाल करता है: 256 रीड यूनिट
- हर दस्तावेज़ का साइज़ 1 केआईबी है. ऐसे 100 दस्तावेज़ों को पढ़ा गया. इस्तेमाल की गई रीड यूनिट: 100
स्कैन किया जा रहा है
यहां दिए गए उदाहरणों में, दस्तावेज़ों को स्कैन करने या इंडेक्स एंट्री के बारे में बताया गया है.
दस्तावेज़ स्कैन करना
- ऐसी क्वेरी जो 100 दस्तावेज़ों को स्कैन करती है. हर दस्तावेज़ का साइज़ 1 केआईबी है. इस्तेमाल करता है: 25 रीड यूनिट
इंडेक्स स्कैन करना
स्कैनिंग की लागत, बाइट के हिसाब से एक जैसी होती है. इससे कोई फ़र्क़ नहीं पड़ता कि स्कैन किया जा रहा डेटा कोई दस्तावेज़ है या इंडेक्स. हालांकि, इंडेक्स एंट्री का साइज़ अक्सर छोटा होता है. इसलिए, ये अक्सर डेटा को कम लागत में स्कैन करने का बेहतर तरीका उपलब्ध करा सकते हैं.
- ऐसी क्वेरी जो इंडेक्स की 100 एंट्री को स्कैन करती है. हर एंट्री का साइज़ 1 किबीबाइट है. इस्तेमाल की गई इकाइयां: 25 रीड यूनिट.
- क्वेरी, जो 100 इंडेक्स एंट्री को स्कैन करती है. हर एंट्री 128 बाइट की होती है. इस्तेमाल की गई यूनिट: 4 रीड यूनिट.
दस्तावेज़ या इंडेक्स एंट्री का कम से कम साइज़
कुछ मामलों में, क्वेरी का जवाब देने के लिए किसी दस्तावेज़ या इंडेक्स एंट्री को पढ़ना ज़रूरी नहीं होता. इसमें गिनती से जुड़ी सामान्य क्वेरी शामिल हैं. जैसे, किसी कलेक्शन में दस्तावेज़ों की कुल संख्या गिनना. इन स्थितियों में, स्कैन किए गए हर आइटम के लिए कम से कम 32 बाइट का शुल्क लगता है.
- किसी कलेक्शन में मौजूद दस्तावेज़ों की संख्या गिनें. क्वेरी, कलेक्शन में मौजूद 1,000 आइटम स्कैन करती है. इस्तेमाल करता है: 8 रीड यूनिट.
स्कैनिंग और पॉइंट रीड का कॉम्बिनेशन
कई क्वेरी, किसी ऑपरेशन को पूरा करने के लिए स्कैनिंग और पॉइंट रीड, दोनों का इस्तेमाल करती हैं.
- ऐसी क्वेरी जो 128 इंडेक्स एंट्री को स्कैन करती है. हर एंट्री 256 बाइट की होती है. साथ ही, यह 128 दस्तावेज़ों को पॉइंट रीड करती है. हर दस्तावेज़ 4 केबी का होता है. इस्तेमाल की गई इकाइयां: 136 रीड यूनिट, जिनमें ये शामिल हैं:
- पॉइंट रीड के लिए 128 रीड यूनिट
- इंडेक्स स्कैन के लिए आठ रीड यूनिट
क्वेरी की व्याख्या करना
क्वेरी के बारे में जानकारी सुविधा से, यह समझने में मदद मिलती है कि डेटाबेस आपकी क्वेरी को कैसे पूरा करता है. दी गई जानकारी से, क्वेरी को ऑप्टिमाइज़ करने में मदद मिल सकती है.
क्वेरी की व्याख्या करने की सुविधा का इस्तेमाल करने पर, ये शुल्क लागू होते हैं:
- क्वेरी की व्याख्या करने वाली सुविधा, क्वेरी को लागू करती है: क्वेरी की लागत लागू होती है.
- सिर्फ़ प्लान का इस्तेमाल करके, क्वेरी के बारे में जानकारी देने का विकल्प. इस्तेमाल की गई: एक रीड यूनिट (क्वेरी की कम से कम लागत)
डेटा सेव करने की कार्रवाइयां
लिखने की कार्रवाइयों (बनाना, अपडेट करना, और मिटाना) के लिए, दस्तावेज़ों और इंडेक्स के साइज़ के आधार पर शुल्क लिया जाता है. ये दस्तावेज़ और इंडेक्स, कार्रवाई के दौरान बनाए, बदले या मिटाए जाते हैं. लिखने की कार्रवाइयों में, राइट यूनिट का इस्तेमाल होता है. इकाइयों को 1 KiB के हिस्सों में बांटा जाता है.
लिखने की सामान्य कार्रवाइयों, जैसे कि दस्तावेज़ आईडी के हिसाब से अपडेट करने पर, सिर्फ़ लिखने की लागत लगती है. लिखने की ऐसी कार्रवाइयों के लिए क्वेरी करने की ज़रूरत होती है. इसलिए, क्वेरी से जुड़े पढ़ने के शुल्क के साथ-साथ, लिखने की कार्रवाइयों का शुल्क भी देना होगा.
यहां दिए गए उदाहरण देखें.
बनाता है
- बिना इंडेक्स वाला 10 केआईबी का नया दस्तावेज़ बनाएं. इस्तेमाल करता है: 10 राइट यूनिट
- कलेक्शन पर 256 बाइट की एक इंडेक्स एंट्री के साथ 1 केआईबी का दस्तावेज़ बनाएं. इस्तेमाल करता है: 2 राइट यूनिट
अपडेट
- दस्तावेज़ के आईडी से 10 केबी का कोई दस्तावेज़ ढूंढें और उसे अपडेट करें. इसके लिए, कलेक्शन में कोई इंडेक्स नहीं होना चाहिए. इस्तेमाल करता है: 10 राइट यूनिट
- दस्तावेज़ आईडी के हिसाब से 1 केआईबी का दस्तावेज़ ढूंढें. साथ ही, 256 बाइट की एक इंडेक्स एंट्री के साथ एक फ़ील्ड अपडेट करें. इस्तेमाल की गई इकाइयां: 3 राइट यूनिट. ध्यान दें: इस स्थिति में इंडेक्स एंट्री को अपडेट करने पर, दो राइट यूनिट खर्च होती हैं. एक यूनिट इंडेक्स एंट्री को मिटाने के लिए और दूसरी यूनिट इंडेक्स एंट्री को फिर से बनाने के लिए.
- दस्तावेज़ के आईडी के हिसाब से, 1 केबी का दस्तावेज़ ढूंढें और उसमें कोई बदलाव न करें. इस्तेमाल करता है: 1 राइट यूनिट (कम से कम राइट यूनिट)
- किसी कलेक्शन में मौजूद 1 केआईबी के सभी दस्तावेज़ों को क्वेरी करें. इससे 1,000 दस्तावेज़ स्कैन किए जाते हैं. साथ ही, कलेक्शन में 256 बाइट का एक नया फ़ील्ड डालें, जिसमें कोई इंडेक्स न हो: 1,000 रीड यूनिट और 1,000 राइट यूनिट.
हटाए
- एक KiB का दस्तावेज़ मिटाएं, जिसका कलेक्शन में एक इंडेक्स है. इस्तेमाल करता है: 2 राइट यूनिट
- एक KiB का ऐसा दस्तावेज़ मिटाएं जिसमें कलेक्शन पर कोई इंडेक्स नहीं है. इस्तेमाल करता है: 1 राइट यूनिट
इंडेक्स बनाना
इंडेक्स बनाने की प्रोसेस के दौरान बनाई गई या बदली गई इंडेक्स एंट्री के लिए, इंडेक्स बनाने की प्रोसेस का शुल्क लिया जाता है. जब भी इंडेक्स डेफ़िनिशन जोड़ी या हटाई जाती है, तब ये लागतें लगती हैं. इंडेक्स एंट्री के लिए, राइट ऑपरेशन के हिसाब से बिलिंग की जाती है. हर 1 केआईबी के लिए, एक राइट यूनिट का शुल्क लिया जाता है.
- 500 दस्तावेज़ों वाले कलेक्शन के लिए नया इंडेक्स बनाएं. इंडेक्स की हर एंट्री का साइज़ 1 केआईबी है. इसमें 500 राइट यूनिट खर्च होती हैं.
- 500 दस्तावेज़ों वाले कलेक्शन के लिए, मौजूदा इंडेक्स मिटाना मिटाई गई इंडेक्स एंट्री, हर एक 1 केबी की होती है. इसमें 500 राइट यूनिट खर्च होती हैं.