• Aucun résultat trouvé

De à 4 millions. Khanh Tuong

N/A
N/A
Protected

Academic year: 2022

Partager "De à 4 millions. Khanh Tuong"

Copied!
56
0
0

Texte intégral

(1)

De 20 000 à 4 millions

Khanh Tuong Maudoux

@jetoile

(2)
(3)

Qui suis-

Khanh Tuong Maudoux

Développeur Java indépendant

blog : http://blog.jetoile.fr

@jetoile

khanh.maudoux@jetoile.fr

3

(4)

Contexte Collecteur Stockage Lecture

Traitement

(5)

Contexte

5

(6)

Contexte

Fonctionnel

Réception de relevés de compteurs (fichiers xml)

Fournir une consolidation (valorisation) des consommations en fonction de différents critères

Algorithmes de lissage et de détection à faire sur les données

Algorithmes de valorisation à faire sur les données

(7)

Contexte

Volumétrie

7

Avant :

20.0000 clients

Cible :

4.000.000 clients

~ 3.000.000 fichiers par jours (~156 Go/jour)

Avec un pas de 30 minutes !

(8)

Contexte

État des lieux

Algorithmes de lissage et de détection fait au moment de la collecte

long »

=> anomalies « courantes »

Algorithmes de consolidation exécutés par batch sur les données

stockées

(9)

Contexte

État des lieux

9

Stockage TimeSeries Data

Data Data

Data

Collecteur Consolidation Applicatif

Stockage

Stockage

(10)

Contexte

État des lieux

(11)

Contexte

Objectifs

11

Objectif :

Remplacer la solution de stockage

Ne pas oublier la phase le ré-import totale! (~3 ans de données)

(12)

Collecteur

(13)

Collecteur

Objectifs

13

Batch de collecte avec stockage dans une solution propriétaire

Objectifs :

Valider différentes solutions (Cassandra, MySQL Cluster) Valider le modèle de données

(14)

Collecteur

État des lieux

Stockage Data

Data Data

Data

Transformation Objet pivot

Routage par xpath Transformation Objet pivot

Data XML

Data XML

Transformation JAXBTransformation JAXB

Data Java

Data Java

Data DTO

Data DTO

(15)

Collecteur

Pistes

15

Pistes :

Spring Batch EIP

Spring Batch + EIP

(16)

Collecteur

Outils / Framework :

Spring Integration Metrics

JMX / Jolokia Hawt.io

Maven!

(17)

Collecteur

17

Spring Integration

Architecture « Pipe and Filters »

(18)

Collecteur

Stockage Data

Data Data

Data

Transformation Objet pivot

Routage par xpath Transformation Objet pivot

Data XML

Data XML

Transformation JAXBTransformation JAXB

Data Java

Data Java

Data DTO

Data DTO

Spring Integration

(19)

Collecteur

19

Spring Integration

(20)

Collecteur

Spring Integration

(21)

Collecteur

21

Spring Integration

(22)

Collecteur

Spring Integration

(23)

Collecteur

23

Spring Integration

(24)

Collecteur

Spring Integration

Message-history

Scalabilité horizontale

(25)

Collecteur

25

Metrics

(26)

Collecteur

Jolokia

JMX via HTTP/JSON

(27)

Collecteur

27

Hawt.io

(28)

Collecteur

Maven

maven-jaxb2-plugin (org.jvnet.jaxb2.maven2)

appassembler-maven-plugin (org.codehaus.mojo)

(29)

Collecteur

29

endpoint REST pour injection

(30)

Stockage

(31)

Stockage

Objectifs

31

Rappels :

Remplacer la solution existante de stockage

Chaque capteur remonte une donnée toutes les 30 minutes Time series (au plus 50 000 colonnes par ligne)

(32)

Stockage

Cassandra

Base de données orientée colonnes

Keyspace

Column Family Column

(33)

Stockage

33

Cassandra

Time series : 1 ligne avec de multiples colonnes (clé composite)

CREATE TABLE capteur (

capteur_id text, event timestamp, temperature text,

PRIMARY KEY (capteur_id, event) )

Ordonnée

capteur_id event temperature

event temperature

(34)

Stockage

34

Attention longueur/taille de ligne

CREATE TABLE capteur ( capteur_id text,

event_period text, event timestamp, value text,

PRIMARY KEY ((capteur_id, event_period), event)

Attention modélisation )

aggrégation

(35)

Stockage

35

Jolokia

Comme agent sur la JVM

(36)

Lecture

(37)

Lecture

Objectifs

37

Évaluer la pertinence de la solution de stockage Véloce

Simple

Remonté de métriques

=> injecteur !

(38)

Lecture

Pistes

Pistes :

From scratch

(39)

Lecture

39

Outils / Framework :

RestEasy Netty Swagger

JMX / Jolokia Hawt.io

Maven

Gatling / AB

(40)

Lecture

RestEasy Netty :

JAX-RS Netty Simple

(41)

Lecture

41

Swagger :

(42)

Lecture

Jolokia

(43)

Lecture

43

Gatling

(44)

Traitement

(45)

Traitement

Rappel

45

Stockage TimeSeries Data

Data Data

Data

Collecteur Consolidation Applicatif

Stockage

Stockage

(46)

Traitement

Objectifs

Objectif :

Collecte

Rapide

Pas de pertes de données (sécurisation de la données)

Détection des données fausses

Faite en aval de la collecte

Consolidation

Faite sur les données « valides » avec stockage des mesures dans des « batch View » Séparation des concepts !

(47)

Traitement

Objectifs

47

Objectif :

Lambda architecture Query = function (all data)

(48)

Traitement

Objectifs

Objectif :

Query = function (all data)

Service Layer Batch Layer

Data Data

Data Data

collecte

C*

Transformation Objet pivot C*DAO Valo

C*

C*

transformation

All datas Precompute views Batch views

(49)

Traitement

49

Spark / Hadoop

(50)

Traitement

Objectifs ?

Volumétrie non acceptable pour la production :

Duplication de la donnée

Souhaite une solution avec calcul à la demande

(51)

Traitement

Objectifs ?

51

Traitement

Service Layer

Data Data

Data Data

collecte

C*

Transformation Objet pivot C*DAO Valo

C*

C*

transformation

All datas Precompute views Batch views

(52)

Traitement

Objectifs ?

Algorithme de lissage en amont

(53)

53

Conclusion

(54)

Merci !

(55)

Questions ?

55

(56)

pas le feedback en sortant !

ou ?

Références

Documents relatifs

Cet outil est à utiliser pour migrer les bases de données d'une base vers une autre. Il est préférable de faires ces opérations à une heure

-43,3 % 1 des 26,6 millions de foyers français équipés de télévision, sont abonnés à une offre payante de télévision soit près de 12 millions de Français qui se

Plusieurs DESCRIPTEURS peuvent être utiles pour décrire un même objet (par exemple des descripteurs permettant de caractériser un contact : nom, prénom, adresse et

Connexion de l'hydroplaneur aux réseaux sans fil : L' hydroplaneur dispose de trois antennes logées dans la dérive et dans chaque aileron stabilisateur. Cette solution implique

….... Jean prête sa clé à Manuel qui doit lui copier dessus une vidéo de 2 Go. Est-ce que Manuel peut copier sa vidéo sur la clé ? Justifier la réponse. Ilyes a estimé qu'une

La Ville de Montréal a mis en place un comité de concertation composé de représentants du gouvernement du Québec, de la Ville de Montréal et du gouvernement du Canada afin

Une telle logique consiste à déterminer quels flux de polluants émis par les déchets vers le milieu (c'est-à-dire quels impacts) peuvent être jugés acceptables,

Face aux chiffres alarmants en sa possession sur le nombre de démissions dans les conseils municipaux et les exécutifs communaux, le département de la cohésion sociale a souhaité,