A french introduction to Cassandra database.
You can watch the video from here (in french)
http://www.jaxio.com/2012/01/06/introduction-a-cassandra-nosql-video.html
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
Cette étude vise à présenter les concepts clés d’une base de données orientée graphe. La modélisation et la mise en œuvre des cas d’utilisation seront réalisées avec la base de données NEO4J, version 3.1.
Pour accéder aux fichiers nécessaires pour faire ce TP, visitez: https://drive.google.com/folderview?id=0Bz7DokLRQvx7M2JWZEt1VHdwSE0&usp=sharing
Pour plus de contenu, Visitez http://liliasfaxi.wix.com/liliasfaxi !
Big Data : Hadoop
- Généralité
- Architecture HDFS
- Algorithme MapRduce
- Architecture YARN
- Hadoop v3.x vs Hadoopv2.x
Cours Big Data - Chap2 - GI3 - ENIS
CNES - CCT SIL - Traitement et Manipulation de la donnée à l‘aide des technologies Big Data
Présentation du 30 Juin 2017
Les CCT sont des espaces d'échanges techniques mis en place par le CNES il y a 20 ans, dans le but de réunir différents acteurs industriels et public pour s'enrichir mutuellement.
This developer-focused webinar will explain how to use the Cypher graph query language. Cypher, a query language designed specifically for graphs, allows for expressing complex graph patterns using simple ASCII art-like notation and offers a simple but expressive approach for working with graph data.
During this webinar you'll learn:
-Basic Cypher syntax
-How to construct graph patterns using Cypher
-Querying existing data
-Data import with Cypher
-Using aggregations such as statistical functions
-Extending the power of Cypher using procedures and functions
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
A french introduction to Cassandra database.
You can watch the video from here (in french)
http://www.jaxio.com/2012/01/06/introduction-a-cassandra-nosql-video.html
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
Cette étude vise à présenter les concepts clés d’une base de données orientée graphe. La modélisation et la mise en œuvre des cas d’utilisation seront réalisées avec la base de données NEO4J, version 3.1.
Pour accéder aux fichiers nécessaires pour faire ce TP, visitez: https://drive.google.com/folderview?id=0Bz7DokLRQvx7M2JWZEt1VHdwSE0&usp=sharing
Pour plus de contenu, Visitez http://liliasfaxi.wix.com/liliasfaxi !
Big Data : Hadoop
- Généralité
- Architecture HDFS
- Algorithme MapRduce
- Architecture YARN
- Hadoop v3.x vs Hadoopv2.x
Cours Big Data - Chap2 - GI3 - ENIS
CNES - CCT SIL - Traitement et Manipulation de la donnée à l‘aide des technologies Big Data
Présentation du 30 Juin 2017
Les CCT sont des espaces d'échanges techniques mis en place par le CNES il y a 20 ans, dans le but de réunir différents acteurs industriels et public pour s'enrichir mutuellement.
This developer-focused webinar will explain how to use the Cypher graph query language. Cypher, a query language designed specifically for graphs, allows for expressing complex graph patterns using simple ASCII art-like notation and offers a simple but expressive approach for working with graph data.
During this webinar you'll learn:
-Basic Cypher syntax
-How to construct graph patterns using Cypher
-Querying existing data
-Data import with Cypher
-Using aggregations such as statistical functions
-Extending the power of Cypher using procedures and functions
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Introduction à la Data Science : régression, classification, , clustering, machine learning...vue d'ensemble, quelques techniques et des ressources pour creuser le sujet.
L’avènement du Digital s’accompagne d’une démultiplication de données à analyser : structurées et non structurées.
Parallèlement, les entreprises sont à la recherche de sources d’avantages concurrentiels et d’identification de nouveaux débouchés marketing associés à un enjeu de défendre leur part de marché. Celles-ci sont conscientes, que la valorisation de leurs données constituera la réponse.
Afin de pouvoir analyser ces mines de données, les technologies ont fortement évolué :
• Mise en place de Big Data pour stocker d’importantes volumétries de données ;
• Parallélisation/montée en mémoire des traitements pour permettre de réduire les délais de réalisation ;
• Développement de nouveaux algorithmes qui offrent de nouvelles perspectives d’analyses ;
• Evolution des outils statistiques.
Dans ce contexte de mutations technologiques et à l’heure du temps réel, quels sont les impacts pour le Data Mining?
Nous vous invitons à un séminaire gratuit qui abordera les questions suivantes :
• Quels impacts sur le quotidien du Data Miner : quelles sont les techniques/outils à maîtriser ?
• Quelles sont les possibilités et les nouvelles perspectives d’analyse offertes par le Big Data ?
• Quels sont les pièges à éviter ?
Microsoft Technologies for Data Science 201612Mark Tabladillo
Delivered to SQL Saturday BI Edition -- Atlanta, GA
Microsoft provides several technologies in and around Azure which can be used for casual to serious data science. This presentation provides an overview of the major Microsoft options for both on-premise and cloud-based data science (and hybrid). These technologies have been used by the presenter in various companies and industries, both as a Microsoft consultant and previously independent consultant. As well, the speaker provides insights into data science careers, information which helps imply where the business will likely be for consultants and partners.
Proof of concept description for music (track) recommendations with NoSQL graph database Neo4j. This is not a Machine Learning-related PoC using Collaborative Filtering since the latter is just a piece in the songs similarity puzzle (user preferences cooccurrence distance). This PoC demonstrates the speed of Neo4j, its secret: the data structure, no SQL "select" nor "joins" are needed. Neo4j uses native graph storage and native graph processing whcih benefits from traversal performance.
Une introduction au Big Data, NoSQL et Open Data.
Il présente les avantages de NoSQL.
Une présentation des différents types des bases de données NoSQL.
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeMongoDB
> Présentation du pipeline EDM (Enterprise Data Management, ou « gestion de données d'entreprise »)
> Problèmes actuels
> Brève présentation de MongoDB
> Les différentes étapes d'un pipeline EDM
> L'avenir de l'architecture EDM
> Étude de cas et scénarios
> Leçons tirées du Data Lake
Google Data Studio et Google Search Console : l'intégration via le data blendingWoptimo
Conférence donnée par Coralie Amable, web analyst chez Woptimo lors du SEO Camp'us 2019 à Paris. Découvrez comment exploiter au mieux les données de Search Console grâce à Google Data Studio, l'outil de data vizualisation de Google.
Découvrez le parcours de vos données : lignage de données de bout en bout ...Wiiisdom
Si vous vous posez la question de savoir d'où viennent vos données, quelle transformation elles subissent et qui y accède, alors cette présentation est faite pour vous. Obtenez une compréhension approfondie du cycle de vie de vos données, de SAP Data Services jusqu'à votre rapport final, et comprenez comment effectuer un audit et une analyse d'impact dans SAP BusinessObjects pour documenter le contenu inutilisé.
Regardez la vidéo : https://youtu.be/PuM7D0zh0QY
Oxalide MorningTech #1 - BigData
1er MorningTech @Oxalide, animé par Ludovic Piot (@lpiot), le 15 décembre 2016.
Pour cette 1ère édition du Morning Tech nous vous proposons une overview sur un des thèmes du moment : le Big Data.
Au delà de ce buzz word nous aborderons :
Les grands concepts
Les étapes clés des projets Big Data et les technologies à utiliser (stockage, ingestion, …)
Les enjeux des architectures Big Data (architecture lambda, …)
L'intelligence artificielle (machine learning, deep learning, …)
Et nous finirons par un cas d'usage du big data sur AWS autour de l'utilisation des données gyroscopiques de vos internautes mobiles
Subject: Oxalide's 1st MorningTech talk about BigData.
Date: 15-dec-2016
Speakers: Ludovic Piot (@lpiot, @oxalide)
Language: french
Lien SpeakerDeck : https://speakerdeck.com/lpiot/oxalide-morningtech-number-1-bigdata
Lien SlideShare : https://www.slideshare.net/LudovicPiot/oxalide-morningtech-1-bigdata
YouTube Video capture: https://youtu.be/7O85lRzvMY0
Main topics:
* Les grands enjeux du BigData
** les 3 V du Gartner : volume, variété, vélocité
* Le stockage des données
** datalake
** les technos
* L'ingestion des données
** ETL
** datastream
** les technos
* Les enjeux du compute
** map-reduce
** spark
** lambda architecture
* Démo d'une plateforme BigData sur AWS
* L'intelligence artificielle
** datascience exploratoire et notebooks,
** machine learning,
** deep learning,
** data pipeline
** les technos
* Pour aller plus loin
** La gouvernance des données
** La dataviz
Architecture web aujourd'hui, besoin de scalabilité des bases de données relationnelles, découverte des bases de données NoSQL et des différents types de celles-ci. La vidéo de présentation peut être consultée à l'adresse suivante : http://youtu.be/oIpjcqHyx2M
5. Sommaire
• L’entreprise connectée
• Pour quoi une base de données graphe ?
• Stockage et traitement graphe
• Labeled Property Graph
• Base de données graphe: cas d’usage … vers une vraie adoption
•Neo4j: autres informations « produit »
• Import des données
• Architecture
• Réplication: cohérence, Causal Clustering/Consistency
• Sharding
• Autres features
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 5
6. L’entreprise connectée
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 6
Source YouTube :
Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
7. L’entreprise connectée
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 7
Source YouTube :
Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
need a real-time view of
every single store,
related to user’s
geography and position
need entire purchase
story
8. L’entreprise connectée
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 8
Source YouTube :
Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
not good at managing relationships
within dataset
between datasets
9. L’entreprise connectée
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 9
Source YouTube :
Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
10. L’entreprise connectée
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 10
Source YouTube :
Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
11. Pour quoi une base de données graphe?
FAITS
• Les systèmes de gestion de base de données relationnelles (SGBDR) ne sont plus adaptés au Big
Data
• Les données sont fortement connectées (notion de « relation »)
• La redéfinition du schéma (ajouter de nouveaux types de données ou une nouvelle relation), …
cela prend beaucoup de temps pour les SGBDR …
• SGBDR : les requêtes SQL avec des multiples jointures de plus en plus complexes avec des
latences en lecture de plus en plus importante
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 11
12. Pour quoi une base de données graphe?
DES SOLUTIONS
• Les bases de données NoSQL (Not Only SQL):
• clé – valeur
• orientées colonne
• orientées documents
• graphe
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 12
13. Pour quoi une base de données graphe?
RELATIONNEL
• Qui sont les amis d’Alice ? la recherche via
l’index global possède généralement une
complexité en temps de O(log n).
• Qui est ami avec Alice ? lorsque l’on effectue
une recherche dans le sens opposé de celui à
partir duquel l’index à été construit, on doit
effectuer plusieurs recherches via l’index pour
chaque personne (ami potentiel d’Alice), pour
un coût total de O(m log n).
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 13
14. Pour quoi une base de données graphe?
GRAPHE
• Illustration de l'adjacence entre éléments sans index (index-free adjacency).
• Pour trouver les amis de Alice, nous suivons tout simplement ses relations FRIEND sortants,
chacune avec un coût O(1).
• Pour trouver qui est ami avec Alice, nous suivons tout simplement toutes les relations FRIEND
entrants d'Alice, chacune avec un coût de O(1), pour un coût total de O(m).
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 14
15. Pour quoi une base de données graphe?
EFFET « WHITEBOARD »
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 15
le dessin sur le tableau est le
modèle physique, c’est la façon
comment les données sont
stockées sur disque
16. Pour quoi une base de données graphe?
CEPENDANT LES SGBDR ONT QUELQUE CHOSE DE BIEN !
Elles sont ACID … et Neo4j aussi
• Atomicité : Tout ou rien. Soit l’opération se fait en entier, soit elle ne se fait pas du tout. La
notion d’atomicité sous-entend la possibilité de défaire un opération avortée.
• Cohérence : L’opération doit assurer que la base de données sera dans un état valide après
l’opération.
• Liée à la configuration en cluster des nœuds (maître-esclaves, core-replicas, etc.) de la base de données
NoSQL (voir slides « Casual Clustering » à la fin de la présentation)
• Isolation : L’opération doit se faire en toute autonomie sans dépendance à une autre opération.
• Durabilité : En cas de problème important (coupure d’électricité), les modifications apportées
sont bien enregistrées
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 16
17. Stockage et traitement graphe
LES SYSTEMES NoSQL
• En général, il n'y a pas de structure de données pour
modéliser et stocker les relations.
• La plupart des bases NoSQL n’ont pas un
« bon concept » de requête pour les relations
• modélise et stocke les relations
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 17
18. Stockage et traitement graphe
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 18
bases de données graphe qui
sérialisent le graphe (sous forme de
table) pour un SGBDR, pour une base
de donnés orientée objet ou pour un
autre type de stockage.
19. Stockage et traitement graphe
• Stockage Graphe
• Objectif: performance et scalabilité.
• Stockage des données représentées sous forme d'un graphe, avec des nœuds et des relations.
• Utilisant des structures de stockage dédiées aux nœuds et relations.
• Traitement Graphe
• Objectif: performance des traversals.
• Parcours des relations grâce à des pointeurs physiques.
• Système de stockage capable de fournir une adjacence entre éléments voisins : chaque voisin d'une
entité est accessible grâce à un pointeur physique.
• Lecture et parcours des données sans recours à un index, en utilisant les arcs pour passer d'un
nœud à l'autre.
• Les bases de données graphe profitent de l’avantage donné par l'adjacence entre éléments sans
index (index-free adjacency).
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 19
20. Traitement graphe: CYPHER
LATENCE DES REPONSES DES REQUETES
• Avec une base de données graphe, la plupart des requêtes suivent un schéma dans lequel un
index est utilisé simplement pour trouver le(s) nœud(s) de départ.
• Le reste du parcours utilise ensuite une combinaison de chasse au pointeur + pattern
matching pour rechercher les données. Requête CYPHER:
MATCH (:BAILLEUR)-[r1:EST_BAILLEUR_DE]->(b)-[r2:A_CONJOINT]->(:CONJOINT)
• La performance ne dépend pas de la taille totale de l'ensemble de données, mais uniquement
sur les données interrogées (sous-graphes).
• Cela conduit à des temps de performance qui sont à peu près constant (liés à la taille de
l'ensemble de résultat), même si la taille de l'ensemble de données augmente.
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 20
“openCypher project aims to bring graph querying to the masses, with support from Oracle,
Databricks, Tableau and other leading companies”
22. Labeled Property Graph
• Libellés – types de nœuds
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 22
:PERSONNE :PERSONNE
23. Labeled Property Graph
• Libellés – types de nœuds
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 23
:PERSONNE:BENEFICIAIRE :PERSONNE:CONJOINT
24. Labeled Property Graph
• Libellés – types de relations
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 24
:PERSONNE:BENEFICIAIRE :PERSONNE:CONJOINT
A_CONJOINT
25. Labeled Property Graph
• Propriétés – nœuds et relations
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 25
:PERSONNE:BENEFICIAIRE :PERSONNE:CONJOINT
A_CONJOINT
nuinp:
matricule:
nom :
prenom:
nir:
dtnaires:
numteldo:
nutel2do:
email:
adresse:
iban:
mtloy:
mttotdro:
toprsa:
nuinp:
nom:
nir:
sitfam: ‘MAR’
26. Labeled Property Graph
• Propriétés – nœuds et relations
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 26
:PERSONNE:BENEFICIAIRE :PERSONNE:CONJOINT
CVA_CONJOINT
nuinp:
matricule:
nom :
prenom:
nir:
dtnaires:
numteldo:
nutel2do:
email:
adresse:
iban:
mtloy:
mttotdro:
toprsa:
nuinp:
nom :
nir:
matricule:sitfam: ‘MAR’
matricule:
respdos: ‘MME’
sitdos: ‘A’
numteldo:
nutel2do:
emaildos:
toprsa:
:DOSSIER
27. Labeled Property Graph
• En conclusion
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 27
:SUJET :SUJET
CVVERBE
adjectif:
adjectif:
adjectif:
adjectif:
adverbe:
adjectif:
adjectif:
28. Base de données graphe: cas d’usage
• Réseaux sociaux
• Détection de fraude (PANAMA PAPERS !)
• Analyse des réseaux IT
• Systèmes de recommandations
• …
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 28
29. Pas que des cas d’usage
• Vers une adoption généralisée des bases de données graphe
• La valeur (avantage compétitif) est dans la relation entre les données, e.g. Google (search)
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 29
30. Neo4j: autres informations produit
• Comparaison versions « Enterprise » et « Community (gratuit) »
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 30
31. Neo4j: autres informations produit
• Comparaison versions « Enterprise » et « Community (gratuit) »
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 31
32. Neo4j: Import des données
• Comparaison versions « Enterprise » et « Community (gratuit) »
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 32
33. Neo4j: Architecture
• Architecture
• Le Core API est une API Java qui expose les
primitives de graphe des nœuds, des relations,
des propriétés et des libellés à l'utilisateur.
• Neo4j possède un langage de requête
puissant, Cypher, qui permet d’interroger le
graphe pour obtenir toutes sortes
d’informations sur les nœuds, leurs liens et le
contenu de ces derniers.
• Le Traversal ou parcours de graphe est un
processus qui visite les nœuds dans le graphe
en suivant les relations entre les nœuds d'une
manière particulière.
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 33
in-memory
34. La cohérence
• Capacité d’un système à refléter fidèlement les actions d’un utilisateur.
• Cohérence forte – nécessite une réplication synchrone, et potentiellement des verrouillages complexes
(two phases commit)
• Cohérence faible – on accepte le risque de lectures ne reflétant pas les mises à jour
• Cohérence à terme (Eventual consistency) – le système garantit que les incohérences ne sont que
transitoires.
• En général, les systèmes NoSQL abandonnent la cohérence forte pour favoriser la réplication
asynchrone, et donc le débit en écriture/lecture.
• La notion de cohérence est liée à la configuration en cluster des nœuds (maître-esclaves, core-
replicas, etc.) de la base de données NoSQL
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 34
36. Neo4j: Causal Clustering
1. Core servers: mis à jour du graphe, opérations en continue
2. Read replicas (scalabilité): requêtes, analyses, reporting
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 36
RAFT
BOLT
source YouTube :Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
avant
maintenant
37. Neo4j: Causal Consistency
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 37
source YouTube : Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
38. Neo4j: Causal Consistency
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 38
source YouTube : Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
Consensus log: stores both
committed and
uncommitted transactions
39. Neo4j: Causal Consistency - bookmarks
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 39
source YouTube : Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
The client can ask for a bookmark which it then presents as a parameter to the next transaction. Using
that bookmark the cluster can ensure that only servers which have processed the client’s bookmarked
transaction will be able to run its next transaction. This provides a causal chain which ensures correct
behaviour from the client’s point of view
40. Neo4j: Causal Consistency - bookmarks
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 40
source YouTube : Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
41. Neo4j: Causal Consistency - bookmarks
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 41
source YouTube : Introducing Neo4j 3.1: The Graph Foundation for the Enterprise
42. Neo4j: Sharding
• Scalabilité: sharding
• S'il faut dépasser la capacité d'un cluster, nous pouvons partitionner le graphe sur plusieurs
instances de la base via la construction d'une logique de sharding dans l'application.
• Le sharding implique l'utilisation d'un identifiant synthétique pour la jointure des données sur
plusieurs instances de la base au niveau applicatif.
• Comment cela s'effectuera dépend beaucoup de la forme du graphe. Certains graphes se prêtent
très bien à ce cas avec des « frontières pratiques ». Bien sûr, pas tous les graphes ont des
« frontières » si évidentes.
• L'objectif futur de la plupart des bases de données graphe est d'être capable de partitionner un
graphe sur plusieurs machines sans intervention au niveau de l'application, de sorte que l'accès en
lecture et en écriture sur le graphe puisse être scalable horizontalement.
• Dans le cas général, cela est connu pour être un problème NP-dur, et donc impossible à résoudre.
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 42
“On Sharding
Graph Databases”
(Feb 2011)
Part of the reason Neo4j does not shard the graph is that since a graph is a highly connected data structure, traversing through a
distributed/sharded graph would involve lots of network latency as the traversal "hops" from machine to machine.
http://stackoverflow.com/questions/35982619/neo4j-difference-between-high-availability-and-distributed-mechanism
43. Neo4j: Performance & Scale
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 43
44. Neo4j: Performance & Scale
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 44
45. Neo4j: Performance & Scale
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 45
46. Neo4j: Productivity & Convenience
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 46
47. Neo4j: Ops & Security
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 47
48. Neo4j: + Apache Spark
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 48
49. Références
• [1] Robinson I., Webber J, Eifrem E., “Graph Databases”, O’Reilly, 2nd edition, ISBN
9781491930892
• [2] Vukotic A., Watt N., “Neo4j in Action”, Manning Publications, ISBN 9781617290763
• [3] Wikipedia, “Base de données orientée graphe”,
https://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es_orient%C3%A9e_graphe
• [4] Willemsen C., “Découverte de Neo4j, la base de données graphe”,
http://neoxygen.io/articles/decouverte-de-neo4j.html , version 1.1, 14-01-2015
• [5] Maury F., “Pourquoi s’intéresser aux graph-databases ?”,
http://www.arolla.fr/blog/2013/10/pourquoi-sinteresser-aux-graph-databases/
• [6] Fauvet C., “Nouvelles opportunités pour les données fortement connectées: La base de
graphe Neo4j”, 10 décembre 2013
• [7] Robert M., Dutheil L., Domenjoud M., « Introduction aux graphes avec Neo4j et Gephi »
http://blog.octo.com/introduction-aux-graphes-avec-neo4j-et-gephi/
• [8] Lyon William, Introduction to Graph Databases and Neo4j - January 14, 2016,
https://www.youtube.com/watch?v=83P81ebgCxA
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 49
50. Backup
• la réplication
• la réplication n'est pas une distribution !!
• c'est une copie des données qui sert avant tout à assurer la redondance, donc la protection contre
la perte de données
• tolérance aux pannes, distribution des lectures, des écritures
• théorème CAP: compromis entre cohérence, disponibilité, tolérance au partitionnement
• cohérence synchrone, un maître (SGBDR)
• cohérence asynchrone, un maître
• cohérence faible
• cohérence à terme (EM: eventual consistency) e.g. MongoDB
• cohérence asynchrone, plusieurs maîtres
• cohérence faible e.g. CouchDB
• cohérence à terme (EM: eventual consistency) e.g. Cassandra
• disponibilité: élection d’un maître si ce dernier tombe en panne
• tolérance au partitionnement: élection d’un maître si cluster est coupé en deux parties
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 50
51. Backup
• le sharding ou partionnement
• découper une (grande) collection en fragments en fonction d’une clé
• placer chaque fragment sur un serveur
• maintenir un répertoire indiquent que telle clé se trouve dans tel fragment sur tel serveur
• le partionnement apporte la répartition de charge (load balancing)
• il doit être dynamique (ajout/retrait de serveurs) pour s’adapter « élastiquement »
• s’applique à des collections de paires (clé, valeur), où valeur est n’importe quelle information
structurée
• distribution avec maître
• partitionnement par intervalle e.g. MongoDB, Hbase, Cassandra, Redis
• l’index est tout petit par rapport à la collection
• le « routeur » reçoit les requêtes et détermine le(s) serveur(s) à solliciter
• distribution sans maître
• partitionnement par hachage e.g. memcached, Dynamo
• faire hachage cohérent (consistent hashing)
17/01/2017 BORIS GUARISMA - PRÉSENTATION NEO4J POUR LE CNAM 51