2010-09-23 5 views
6

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

क्या किसी के पास उसके आवेदन में मॉन्ड्रियन घटकों का पुन: उपयोग करने में कुछ अनुभव है?

+0

हाय, क्या आप ऐसा करने में सक्षम थे? मैं भी एक ही समस्या के साथ अटक गया हूँ। – amrk7

उत्तर

1

मैं मॉडरियन के नवीनतम 3.2.0 निर्माण को डाउनलोड करने की अनुशंसा करता हूं, इसे इसकी सभी निर्भरताओं के साथ वितरित किया जाता है। वितरण में भी शामिल एक आईवी फाइल है जो इसकी निर्भरताओं का वर्णन करती है।

नवीनतम रिलीज: http://forums.pentaho.com/showthread.php?77035-Mondrian-3.2-GA-Schema-Workbench-and-Agg-Designer-stable-available-on-SourceForge&p=239443#poststop

प्रलेखन के साथ-साथ Pentaho की वेबसाइट पर पाया जा सकता है। सौभाग्य!

+0

क्या आप मुझे लिख सकते हैं कि परिवर्तन तंत्र का उपयोग करने के लिए मुझे अपनी परियोजना में कौन सी libs शामिल करनी चाहिए? – Skarab

1

ओलाप 4j अब पेंटाहो मॉन्ड्रियन का हिस्सा है। शायद आप olap4j एपीआई में जानकारी पा सकते हैं?

org.olap4j.mdx.parser: MDX क्वेरी भाषा के लिए पार्सर http://www.olap4j.org/

यह पेज मैं देख पर

olap4j ओलाप के लिए एक खुला जावा एपीआई है।

जेडीबीसी की तरह सोचें, लेकिन बहु-आयामी डेटा तक पहुंचने के लिए।

olap4j किसी भी OLAP सर्वर के लिए एक आम एपीआई डिज़ाइन किया गया है, ताकि आप आसानी एक OLAP सर्वर पर एक आवेदन और बारे में यह एक और करने के लिए स्विच कर सकते हैं। और उस एपीआई पर बनाया, उपकरण और घटकों का संग्रह बढ़ रहा होगा।

+0

-1, मैं अपने आवेदन में "मैपिंग" कार्यक्षमता शामिल करना चाहता हूं। यह मेरे प्रश्न में स्पष्ट रूप से कहा गया है। – Skarab

0

ऐसा लगता है कि mondrian.rolap.agg.AggregationManager से संबंधित कुछ कोड है लेकिन यह सीधे आगे नहीं है।

parseTree = this.olap4jConnection.getMondrianConnection().parseStatement(mdx); 
DrillThrough plan1 = (DrillThrough)parseTree; 
Query query = plan1.getQuery(); 
query.setResultStyle(ResultStyle.LIST); 
this.setQuery(query); 
CellSet cellSet = this.executeOlapQueryInternal(
    query, 
    (MondrianOlap4jCellSetMetaData) null 
); 
List coords = Collections.nCopies(cellSet.getAxes().size(), Integer.valueOf(0)); 
MondrianOlap4jCell cell = (MondrianOlap4jCell) cellSet.getCell(coords); 
ResultSet resultSet = cell.drillThroughInternal(
    plan1.getMaxRowCount(), 
    plan1.getFirstRowOrdinal(), 
    plan1.getReturnList(), 
    true, 
    (Logger)null, 
    rowCountSlot 
); 

आप अंतिम पंक्ति अनुसरण करते हैं,

cell.drillThroughInternal (...)

आप यहाँ

स्ट्रिंग एसक्यूएल खत्म हो जाएगा = इस। getDrillThroughSQL (फ़ील्ड, विस्तारित कॉन्टेक्स्ट);

लेकिन मुझे यकीन नहीं है कि क्या मॉन्ड्रियन एक एमडीएक्स के लिए केवल एक एसक्यूएल उत्पन्न करता है। मुझे लगता है कि एक्सएमएलए (जो अधिकांश उपकरण इंटरफ़ेस के रूप में उपयोग करते हैं) के माध्यम से, आप एक धुरी के माध्यम से ड्रिल का अनुरोध कर सकते हैं, जिसमें पूर्ण क्वेरी को फिर से लिखा नहीं जाता है।

इस उत्तर की आशा है।

0

मैं hsqldb द्वारा समर्थित Mondrian का उपयोग कर रहा हूं ताकि डेवलपर इन-मेमोरी डीबीएस के खिलाफ काम कर सकें, लेकिन फिर जब हम वास्तविक वातावरण पर तैनात हों तो गैर-मोंड्रियन ओलाप कार्यान्वयन पर स्विच करें। मतलब है कि हम कुछ और अधिक जटिल विकास कर सकते हैं, अनिवार्य रूप से केवल एमडीएक्स को एसक्यूएल में परिवर्तित करने के लिए मोंड्रियन का उपयोग कर।

मैंने एक स्प्रिंगबूट/एमवीएन परीक्षण केस बनाया है और आरओएलएपी डीडीएल और मोंड्रियन मैपिंग स्कीमा की प्रतिलिपि बनाने के लिए this पृष्ठ का उपयोग किया है। मैंने here टिप्पणियों में से एक से MondrianDaoSupport टेम्पलेट का उपयोग किया। उसी पृष्ठ में एमवीएन निर्भरताओं पर भी कुछ मदद की आवश्यकता है (एनबी: मुझे एनपीई मुद्दे को पाने के लिए mondrian 3.2.0 के साथ jflex 1.4.1 का उपयोग करना था)। Hsqldb के साथ स्प्रिंगबूट का उपयोग करके मैं परीक्षण शुरू होने पर डेटा के साथ ROLAP स्कीमा बना देता हूं। फिर मैं स्कीमा फ़ाइल को क्लासपाथ संसाधन के रूप में इंजेक्ट करता हूं, और डेटासोर्स स्वचालित रूप से स्वचालित रूप से hsqldb डेटासॉर होता है। यह अब तक अच्छी तरह से काम कर रहा है - जूनिट परीक्षण चलाने के लिए केवल ~ सेकंड ले रहा है जो डेटा के साथ एक ताजा डीबी बूटस्ट्रैप करता है और एक एमडीएक्स क्वेरी निष्पादित करता है। मुझे अधिक जटिल एमडीएक्स प्रश्नों का उपयोग करने की कोशिश करते समय कुछ समस्याएं आती हैं - लेकिन देखते हैं।

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