Karlsruhe, 29.09.2015 Sébastien Jelsch - inovex GmbH · Apache Kylin + Mondrian: Die Idee 26 Saiku...

35
Sébastien Jelsch Karlsruhe, 29.09.2015 Apache Kylin: OLAP Cubes on Hadoop

Transcript of Karlsruhe, 29.09.2015 Sébastien Jelsch - inovex GmbH · Apache Kylin + Mondrian: Die Idee 26 Saiku...

Sébastien JelschKarlsruhe, 29.09.2015

Apache Kylin: OLAP Cubes on Hadoop

1 Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Agenda

▪ Einführung in OLAP

▪ OLAP für Big Data mit Apache Kylin

▪ Apache Kylin Features

▪ Apache Kylin & MDX

▪ Roadmap

▪ Zusammenfassung & Diskussion

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Agenda

▪ Einführung in OLAP

▪ OLAP für Big Data mit Apache Kylin

▪ Apache Kylin Features

▪ Apache Kylin & MDX

▪ Roadmap

▪ Zusammenfassung & Diskussion

1

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

OLTP vs. OLAP

OLTP: OnLine Transaction Processing▪ Transaktionsorientierte Datenzugriffe▪ Wahlfreie Lese- und Schreibzugriffe

OLAP: OnLine Analytical Processing▪ Konsolidierung der Daten▪ Analyse gemäß mehreren Dimensionen

2

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Einführung in OLAP

OLAP: Measures und Dimensionen

3

Sales Quantity

Sales Profit

Measures sind numerisch

Product

Category

Name

Color

Location

Region

Nation

City

Date

Day

Month

Year

Dimensionen beschreiben die Daten

OLAP Cube

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Einführung in OLAP

4

8 7 14

12 22 19

30 15 25Beer

Water

WineK

arls

ruhe

Pfo

rzhe

im

Ham

burg

20132014

2015

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Einführung in OLAP

5

1,1,1,0 1,1,0,1

1,1,1,1

1,0,1,1 0,1,1,1

0,1,1,0

1,0,0,0 0,1,0,0 0,0,1,0 0,0,0,1

0,0,0,0

0,0,1,10,1,0,11,0,0,11,0,1,01,1,0,0

Cube: Alle KombinationenCuboid: Eine einzelne Kombination

Anzahl Cuboids wächst exponentiell

0-Cuboid

N-Cuboid

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Einführung in OLAP

Das ist zwar schön und gut, aber…Wie sieht es bei Big Data aus?

6

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Big Data

Situation▪ wachsende Datenmenge

○ Speicherung in Hadoop▪ Beschränkung bestehender Business Intelligence Tools

○ begrenzte Integration mit Hadoop○ beschränkte horizontale Skalierung○ hohe Latenz von interaktiven Abfragen

7

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

OLAP und Big Data

Ziele▪ OLAP Support und Funktionalität▪ Analyse im Sekundenbereich▪ ANSI SQL für Analysten▪ Integration in existierende BI-Tools▪ Gleichzeitige Nutzung bei > 1000 Benutzer▪ Horizontale Skalierung bei großen Datenmengen

8

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Agenda

▪ Einführung in OLAP

▪ OLAP für Big Data mit Apache Kylin

▪ Apache Kylin Features

▪ Apache Kylin & MDX

▪ Roadmap

▪ Zusammenfassung & Diskussion

9

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Was ist Apache Kylin?

Lösung: Apache Kylin

Extreme OLAP Engine für Big Data▪ verteilte und multidimensionale Analyse-Engine▪ SQL Interface▪ basiert auf Hadoop-Ökosystem

Open Source seit: 1. Oktober 2014Apache Incubator Projekt seit: 25. November 2014Aktuelle Version: 1.0 (6. September 2015)

heise Developer: Apache Kylin - OLAP im Big-Data-Maßstab (http://heise.de/-2824878)

10

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Architektur

11

3rd Party App Web App BI Tools

REST Server

Query Engine

Routing

OLAPCube

(HBase)OLAPCube

(HBase)Metadata

Cube Build Engine

HiveHDFS

Star Schema Data Key Value Data

Mid Latency Low Latency

SQLSQL JDBC / ODBC

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Cube Build Prozess

12

SourceHive Tables

HiveQL

DimensionDictionaries

Intermediate Hive Table

HiveQL MapReduce

HDFSSequence

Files

N-Cuboid

(1)

(2) (3)

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Cube Build Prozess

13

MapReduce

N-Cuboid

HDFSSequence

Files

N-1-Cuboid

HDFSSequence

Files

0-Cuboid

HDFSSequence

Files

... MapReduce

MapReduce

HFiles

HBase

Bulk Import

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Agenda

▪ Einführung in OLAP

▪ OLAP für Big Data mit Apache Kylin

▪ Apache Kylin Features

▪ Apache Kylin & MDX

▪ Roadmap

▪ Zusammenfassung & Diskussion

14

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Cube Designer

15

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Cube Designer

16

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Cube Designer

17

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Cube Designer

18

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Cube Designer

19

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Aggregation Groups

Problem: Anzahl Cuboids wächst exponentiellBeispiel:

Cube mit 30 DimensionenAnzahl Cuboids: 2³º > 1 Milliarde

Lösung: Partial CubeEinteilung des Cubes in Aggregation GroupsBeispiel:

Cube mit 30 Dimensionen à 10 DimensionenAnzahl Cuboids: 2¹º + 2¹º + 2¹º = 3072

20

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Monitoring

21

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: SQL Interface

22

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Agenda

▪ Einführung in OLAP

▪ OLAP für Big Data mit Apache Kylin

▪ Apache Kylin Features

▪ Apache Kylin & MDX

▪ Roadmap

▪ Zusammenfassung & Diskussion

23

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin und MDX

SQL Rückgabe: 2-dimensionalFür mehrere Dimensionen wurde SQL nicht konzipiert

Wünschenswert:▪ Mehrdimensionale Rückgabe▪ Hierarchien und Levels in den Daten berücksichtigen

24

Abfragesprache: MDX

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Pentahos Mondrian

Mondrian▪ OLAP Engine▪ Transformation der MDX-Anfragen in SQL▪ multidimensionale Repräsentation der Daten▪ integriert in Saiku / Pentahos Business Analytics Platform▪ Erweiterbar durch SQL-Dialekt

○ z.B. MySQL, Postgres, Hive, Impala, ...

25

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin + Mondrian: Die Idee

26

Saiku

Apache KylinHBase, Cuboids ...

MondrianMondrian Schema

MeasuresDimensions

HierarchiesLevels

Attributes

XMLMDX

SQL

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin + Mondrian: Umsetzung

Umsetzung:▪ JDBC-Treiber von Kylin optimiert▪ Fehler in der SQL-Engine von Kylin behoben

TBD:▪ Kylin Dialekt in Mondrian integrieren

Erfolgreiche Tests:Saiku und Mondrian 4.4 (Lagunitas)

Github: https://github.com/mustangore/kylin-mondrian-interaction

27

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Agenda

▪ Einführung in OLAP

▪ OLAP für Big Data mit Apache Kylin

▪ Apache Kylin Features

▪ Apache Kylin & MDX

▪ Roadmap

▪ Zusammenfassung & Diskussion

28

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Roadmap

2015▪ Kylin 2.0: Near Real-time (Inverted Index*)▪ Cube Build mit Apache Spark▪ Dokumentation und Tutorials▪ Apache Top Level Projekt

ab 2016▪ Excel Support▪ HOLAP▪ Automation▪ …

* JIRA Ticket: https://issues.apache.org/jira/browse/KYLIN-972

29

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Agenda

▪ Einführung in OLAP

▪ OLAP für Big Data mit Apache Kylin

▪ Apache Kylin Features

▪ Apache Kylin & MDX

▪ Roadmap

▪ Zusammenfassung & Diskussion

30

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Apache Kylin: Fazit

▪ Extrem schnelle und skalierbare OLAP Engine▪ ANSI SQL Interface on Hadoop▪ Integration in existierende BI Tools▪ MOLAP Cube▪ Inkrementeller Refresh des Cubes▪ Release 2.0 noch in 2015

31

Apache Kylin - OLAP Cubes on Hadoop Sébastien Jelsch

Q&A

Fragen?

32

Kontakt

Sébastien JelschBig Data Scientist

inovex GmbHOffice KarlsruheLudwig-Erhard-Allee 676131 Karlsruhe

Tel: 0176-45786280E-Mail: [email protected]: @inovexgmbh | @Mustangore

Vielen Dank für Ihre Aufmerksamkeit