2010-07-16 6 views
7

मैं एक django अनुप्रयोग में घटनाओं को ट्रैक करने के लिए रास्ता तलाश रहा हूं (घटनाएं आमतौर पर एक विशिष्ट अद्वितीय उपयोगकर्ता आईडी से जुड़ी क्लिक होती हैं)।क्लिक/इवेंट ट्रैकिंग मैकेनिज्म (पायथन, डीजेंगो, अजवाइन, मोंगो इत्यादि) के लिए सिफारिश

इन घटनाओं में अनिवार्य रूप से "क्लिक" जैसे ईवेंट प्रकार शामिल होंगे और फिर प्रत्येक क्लिक ईवेंट को एक अद्वितीय आईडी (कई घटनाएं एक आईडी पर जा सकती हैं) को सौंपा जाएगा और प्रत्येक ईवेंट में डेटा सेट होगा जिसमें रेफरर इत्यादि जैसे आइटम शामिल होंगे। ...

मैंने मिक्सपैनेल की कोशिश की है, लेकिन अब डेटा एपीआई वे पेशकश कर रहे हैं क्योंकि मुझे लगता है कि मुझे अपने सभी डेटा को एक अद्वितीय आईडी से बाहर करने का कोई तरीका नहीं दिख रहा है (घटना के अलावा अपने आप)।

मैं django-eventracker का उपयोग करने में देख रहा हूं, लेकिन किसी अन्य के बारे में उत्सुकता यह करने का सबसे अच्छा तरीका है। मोंगो या कॉच डीबी यहां एक महान पसंद की तरह लगते हैं, लेकिन अजवाइन/खरगोश मोंगो के साथ वास्तव में आकर्षक लग रहा है। इन घटनाओं को मौजूदा अनुप्रयोगों में पंप करना डीबी इस बिंदु पर सीमित लग रहा है।

फिर भी, यह सिर्फ एक दूसरे लोग क्या विचार इस पर हैं और कैसे वे कुछ इस तरह लागू किया है देखने के लिए धागा ...

शूट

+0

mongodb couchdb से अधिक तेज़ लिखता है। मोंगोडब वहां विकल्प है। – panchicore

उत्तर

3

मैं पहले से पैक समाधान से परिचित नहीं हूँ आप का उल्लेख है। क्या मैं इसे स्क्रैच से डिज़ाइन करने के लिए तैयार कर रहा था, मेरे पास क्लिक पर एक साधारण जेएस एकत्रित जानकारी होगी और इसे अजाक्स के माध्यम से सर्वर पर वापस पोस्ट करना होगा (जो भी जेएस फ्रेमवर्क आप पहले से उपयोग कर रहे हैं), और सर्वर की तरफ मैं बस जोड़ना चाहता हूं बाद में "ऑफलाइन" प्रसंस्करण के लिए एक लॉग फ़ाइल में यह जानकारी - ताकि यह आवश्यक रूप से django या अन्य सर्वर-साइड फ्रेमवर्क से स्वतंत्र हो। जबकि डीबीएस वेब उपयोग के लिए आम तौर पर जिस तरह से पढ़ने के गहन (नहीं लिखने गहन) ऑपरेशन के लिए अनुकूलित कर रहे हैं

एक लॉग फ़ाइल को जोड़ना, एक बहुत ही हल्के वजन कार्रवाई है, इसलिए मैं आप के साथ है कि शक्ति है कि जानकारी फिटिंग सहमत (जैसा कि यह चाल करता है) मौजूदा ऐप के डीबी में अच्छा प्रदर्शन करने की संभावना नहीं है।

+0

मुझे लॉग फ़ाइल की पेशकश के मुकाबले डेटा पर अधिक विश्लेषण करने की क्षमता की आवश्यकता होगी लेकिन लॉग फ़ाइल एक बुरा विचार नहीं है। घटनाओं को AJAX कॉल के माध्यम से सर्वर के माध्यम से संसाधित किया जाता है, लेकिन मुझे इस बिंदु पर कार्य कतार के विचार को भी पसंद है .... – jmat

+2

@jmat - आप जो भी कर सकते हैं उस पर वास्तव में सीमाएं नहीं हैं और लॉग फ़ाइलों में नहीं डाल सकते ... जैसा कि @ एलेक्स ने उल्लेख किया है, आप हमेशा उस डेटा को "ऑफ़लाइन" पार्स कर सकते हैं जो आपको अपने वास्तविक विश्लेषण करने के लिए आवश्यक प्रकार की संरचनाओं में डाल सकता है। –

+1

@jmat, जैसा कि @ मैट्ट्यू कहते हैं, लॉगिंग "डेटा पर विश्लेषण" के लिए बिल्कुल वही संभावनाएं प्रदान करती है, जैसा कि आप सीधे किसी भी प्रोग्राम में डेटा पंप करके प्राप्त करेंगे - लॉग बस _stays_ थोड़ी देर के आसपास, इसलिए इसे संसाधित किया जा सकता है (यदि आवश्यक हो तो एक से अधिक, जब ऐसा करने के लिए सबसे सुविधाजनक) (उदाहरण के लिए, एक हल्के वजन, तेजी से प्रसंस्करण कुछ सरल सामानों के लिए एक बार देखे जाने वाले डेमॉन द्वारा किया जाता है जिसे आपको एक बार में जानना आवश्यक होता है, बाद में अधिक अच्छी तरह से गोदाम गोदाम - जो भी हो!)। –

1

यदि क्लिक करके, आप का मतलब है कि एक लिंक पर क्लिक करें जो एक नया पृष्ठ लोड करता है (या AJAX अनुरोध करता है), तो आप जो करना चाहते हैं वह काफी सरल है। वेब सर्वर अनुरोधों के बारे में सादे-पाठ लॉग रखना चाहते हैं - उपयोगकर्ता, समय/दिनांक, रेफरर, अनुरोधित पृष्ठ, आदि के बारे में जानकारी के साथ। आप इन लॉगों की जांच कर सकते हैं और जिन आंकड़ों की आपको आवश्यकता है, उन्हें जांच सकते हैं।

दूसरी तरफ, यदि आपके पास कोई वेब एप्लिकेशन है जहां क्लिक आवश्यक रूप से सर्वर अनुरोध उत्पन्न नहीं करते हैं, तो जावास्क्रिप्ट के साथ क्लिक जानकारी एकत्र करना आपकी सबसे अच्छी शर्त है।

+0

ये क्लिक कई स्रोतों से आंतरिक और बाहरी डोमेन से आ सकते हैं, इसलिए आम तौर पर जेएस बोलना ही एकमात्र उत्तर है ... हालांकि यह पहले से ही काम कर रहा है, मैं क्लिक डेटा को प्रभावित किए बिना इस डेटा की बड़ी मात्रा में स्टोर करने के तरीकों में अधिक रुचि रखता हूं और पेज लोड। – jmat

2

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

यदि आप mysql, postgresql या ऐसे का उपयोग करने के बारे में सोच रहे हैं, तो आपको बफरिंग लिखने के लिए rsyslog जैसे कुछ देखना चाहिए और भारी लॉगिंग के साथ प्रदर्शन दंड से परहेज करना चाहिए। (मैं इस प्रकार की चीज़ के लिए अजवाइन और अन्य क्यूईंग तंत्र के बारे में ज्यादा नहीं कह सकता, लेकिन वे वादा करने लगते हैं।)

मोंगोडब में कुछ अच्छी विशेषताएं हैं जो इसे capped collections जैसे लॉगिंग करने के लिए सक्षम बनाती हैं। सारांश this post में पाया जा सकता है।

+0

आपके द्वारा प्रदान किया गया अंतिम लिंक इस उद्देश्य के लिए mongo का उपयोग करने के प्रमुख कारणों में से एक है .. thx। – jmat

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