मैं Google ऐप इंजन समूहों पर कई उपयोगकर्ताओं (Fig1, Fig2, Fig3) पर पढ़ रहा हूं, यह पता नहीं लगा सकता कि उनकी बिलिंग रिपोर्ट में डेटास्टोर की उच्च संख्या कहां से आती है।
जैसा कि आप जानते हैं, Datastore reads इस बजट के ऊपर 50K ऑपरेशंस/दिन तक सीमित हैं, आपको भुगतान करना होगा।कितने डेटास्टोर प्रत्येक Fetch, गणना और क्वेरी संचालन का उपभोग करते हैं?
50K ऑपरेशंस बहुत सारे संसाधनों की तरह लगता है, लेकिन असल में, ऐसा लगता है कि प्रत्येक ऑपरेशन (क्वेरी, एंटिटी लांच, गिनती ..), कई डेटास्टोर को छुपाता है।
क्या यह संभव है एपीआई या कुछ अन्य दृष्टिकोण के माध्यम से पता करने के लिए, कितने डेटास्टोर आम RPC.get
, RPC.runquery
कॉल के पीछे छिपा रहे होते?
Appstats इस मामले में बेकार लगता है क्योंकि यह केवल आरपीसी विवरण देता है और छिपी हुई पढ़ाई लागत नहीं देता है।
इस तरह एक साधारण मॉडल के बाद: डेटासंग्रह में
class Example(db.Model):
foo = db.StringProperty()
bars= db.ListProperty(str)
और संस्थाओं, मैं संचालन इस तरह की लागत में दिलचस्पी रखता हूँ:
items_count = Example.all(keys_only = True).filter('bars=','spam').count()
items_count = Example.all().count(10000)
items = Example.all().fetch(10000)
items = Example.all().filter('bars=','spam').filter('bars=','fu').fetch(10000)
items = Example.all().fetch(10000, offset=500)
items = Example.all().filter('foo>=', filtr).filter('foo<', filtr+ u'\ufffd')
मुझे लगता है कि लौटाई गई प्रत्येक इकाई एक पठन है, यदि आपके पास रेफ प्रोप है तो पहली बार जब आप इसे एक्सेस करते हैं तो भी पढ़ा जाता है। ध्यान दें कि fetch (X) का मतलब यह नहीं है कि यदि काउंटी बहुत अधिक है तो एक्स इकाइयां वापस आती हैं तो यह थोक में काम करेगी और प्रत्येक थोक डेटा को पढ़ने (थोक आकार) के रूप में गिना जाएगा। मुझे नहीं पता कि डेटा पढ़ने के संबंध में गिनती (एक्स) कैसे काम करती है, इसे एक पठन के रूप में गिना जाना चाहिए, लेकिन यह एक इच्छापूर्ण सोच है। –