analytics et big data, une histoire de cubes

Post on 11-Feb-2017

606 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

2

Mathias Kluba

Architecte Big Data au sein de la Société Générale

Mehdi BEN HAJ ABBES

Architecte Technique Big Data

@MehdiAbbes

3

•D’analytics

•De Cubes

•De Big Data

•D’Open Source

4

5

Dashboards, Reports, Analytics, BI, Data Viz… calculer des indicateurs

6

SELECT AVG(précipitation), année, région

FROM historique

GROUP BY année, région

7

8

9

Besoin de traiter de gros volumes (ex: 60To) Limite de la scalabilité verticale

Solution: scalabilité horizontale

10

: projet Open Source Big Data, inspiré de des papiers de Google

• Stockage sur un système de fichier distribué

• La donnée est “éclatée” sur plusieurs serveurs

• La donnée est répliquée sur plusieurs serveurs

HDFS (Hadoop Distributed File System)

11

• YARN : Un scheduler pour distribuer les ressources

• Des frameworks / applications en concurrence pour des ressources et essayant d’assurer la data locality

HDFS

YARN

12

: SQL sur Hadoop, inventé par Facebook

HDFS

YARN

SELECT AVG(précipitation), année, région

FROM historique

GROUP BY année, région

13

14

15

• Full-scan plus rapide

• Compression: plus efficace en colonnes

• Moins d’IO

16

17

18

19

SELECT AVG(précipitation), année, région

FROM historique

GROUP BY année, région

20

21

Besoin d’interactivité, temps de requête <1s

Solution: pré-calculer les résultats ?

22

INSERT OVERWRITE TABLE cube

SELECT AVG(précipitation), année, région

FROM historique

GROUP BY année, région

WITH CUBE

23

• Une base de données qui permet d’obtenir des mesures sur des dimensions

• Cube OLAP (Online Analytics Processing)

• Ce n’est donc pas une base OLTP (Online Transaction Processing)

24

• Toujours plus de données, plus d’axes, etc.

• Construction du cube tous les jours, ou même en temps réel

• Plusieurs approches…

25

26

• Support de la fonction “cube” dans Hive et Spark

• Stockage dans une base clé/valeur

27

• Avec N dimension, nous avons 2^N cuboïdes

• Prendre en compte la cardinalité des dimensions pour avoir le nombre de ligne…

28

29

kylin / ˈkiːˈlɪn / 麒麟

--n. (in Chinese art) a mythical animal of composite form

Extreme OLAP Engine for Big Data

Kylin is an open source Distributed Analytics Engine, contributed by eBay Inc., provides

SQL interface and multi-dimensional analysis (OLAP) on Hadoop supporting extremely

large datasets

• Open Sourced on Oct 1st, 2014

• Accepted as Apache Incubator Project on Nov 25th, 2014

• http://kylin.io (http://kylin.incubator.apache.org) @ApacheKylin

30

31

32

33

34

35

• Pour ne pas attendre des heures

• Pour minimiser la latence

• Pour être plus réactif

• Pouvoir traiter des flux continus de données

Besoin de traiter au fil de l’eau

36

37

https://www.oreilly.com/ideas/questioning-the-lambda-architecture http://milinda.pathirage.org/kappa-architecture.com

• L’écosystème du streaming évolue et sa maturité ne va pas tarder

• Le batch est un sous ensemble du streaming

38

00101

00111

39

40

Architecture v3.0

Permet de traiter un grand nombre de dimensions, en batch

Architecture V4.0

Permet de traiter en temps réel, mais est limité par le nombre de dimensions

Besoin des 2 !

41

• Projet open-sourcé par Metamarkets

• Analytics pour des Time-Series

• Stockage colonne

• Batch & temps réel • Batch: analyse des données d’Hadoop

• Temps réel: flux d’événements de Kafka

• Agrégations à la volé, mais très rapide grâce au stockage colonne

• http://druid.io/ @druidio

• Utilisé chez Paypal, Critéo, eBay, Netflix, etc.

42

43

44

00101

00111

00101

00111

45

46

• Nécessite de connaitre l’ancienne valeur

• Nécessite de recalculer tous les cuboïdes impactés

Cube en temps réel… avec des mises à jours!

47

80 cores utilisés, 4 GB de RAM par core

50 millions de messages / min (avec un total de 1 milliard en 20 min)

125 cores utilisés, 1 GB de RAM par core

HBase optimisé pour les random access

10 millions de messages / min

48

49

Apache Lens https://lens.apache.org/ API Rest, driver JDBC, Cube QL, Cube MetaStore Requête une source à l’aide de drivers (Spark, Hive, etc.)

Mondrian http://community.pentaho.com/projects/mondrian/ Interface MDX Java. Requête une source à l’aide de JDBC Compatible avec Phoenix (SQL pour HBase)

WSO2 http://wso2.com/products/data-analytics-server/ Plateforme complète de développement, dont WSO2 Data Analytics Server API pour construire des cubes, repose sur les technologies comme Spark, Hive, Cassandra, etc.

50

Pulsar http://gopulsar.io Plateforme d’analytics, CEP, API Rest, SQL, HOLAP Source d’événements Kafka, source Druid

CDAP http://cask.co/ Plateforme complète pour développement Big Data API pour construire des cubes, source Kafka ou Hive, stockage HBase

51

• Les données ne sont jamais « propres »…

• Elles doivent être préparées avant

• Dé-normalisation: pré-jointure

• Outils complémentaires à la construction des Cubes • Hive, Spark, Storm, Flink, Nifi, etc.

52

top related