2010-06-07 12 views
7

कई मामलों में, Google अनुप्रयोग इंजन का उपयोग करके डेटास्टोर में किसी तालिका (एक प्रकार) में पंक्तियों की संख्या जानने के लिए उपयोगी हो सकता है।
स्पष्ट और तेज़ समाधान नहीं है। कम से कम मुझे एक नहीं मिला .. क्या तुम?डेटास्टोर में किसी तालिका में पंक्तियों की संख्या कैसे प्राप्त करें?

उत्तर

14

Datastore Statistics का उपयोग करके आप कुशलता से किसी विशेष प्रकार की सभी इकाइयों (यानी, तालिका में पंक्तियों की संख्या) की गिनती प्राप्त कर सकते हैं। सरल उदाहरण:

from google.appengine.ext.db import stats 
kind_stats = stats.KindStat().all().filter("kind_name =", "NameOfYourModel").get() 
count = kind_stats.count 

आप कैसे प्राप्त करने के लिए नवीनतम आंकड़े here के एक अधिक विस्तृत उदाहरण मिल सकते हैं (GAE आँकड़े की कई प्रतियां रख सकते हैं - 30 मिनट पहले के लिए 5min पहले के लिए एक, एक, आदि)।

ध्यान दें कि ये आंकड़े लगातार अद्यतन नहीं होते हैं, इसलिए वे वास्तविक गणनाओं के पीछे थोड़ा पीछे हट जाते हैं। क्या तुम सच में वास्तविक गणना की जरूरत है, तो आप अपने स्वयं के कस्टम आंकड़ा तालिका में मायने रखता है पर नज़र रखने और यह हर बार जब आप एक इकाई को नष्ट बनाने/अद्यतन (हालांकि यह काफ़ी अधिक करने के लिए महंगा हो जाएगा) हो सकता है।

अपडेट 03-08-2015: डेटास्टोर सांख्यिकी का उपयोग करने से पुराने परिणाम हो सकते हैं। यदि यह कोई विकल्प नहीं है, तो दो और तरीके एक काउंटर या शेडिंग काउंटर रख रहे हैं। (You can read more about those here)। यदि आपको रीयल-टाइम परिणामों की आवश्यकता है तो केवल इन 2 को देखें।

7

ऐप इंजन में "गिनती चुनें (*)" की कोई अवधारणा नहीं है। आपको निम्नलिखित में से एक करने की आवश्यकता होगी:

  1. क्वेरी समय पर इच्छित इकाइयों की "कुंजी-केवल" (अनुक्रमणिका ट्रैवर्सल) करें और उन्हें एक-एक करके गिनें। इसमें धीमी गति से पढ़ने की लागत है।
  2. लिखने के समय पर अद्यतन गणना - इसका प्रति लेखन/अद्यतन की अधिक लागत पर बेहद तेजी से पढ़ने का लाभ है। लागत: आपको पता होना चाहिए कि आप समय से पहले क्या गिनना चाहते हैं। आप लिखने के समय पर एक उच्च लागत का भुगतान करेंगे।
  3. अद्यतन सब मायने रखता है एसिंक्रोनस रूप से कार्य कतार, क्रॉन नौकरियों या नई Mapper API का उपयोग कर। इसमें अर्ध-ताजा होने का व्यापार है।
+0

+1 इन सभी महान विकल्प जो और अधिक उपयुक्त है कि डेटासंग्रह आँकड़े एपीआई के जरूरतों के आधार पर हो सकता है कर रहे हैं अपने आवेदन। –

3

आप कोई भरोसा कर सकते हैं। Google अनुप्रयोग इंजन में पंक्तियों com.google.appengine.api.datastore.Query पालन का उपयोग करने का:

int count; 
    Query qry=new Query("EmpEntity"); 
    DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService(); 
    count=datastoreService.prepare(qry).countEntities(FetchOptions.Builder.withDefaults()); 
संबंधित मुद्दे

 संबंधित मुद्दे