हम नेटफ्लो डेटा को पकड़ने और विश्लेषण करने के लिए एक टूल विकसित कर रहे हैं, जिसमें से हम जबरदस्त मात्रा में इकट्ठा होते हैं। हर दिन हम ~ 1.4 बिलियन प्रवाह रिकॉर्ड पर कब्जा कर लेते हैं, जो कि इस प्रकार के रूप में दिखाई देगा:
{
"tcp_flags": "0",
"src_as": "54321",
"nexthop": "1.2.3.4",
"unix_secs": "1352234521",
"src_mask": "23",
"tos": "0",
"prot": "6",
"input": "105",
"doctets": "186",
"engine_type": "0",
"exaddr": "2.3.4.5",
"engine_id": "2",
"srcaddr": "9.8.7.6",
"dst_as": "12345",
"unix_nsecs": "752265174",
"sysuptime": "2943529544",
"dst_mask": "24",
"dstport": "80",
"last": "2943523241",
"srcport": "52672",
"dpkts": "4",
"output": "111",
"dstaddr": "6.5.4.3",
"first": "2943517993"
}
हम डेटा सेट पर तेजी से खोजों (10 सेकंड से कम) करने में सक्षम होना चाहते हैं, समय की संकीर्ण स्लाइस (10 - 30 मिनट अंतराल) पर सबसे अधिक संभावना है। हम अधिकांश डेटा बिंदुओं को अनुक्रमित करना चाहते हैं ताकि हम उनमें से प्रत्येक पर जल्दी से खोज कर सकें। जब खोज निष्पादित की जाती हैं तो हम डेटा को अद्यतित करना भी चाहेंगे। खुले स्रोत की दुनिया में रहना बहुत अच्छा होगा, लेकिन हम इस परियोजना के लिए मालिकाना समाधान देखने के विरोध में नहीं हैं।
यह विचार लगभग एक महीने का डेटा रखने का है, जो ~ 43.2 बिलियन रिकॉर्ड होगा। एक मोटा अनुमान है कि प्रत्येक रिकॉर्ड में लगभग 480 बाइट्स डेटा होंगे, जो एक महीने में ~ 18.7 टेराबाइट्स डेटा के बराबर होगा, और शायद तीन बार अनुक्रमित के साथ। आखिरकार हम इस प्रणाली की क्षमता को अरबों-खरबों की संख्या में विकसित करना चाहेंगे।
हमारे पास इस परियोजना के लिए अभी तक संभावित उम्मीदवारों के रूप में काउचबेस, कैसंड्रा, और मोंगोडब का मूल्यांकन किया गया है, हालांकि प्रत्येक ने अपनी चुनौतियों का प्रस्ताव किया है। Couchbase के साथ अनुक्रमण अंतराल पर किया जाता है और डेटा के सम्मिलन के दौरान नहीं होता है, इसलिए दृश्य अद्यतित नहीं होते हैं, कैसेंड्रा के द्वितीयक अनुक्रमणिका परिणाम वापस करने में बहुत कुशल नहीं होते हैं क्योंकि उन्हें आमतौर पर परिणामों के लिए संपूर्ण क्लस्टर को स्कैन करने की आवश्यकता होती है, और मोंगोडब दिखते हैं लेकिन यह मास्टर / स्लेव / शार्ल्ड होने के साथ-साथ स्केल करना अधिक कठिन प्रतीत होता है। हमारे द्वारा मूल्यांकन किए जाने वाले कुछ अन्य उम्मीदवारों में इलास्टिक्स खोज, mysql (निश्चित रूप से यदि यह भी लागू है तो निश्चित नहीं है), और कुछ कॉलम उन्मुख रिलेशनल डेटाबेस हैं। किसी भी सुझाव या वास्तविक दुनिया के अनुभव की सराहना की जाएगी।