2009-09-14 16 views
25

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

प्रश्नों है कि आप इस तरह एक मेज पर चलने आमतौर पर फार्म (मेटा-एसक्यूएल) के होते हैं:

SELECT SUM(hits), SUM(bytes), 
FROM MyCube 
WHERE date='20090914' and pagename='Homepage' and browser!='googlebot' 
GROUP BY hour 

तो तुम उल्लेख किया फिल्टर के साथ चयनित दिन के प्रत्येक घंटे के लिए योग मिलता है। एक झगड़ा यह था कि इन क्यूब्स आमतौर पर एक पूर्ण टेबल स्कैन (विभिन्न कारणों) का मतलब था और इसका मतलब आकार (एमआईबी में) पर व्यावहारिक सीमा थी, आप इन चीजों को बना सकते थे।

मैं वर्तमान में हडोप और पसंदों के इन्स और आउट सीख रहा हूं।

बिगटेबल पर मैप्रिडस के रूप में उपर्युक्त क्वेरी को चलाने में आसान लग रहा है: बस 'घंटा' कुंजी बनाएं, मानचित्र में फ़िल्टर करें और मानों को जोड़कर कम करें।

क्या आप बैच के बजाय 'वास्तविक समय' (यानी उपयोगकर्ता इंटरफ़ेस के माध्यम से उपयोगकर्ता को अपना उत्तर ASAP प्राप्त कर सकते हैं) में एक बिगटेबल प्रकार की प्रणाली पर ऊपर दिखाया गया है (या कम से कम उसी आउटपुट के साथ) मोड?

यदि नहीं; BigTable/Hadoop/HBase/Hive और पसंद के क्षेत्र में ऐसा कुछ करने के लिए उचित तकनीक क्या है?

उत्तर

9

यह भी तरह का किया गया है (तरह)।

LastFM के एकत्रीकरण/सारांश इंजन: http://github.com/zohmg/zohmg

एक गूगल खोज एक गूगल कोड परियोजना "mroll" कर दिया, लेकिन यह संपर्क जानकारी (कोई कोड, कुछ भी) के अलावा कुछ भी नहीं है। फिर भी, उस आदमी तक पहुंचना और देखना है कि क्या हो रहा है। http://code.google.com/p/mroll/

+1

zohmg sugegstion के लिए धन्यवाद। उनकी वेबसाइट के मुताबिक: "मूल विचार योग को पूर्व-गणना करना और उन्हें एक कुशल तरीके से स्टोर करना है"। मेरा विचार डेटा के एक सेट के साथ शुरू करना है और उस पल में उपयोगकर्ताओं की जरूरतों के आधार पर कुल मिलाकर है। –

+0

आप पूर्ववर्ती करना चाहते हैं ताकि आयामों के प्रत्येक अद्वितीय संयोजन के लिए आपके पास अधिकतम एक पंक्ति हो; रन-टाइम एकत्रीकरण तब घन के उपयुक्त क्रॉस-सेक्शन को रोल करने का सवाल है। ज़ोमग आपके लिए रास्ता कैसे इंगित कर सकता है कि यह कैसे करें। मुझे कम से कम एक विज्ञापन नेटवर्क पता है जो हाइपरटेबल या एचबीज़ का उपयोग अपने ग्राहकों के लिए रीयल-टाइम डैशबोर्डिंग करने के लिए करता है, इसलिए यह करने योग्य है। – SquareCog

+3

ज़ोमग अब छोड़ दिया गया है। – rjha94

4

मेरा जवाब HBase से संबंधित है, लेकिन बिगटेबल के लिए समान रूप से लागू होता है।

शहरी एयरशिप ओपन-सोर्स datacube, जो मुझे लगता है कि आप जो चाहते हैं उसके करीब है। यहां उनके presentation देखें।

एडोब में कुछ प्रस्तुतियां भी हैं (here और here) कैसे वे एचबीएस के साथ "कम-विलंबता ओलाप" करते हैं।

3

यदि आप टेबल-स्कैन दृष्टिकोण की तलाश में हैं, तो क्या आपने Google BigQuery पर विचार किया है? BigQuery बैक-साइड पर स्वचालित स्केल-आउट करता है जो इंटरैक्टिव प्रतिक्रिया देता है। 2012 के Google I/O ईवेंट से जॉर्डन टिगानी द्वारा एक अच्छा सत्र है जो कुछ आंतरिक लोगों को बताता है।

http://www.youtube.com/watch?v=QI8623HlYd4

यह MapReduce नहीं है लेकिन यह उच्च गति तालिका की दिशा में सक्षम है कि तुम क्या वर्णित की तरह स्कैन।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। –

4

हम एक एसक्यूएल क्वेरी preagragating और उचित Hbase qualifiers में मैपिंग द्वारा एचबीएस में कम विलंबता ओलाप बनाने में कामयाब रहे। अधिक जानकारी के लिए नीचे साइट पर जाएं।

http://soumyajitswain.blogspot.in/2012/10/hbase-low-latency-olap.html

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