9. 9
Besoin de traiter de gros volumes (ex: 60To)
Limite de la scalabilité verticale
Solution: scalabilité horizontale
10. 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. 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. 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
22. 22
INSERT OVERWRITE TABLE cube
SELECT AVG(précipitation), année, région
FROM historique
GROUP BY année, région
WITH CUBE
23. 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. 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…
29. 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
35. 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
40. 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. 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.
46. 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. 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
49. 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. 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. 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.