52
1

Analytics et Big Data, une histoire de cubes

Embed Size (px)

Citation preview

Page 1: Analytics et Big Data, une histoire de cubes

1

Page 2: Analytics et Big Data, une histoire de cubes

2

Mathias Kluba

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

Mehdi BEN HAJ ABBES

Architecte Technique Big Data

@MehdiAbbes

Page 3: Analytics et Big Data, une histoire de cubes

3

•D’analytics

•De Cubes

•De Big Data

•D’Open Source

Page 4: Analytics et Big Data, une histoire de cubes

4

Page 5: Analytics et Big Data, une histoire de cubes

5

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

Page 6: Analytics et Big Data, une histoire de cubes

6

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

FROM historique

GROUP BY année, région

Page 7: Analytics et Big Data, une histoire de cubes

7

Page 8: Analytics et Big Data, une histoire de cubes

8

Page 9: Analytics et Big Data, une histoire de cubes

9

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

Solution: scalabilité horizontale

Page 10: Analytics et Big Data, une histoire de cubes

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)

Page 11: Analytics et Big Data, une histoire de cubes

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

Page 12: Analytics et Big Data, une histoire de cubes

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

Page 13: Analytics et Big Data, une histoire de cubes

13

Page 14: Analytics et Big Data, une histoire de cubes

14

Page 15: Analytics et Big Data, une histoire de cubes

15

• Full-scan plus rapide

• Compression: plus efficace en colonnes

• Moins d’IO

Page 16: Analytics et Big Data, une histoire de cubes

16

Page 17: Analytics et Big Data, une histoire de cubes

17

Page 18: Analytics et Big Data, une histoire de cubes

18

Page 19: Analytics et Big Data, une histoire de cubes

19

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

FROM historique

GROUP BY année, région

Page 20: Analytics et Big Data, une histoire de cubes

20

Page 21: Analytics et Big Data, une histoire de cubes

21

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

Solution: pré-calculer les résultats ?

Page 22: Analytics et Big Data, une histoire de cubes

22

INSERT OVERWRITE TABLE cube

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

FROM historique

GROUP BY année, région

WITH CUBE

Page 23: Analytics et Big Data, une histoire de cubes

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)

Page 24: Analytics et Big Data, une histoire de cubes

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…

Page 25: Analytics et Big Data, une histoire de cubes

25

Page 26: Analytics et Big Data, une histoire de cubes

26

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

• Stockage dans une base clé/valeur

Page 27: Analytics et Big Data, une histoire de cubes

27

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

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

Page 28: Analytics et Big Data, une histoire de cubes

28

Page 29: Analytics et Big Data, une histoire de cubes

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

Page 30: Analytics et Big Data, une histoire de cubes

30

Page 31: Analytics et Big Data, une histoire de cubes

31

Page 32: Analytics et Big Data, une histoire de cubes

32

Page 33: Analytics et Big Data, une histoire de cubes

33

Page 34: Analytics et Big Data, une histoire de cubes

34

Page 35: Analytics et Big Data, une histoire de cubes

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

Page 36: Analytics et Big Data, une histoire de cubes

36

Page 37: Analytics et Big Data, une histoire de cubes

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

Page 38: Analytics et Big Data, une histoire de cubes

38

00101

00111

Page 39: Analytics et Big Data, une histoire de cubes

39

Page 40: Analytics et Big Data, une histoire de cubes

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 !

Page 41: Analytics et Big Data, une histoire de cubes

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.

Page 42: Analytics et Big Data, une histoire de cubes

42

Page 43: Analytics et Big Data, une histoire de cubes

43

Page 44: Analytics et Big Data, une histoire de cubes

44

00101

00111

00101

00111

Page 45: Analytics et Big Data, une histoire de cubes

45

Page 46: Analytics et Big Data, une histoire de cubes

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!

Page 47: Analytics et Big Data, une histoire de cubes

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

Page 48: Analytics et Big Data, une histoire de cubes

48

Page 49: Analytics et Big Data, une histoire de cubes

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.

Page 50: Analytics et Big Data, une histoire de cubes

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

Page 51: Analytics et Big Data, une histoire de cubes

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.

Page 52: Analytics et Big Data, une histoire de cubes

52