आवेदन लगातार (लगभग हर सेकंड) उपयोगकर्ताओं के स्थान को इकट्ठा करेगा और उन्हें संग्रहीत करेगा।
यह डेटा संरचित है। एक रिलेशनल डेटाबेस में, इसे निम्नानुसार संग्रहीत किया जाएगा:
| user | timestamp | latitude | longitude |
हालाँकि, बहुत अधिक डेटा है। प्रति उपयोगकर्ता प्रतिदिन 60 × 60 × 24 = 86,400 रिकॉर्ड होंगे। 1000 उपयोगकर्ताओं के साथ भी, इसका मतलब है कि प्रतिदिन 86,400,000 रिकॉर्ड।
और यह न केवल प्रतिदिन 86,400,000 रिकॉर्ड है। क्योंकि इन अभिलेखों को संसाधित किया जाएगा और उनमें से संसाधित संस्करण भी संग्रहीत किए जाएंगे। तो, उस संख्या को लगभग 2 से गुणा करें।
मैं डेटा का उपयोग करने की योजना कैसे बनाऊं
अनिवार्य रूप से, मैं आसान उपभोग के लिए स्थान डेटा के मोटे अनाज संस्करण बनाने की योजना बना रहा हूं। अर्थात्:
- प्राप्त डेटा wrt टाइमस्टैम्प को सॉर्ट करें।
- इस सूची में क्रम में यह निर्धारित करते हुए कि क्या स्थान काफी बदल गया है (यह जाँच कर कि अक्षांश और देशांतर कितना बदल गया है)
- उत्पादन में एकल प्रविष्टि के रूप में गैर महत्वपूर्ण स्थान परिवर्तन का प्रतिनिधित्व करते हैं (इसलिए, आउटपुट स्थान डेटा का एक मोटे अनाज वाला संस्करण है)।
- एक महत्वपूर्ण परिवर्तन के लिए एक भी बड़े अक्षांश और देशांतर परिवर्तन की आवश्यकता द्वारा, आउटपुट पर इस प्रक्रिया को बदल दें। इसलिए, पिछले आउटपुट से उत्पादित किया जाने वाला उत्पादन और भी अधिक दानेदार होगा।
- पूरी प्रक्रिया को आवश्यकतानुसार पूरा करें।
- प्रस्तावों की एक श्रृंखला को अलग करें और उन्हें उपयोगकर्ताओं को भेजें। इसके अलावा, बाद में खपत के लिए डेटा के सभी प्रस्तावों को स्टोर करें।
इस डेटा को संग्रहीत करने के लिए मुझे क्या उपयोग करना चाहिए? क्या मुझे रिलेशनल डेटाबेस या NoSQL समाधान का उपयोग करना चाहिए? इस एप्लिकेशन को डिज़ाइन करते समय मुझे किन अन्य बातों पर विचार करना चाहिए?