Przykład tabeli przestawnej JPivot połączonej z serwerem Open Source Mondrian OLAP
W tej lekcji tutoriala stworzymy dynamiczną tabelę przestawną z przykładowymi danymi z poprzednich lekcji tutoriala, która będzie połączona z serwerem Mondrian OLAP.
Do stworzenia takiego crosstaba wykorzystane zostaną tagi JSP z bibliotek zewnętrznych jpivot (JPivot i WCF). Do ukończenia tej lekcji niezbędna będzie podstawowa wiedza z zakresu Java i JSP w rozwiązaniach Webowych.
Biblioteki tagów wraz z dokumentacją Jpivot i WCF można znaleźć tutaj:
Tagi Jpivot JSP
Tagi WCF JSP
Tabela przestawna JPivot z niniejszego tutoriala zostanie wyświetlona przez stronę JSP o nazwie gg_crosstab1.jsp.
W celu stworzenia strony JSP z jpivot należy :
Skonfigurowac połączenie MDX (o połączeniu MDX więcej informacji we wcześniejszych lekcjach tutoriala). Połączenie z relacyjną bazą danych powinno być przechowywane w pliku JSP. W niniejszej lekcji będzie to plik /WEB-INF/queries/etltools.jsp.
<%@ page session="true" contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="http://www.tonbeller.com/jpivot" prefix="jp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<jp:mondrianQuery id="query01" jdbcDriver="oracle.jdbc.driver.OracleDriver"
jdbcUrl="jdbc:oracle:thin:dwuser/dwpwd1@127.0.0.1:1521:xe"
catalogUri="/WEB-INF/queries/EtlTools.xml">
select {[Measures].[Total Turnover], [Measures].[Total Weight]} ON columns,
{[TIME].[All Time]} ON rows from EtlTools
</jp:mondrianQuery>
<c:set var="title01" scope="session">Testowe zapytanie używające Mondrian OLAP</c:set>
Najistotniejszą częścią pliku konfiguracyjnego jest sekcja (tag) jp:mondrianQuery, który definiuje dostęp danych źródłowych Mondrian OLAP. Zawiera polecenia MDX, które definiują dane, które będą pobrane z Mondrian. W naszym przykładzie prosta analiza będzie się składała z wymiaru czasu (time) oraz dwóch miar: obrót (turnover) i waga (weight).
Warto zwrócić uwagę na fakt, że plik ten odwołuje się do pliku konfiguracyjnego Mondrian, o nazwie EtlTools.xml, którego tworzenie zostało szeroko omówione w lekcji tutoriala Pentaho Cube Designer.
Plik gg_crosstab1.jsp.
Kod pliku JSP który wygeneruje crosstab JPivot (najważniejsze fragmenty zaznaczone zostały na czerwono): 
- W pierwszych liniach pliku gg_crosstab1.jsp umieszczone zostały tagi jsp dla wcf, jpivot i bibliotek standardowych java. Poniżej standardowy nagłówek html oraz definicja 'body', czyli głównej części dokumentu.
- Poniższa linia zawiera link do pliku definicji tabeli przestawnej css. Wygląd graficzny tabeli przestawnej JPivot może być dostosowany poprzez edycję pliku mdxtable.css.
<link rel="stylesheet" type="text/css" href="jpivot/table/mdxtable.css">
- W poniższych liniach zawarta jest definicja zapytania Mondrian (Mondrian Query definition) i sprawdzenie czy definicja ta została pomyślnie załadowana. Jeżeli nie, to przeglądarka zostanie przekierowana do strony głównej index.jsp.
<%-- query definition --%>
<wcf:include id="include01" httpParam="query" prefix="/WEB-INF/queries/" suffix=".jsp"/>
<c:if test="${query01 == null}">
<jsp:forward page="/index.jsp"/>
</c:if>
- Tabela przestawna zostaje zainicjowana następującym poleceniem (po wydaniu poniższego polecenia zostaje ona załadowana do pamięci, a nie widoczna na ekranie, co następuje dopiero po wykonaniu polecenia render):
<jp:table id="table01" query="#{query01}"/>
- Aby wyświetlić crosstaba na ekranie przeglądarki należy wysłać następujące polecenie:
<wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl" xslCache="true"/>
Dodatkową rzeczą, o której należy pamiętać aby stworzyć crosstaba JPivot to dodanie filtra JPivotController do pliku WEB-INF/web.xml w konfiguracji Apache Tomcat:
<filter-mapping>
<filter-name>JPivotController</filter-name>
<url-pattern>/gg_crosstab1.jsp</url-pattern>
</filter-mapping>
W tym momencie prosta tabela przestawna JPivot jest gotowa do użycia i analiz. Można ją uruchomić w następujący sposób (przy założeniu, że Tomcat nasłuchuje na porcie 8000):
http://127.0.0.1:8000/mondrian/gg_crosstab1.jsp?query=etltools
Przykład tabeli przestawnej JPivot: 
W nadchodzącej lekcji tutoriala Pentaho JPivot zajmiemy się sformatowaniem liczb w kostce OLAP i dodaniem opcji takich jak sortowanie, edycja zapytania MDX, drążenie danych, wykresy, eksport do różnych formatów i innych użytecznych funkcji.
Pentaho
Usługi konsultingowe i wdrożenia systemów Business Intelligence, hurtowni danych, środowiska raportowania i implementacja procesów ETL.
www.goliinfo.com
|