MARGO

Aktualności

Sparkube: kiedy OLAP staje się dziecinną zabawą

Poznaj nasz raport na temat Tools-in-Action Projekt Sparkube: przekształcenie Apache Spark w kostkę OLAP

Autor: Yassine Bargach Software Engineer @Yagach

31/05/2018

Konsultanci Margo wzięli udział w Devoxx Francja 2018, konferencji dla programistów pasjonatów, zorganizowanej w dniach 18 – 20 kwietnia 2018 r. w Paryżu. Poniżej zamieszczamy naszą relację na temat Tools-in-Action, poświęconą projektowi Sparkube: Przekształcenie Apache Spark w kostkę OLAP, o którym opowiadał Antoine Chambille w środę 18 kwietnia.

 

Wreszcie masz swój ulubiony notebook, klaster Spark jest odpowiednio skonfigurowany i wydajny, a HDFS zawiera wszystkie potrzebne dane. Ale czy wiesz, że dzięki mocy OLAP możesz zwiększyć wartość dodaną Twoich danych? Na konferencji Devoxx France 2018, Antoine Chambille, dyrektor ds. badań i rozwoju w Activeviam, przedstawił nam rozpoczęty właśnie projekt Sparkube.

 

Zacznijmy od przypomnienia najważniejszych informacji na temat systemu OLAP

Cube en 3 dimensions

Zadaniem systemów OLAP (systemy analitycznego przetwarzania w trybie on-line) jest umożliwienie użytkownikom intuicyjnej nawigacji w obrębie danych. Technologia ta opiera się na specyficznej strukturze: Hiperkostkce (lub wielowymiarowej kostce).

Kostka umożliwia analizę danych w różnych wymiarach, zwanych hierarchiami. Na przykład data transakcji, kategoria produktu, obszar geograficzny, nazwa sprzedawcy … Zawiera również pomiary, które są agregowane w różnych wymiarach. Przykładowe pomiary to całkowita liczba (count), kwota, marża…

 

Ale jak używać kostki?

MDX (od Multidimensional Expressions) jest de facto językiem zapytań dla kostek OLAP. Oferowany przez firmę Microsoft, a następnie dostosowywany dzięki dużej ilości rozwiązań, język OLAP jest szczególnie przystosowany do struktury kostki, nawet jeżeli krzywa uczenia może nie być tak szybka, jak się tego oczekuje.

Istnieje jednak protokół XMLA (XML for Analysis), który umożliwia wykrywanie (lista osi, pomiarów …) i wykonywanie zapytań MDX w obrębie kostki OLAP. Po połączeniu z odpowiednim interfejsem graficznym użytkownik nie musi już zajmować się MDX i może generować za pośrednictwem interfejsu wszystkie typy zapytań. Wisienka na torcie: Excel implementuje protokół XMLA, umożliwiając w ten sposób połączenie bez dodatkowej wtyczki z wszystkimi serwerami, które go implementują.

 

A co ze Sparkube?

Sparkube to biblioteka opracowana przez wydawcę Activeviam, zdolna do introspekcji Spark DataFrame i stworzenia odpowiedniej struktury kostki OLAP. Sparkube pozwoli na użycie kostki w interfejsie XMLA. Będzie odpowiadać na zapytania Discovery klientów i zamieniać wszystkie zapytania MDX w zapytania Spark, aby na koniec zwrócić wynik.
Oprócz współpracy z Excelem Activeviam dostarcza również własnego klienta, Active UI.

Interactions avec Sparkube

 

A w praktyce?

Nic prostszego, po pobraniu do testu zestawu danych z ponad 370 000 linii, postępujemy zgodnie z instrukcjami na stronie Sparkube. Zaczynamy od utworzenia DataSet, a następnie prosimy Sparkube o utworzenie i udostępnienie kostki.

Sparkube odpowiada, że kostka jest dostępna na http://localhost:9090/xmla.

Możemy zacząć odkrywanie.

Możemy na przykład uzyskać średnią cenę samochodu w zależności od marki, przebiegu czy też historii wypadkowej:

Sparkube - Tableau de données à trois axes et une mesure

Możemy również wstawić grafikę:

Sparkube - Pourcentage par type de voiture

Sparkube - Comparaison de prix médian entre deux type, par année d'immatriculation

Testy są przeprowadzane na zbiorze danych z ponad 370 000 wierszy po 20 kolumn. Tworzenie kostki trwa około 3 minut, a czas odpowiedzi na zapytanie wynosi od 2 do 5 sekund.

 

Wnioski

Sparkube z pewnością nie oferuje ani całej elastyczności, ani wydajności rozwiązań zaprojektowanych specjalnie dla OLAP. Rozwiązania te zapewniają w szczególności wstępną agregację i indeksację wszystkich punktów kostki, wykorzystują określone architektury sprzętowe (na przykład NUMA) i opierają się głównie na poziomej skalowalności w celu ograniczenia komunikacji między sieciami (i umożliwienia znacznych agregacji nieliniowych). Niemniej projekt jest bardzo obiecujący, a możliwość łatwego udowodnienia koncepcji oraz wysoka efektywność w rozsądnych rozmiarach sprawia, że OLAP może być interesujący dla użytkowników.

W tej chwili strona Sparkube nie zawiera dostatecznej ilości informacji, ale warto śledzić postępy w realizacji tego projektu!

 

Zasoby:

 

Obejrzyj film z konferencji prowadzonej przez Antoine’a Chambille’a : Projekt Sparkube Przekształcenie Apache Spark w kostkę OLAP.

 


Autor: Yassine Bargach Software Engineer @Yagach
ActiveViam
IT o wysokiej wydajności