|
|
|
Tworzenie cube’ów Mondrian za pomocą aplikacji Pentaho Cube DesignerPlik konfiguracyjny Mondrian Cube
W celu stworzenia własnego modelu danych w Pentaho należy zdefiniować źródło i konfigurację kostek OLAP w pliku konfiguracyjnym Mondrian Cube Schema. Plik ten opisuje wymiary, hierarchię wymiarów, poziomy, definiuje fakty i mapuje cube OLAP na relacyjną bazę danych.
Poniżej zawarte zostały instrukcje krok po kroku jak stworzyć kostkę OLAP serwera Mondrian wykorzystując Pentaho Cube Designer.
1. Podstawowe informacje o kostce OLAP oraz definicja połączenia z bazą danychPierwszym krokiem konfiguracyjnym kostki OLAP Mondrian jest wprowadzenie jej nazwy i opisu. Nazwa powinna być możliwie krótka i trafnie opisywać zawarte w niej dane. Nazwa ta będzie używana w definicjach i plikach konfiguracyjnych pozostałych komponentów platformy Pentaho BI. Dolna sekcja (select a data source) ekranu pozwala na zdefiniowanie połączenia z bazą danych dla danych źródłowych. Kreator połączenia ułatwia znacznie zdefiniować poprawnie komunikację z bazą danych i pozwala również na przetestowanie nowo powstałego połączenia. W niniejszych lekcjach stworzony został cube o nazwie EtlTools_Sales, połączenie zostało nazwane DwDev oraz użyta została baza danych Oracle jako źródło danych. Połączenie z bazą danych dla kostki OLAP : ![]() 2. Definicja relacyjnego modelu danych źródłowychNa ekranie mapowania tabel (Map Tables) można odzwierciedlić relacyjny model danych źródłowych, z którego zasilona zostanie kostka OLAP. Powiązania pomiędzy tabelami mogą być w bardzo łatwy sposób tworzone poprzez przeciąganie kolumn kluczowych pomiędzy tabelami, natomiast pola docelowe mogą być wybierane poprzez zaznaczenie pola występującego obok. W tym miejscu można również definiować warunki filtrujące dane (WHERE), grupowanie (GROUP BY) i sortowanie (ORDER BY) Poniżej przedstawiony został relacyjny model reprezentujący schemat płatka śniegu w architekturze hurtowni danych. Mapowanie tabel Oracle : ![]() 3. Wybór tabeli faktów i utworzenie miar (measures)Kolejnym krokiem po wybraniu i skonfigurowaniu tabel źródłowych będzie wskazanie tabeli faktów i wybór pól do sumaryzacji. W niniejszym tutorialu użyte zostały następujące pola numeryczne: Sprzedaż (TOTAL_SALES), Koszty (TOTAL_COSTS) i Upusty (TOTAL_DISCOUNT) Można również wybrać metodę agregacji i poza domyślnym sumowaniem dostępna jest także średnia arytmetyczna (AVG), zliczanie rekordów (COUNT), wartość minimalna i maksymalna dla danej grupy (MIN, MAX). W tym miejscu definiuje się również format wyświetlania wartości liczbowych (domyślnie jest to # ##0,###). Tworzenie miar w Pentaho Cube Designer: ![]() 4. Tworzenie wymiarówW tym kroku zdefiniowane zostaję wymiary w kostce wielowymiarowej. W celu stworzenia nowego wymiaru należy wybrać kolumnę z obszaru ‘source fields’ i kliknąć ‘Add New Dimension’. Należy pamiętać o tym, żeby na początku wybrać pole o największym grupowaniu i schodzić zgodnie z hierarchią do pól szczegółowych. Przykładowo, dla stworzenia wymiaru czasu najpierw wybieramy rok (kolumna YEAR_ID), następnie klikamy ‘Add New Dimension’, nazywamy go TIME i zatwierdzamy przyciskiem OK. Kolejno wybieramy odpowiednio pola kwartał i miesiąc (QUARTER_ID, MONTH_ID) i klikamy na przycisku strzałki zwróconej w prawo, co powoduje tworzenie nowych poziomów w wymiarze czasu. Tworzenie Wymiarów: ![]() 5. Zapisanie pliku schematu OLAP MondrianPo kliknięciu przycisku ‘View XML’ wyświetlona zostanie zawartość nowo utworzonego pliku XML z definicją kostki OLAP. W przypadku wykrycia nieścisłości w pliku, w każdej chwili można cofnąć się do każdego z poprzednich kroków za pomocą przycisku ‘Back’ i wprowadzić zmiany. Jeżeli wszystko wygląda zgodnie z naszymi oczekiwaniami, to klikamy na przycisk ‘Finish’, co spowoduje wygenerowanie pliku w żądanym miejscu. Plik definicji schematu dla naszego tutoriala nazywa się ETLTOOLS_SALES.mondrian.xml i ma następującą zawartość:
<?xml version="1.0" encoding="UTF-8"?>
<Schema name="ETLTOOLS_SALES">
<Cube name="ETLTOOLS_SALES">
<Table name="F_SALES"/>
<Dimension name="TIME" foreignKey="DATE_ID">
<Hierarchy name="TIME" hasAll="true" allMemberName="All time" primaryKey="DATE_ID">
<Table name="D_TIME"/>
<Level name="YEAR" table="D_TIME" column="YEAR_ID" uniqueMembers="false"/>
<Level name="QUARTER" table="D_TIME" column="QUARTER_ID" uniqueMembers="false"/>
<Level name="MONTH" table="D_TIME" column="MONTH_ID" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
<Dimension name="PRODUCT" foreignKey="PROD_ID">
<Hierarchy name="PRODUCT" hasAll="true" allMemberName="All product" primaryKey="PROD_ID">
<Table name="D_PRODUCT"/>
<Level name="PRODUCT_NAME" table="D_PRODUCT" column="PROD_TEXT" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
<Dimension name="CUSTOMER_LOCATION">
<Hierarchy name="CUSTOMER_LOCATION" hasAll="true" allMemberName="All customer_location">
<Table name="D_COUNTRY"/>
<Level name="CUSTOMER_REGION" table="D_COUNTRY" column="REGION_TEXT" uniqueMembers="false"/>
<Level name="CUSTOMER_COUNTRY" table="D_COUNTRY" column="COUNTRY_TEXT" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
<Dimension name="CUSTOMER" foreignKey="CUST_ID">
<Hierarchy name="CUSTOMER" hasAll="true" allMemberName="All customer" primaryKey="CUST_ID">
<Table name="D_CUSTOMER"/>
<Level name="CUSTOMER_GROUP" table="D_CUSTOMER" column="CUST_GROUP_ID" uniqueMembers="false"/>
<Level name="CUSTOMER_NAME" table="D_CUSTOMER" column="CUST_NAME" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
<Measure name="TOTAL_SALES" column="TURNOVER_EUR" aggregator="sum"
datatype="Numeric" formatString="# ##0,###"/>
<Measure name="TOTAL_COSTS" column="SALES_COSTS_EUR" aggregator="sum"
datatype="Numeric" formatString="# ##0,###"/>
<Measure name="TOTAL_DISCOUNT" column="SALES_DISCOUNT_EUR" aggregator="sum"
datatype="Numeric" formatString="# ##0,###"/>
</Cube>
</Schema>
Szkolenia Business Intelligence
Pentaho
|
|
|