2011-11-10 18 views
12

Czy są jakieś zalety związane z wydajnością używania serwera ROLAP, takiego jak Mondrian, na bazie danych MySQL, w przeciwieństwie do prostego wyszukiwania bazy danych MySQL?Dlaczego warto używać ROLAP zamiast zwykłego MySQL?

Pytam o to w kontekście, w którym większość moich zapytań będzie stosunkowo prosta (jak znalezienie całej sprzedaży w pewnym okresie), ale rozmiar bazy danych jest dość duży (setki tysięcy wpisów) .

Mój pomysł polegał na wykorzystaniu OLAP do przyspieszenia zapytań, ale teraz jestem zdezorientowany, czy faktycznie jest to celem tej technologii, szczególnie w jej formie ROLAP. Podczas testowania interfejsu API olap4j zdałem sobie sprawę, że mogę go używać do generowania zapytań MDX bez posiadania rzeczywistego serwera OLAP (tylko mając relacyjną bazę danych i schemat OLAP dla niego). Jak to może być użyteczne pod względem wydajności?

Dzięki

+1

"* setki tysięcy *" nie jest uważane za "raczej duże". Setki milionów byłyby. –

+0

Tak, masz rację. Jest to wielkość, którą mam teraz, ale z pewnością wzrośnie w przyszłości. – Epicurus

Odpowiedz

10

To zależy od tego, jak zamierzasz z niego korzystać.

OLAP to narzędzie do uproszczenia złożonej analizy danych. Jeśli twoje zapytania są statyczne i proste, nie używaj ROLAP. Spowoduje to niepotrzebne obciążenie.

Z drugiej strony, jeśli konieczne jest wykonanie złożonej i szczegółowej interaktywnej analizy danych dla celów raportowania i analizy biznesowej, należy zastosować ROLAP.

UPDATE: Jeśli potrzebujesz OLAP wysokiej wydajności dla MySQL, powinieneś przyjrzeć this post on the MySQL performance blog dla dyskusji na temat różnic w wykonywaniu różnych metod i narzędzi.

3

OLAP umożliwia analizowanie danych w kilku wymiarach; każdy wymiar może (jeśli nie zawsze) być "hierarchią" (tj. drzewem). Pozwala to na przejście od dużego obrazu (bardzo zagregowane dane) do szczegółów, gdy jest to wymagane (drążenie).

Ponadto moc języka MDX i/lub obliczonych miar pozwala na skomplikowane zapytania dość trudne, jeśli nie niemożliwe do zrobienia w czystym SQL.

Powiązane problemy