96 Perspectives on the Peace Cubes / Virtual Light & Colour Cubes
Analytics et Big Data, une histoire de cubes...
-
Upload
mathias-kluba -
Category
Data & Analytics
-
view
611 -
download
0
Transcript of Analytics et Big Data, une histoire de cubes...
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