SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
Compte rendu
ANNÉE UNIVERSIAIRE
2020/2021
PANAMA PAPERS
NOSQL/NEO4J
ENCADRÉ PAR: MR LARHIMI REALISÉ PAR: FATIMA ZAHRA FANDI
1
TABLE DE MATIERE
Introduction........................................................................................................................................2
I. Description de projet ..................................................................................................................3
1. Panama_papers ......................................................................................................................3
2. Structure de données de PANAMA-PAPERS.............................................................................3
II. Description de la base de données ..............................................................................................4
1. Définition de NEO4J ................................................................................................................4
2. Définition de CYPHER ..............................................................................................................4
III. Les requetés utilisées ..............................................................................................................5
1. La création des nœuds ............................................................................................................5
2. La création d’une relation........................................................................................................5
3. Requête du recherche .............................................................................................................5
4. Simplification des graphes avec nœuds virtuels et relations ....................................................6
5. Le chemin court entre deux officiers........................................................................................7
CONCLUSION......................................................................................................................................8
2
Introduction
Les Panama Papers « documents panaméens » désignent la fuite de plus de 11,5
millions de documents confidentiels issus du cabinet d'avocats panaméen Mossack
Fonseca, détaillant des informations sur plus de 214 000 sociétés offshore ainsi que
les noms des actionnaires de ces sociétés. Parmi eux se trouvent des hommes
politiques, des milliardaires, des sportifs de haut niveau ou des célébrités. Des
associés de chefs de gouvernements de plus de 40 autres pays.
Les documents fournis par un lanceur d'alerte anonyme et non rémunéré, représentant
un total de 2,6 téraoctets de données. Les données ont rapidement été partagées
avec les rédactions de médias dans plus de 80 pays par l'intermédiaire du consortium
international des journalistes d'investigation5 (ICIJ).
Dans ce compte rendu, je vais présenter 3 chapitres :
Chapitre I contient une description du PANAMA PAPERS et sa structure
Chapitre II présente la définition de la base de données « NEO4 J» et le language «
CYPHER».
Chapitre III contient quelques requîtes qui nous permet de bien comprendre quelque
cas avec le modèle de données graphiques, je disséquerai quelques exemples à partir
des données divulguées, en le recréant à l'aide de Cypher.
3
I. Description de projet
1. Panama_papers
Comme le monde l’a vu, le Consortium international des journalistes d’investigation
(ICIJ) a exposé des réseaux hautement connectés de structures fiscales offshores
utilisées par les élites les plus riches du monde.
Ces structures ont été découvertes suite à des fuites de documents financiers et ont
été analysées par les journalistes. Ils ont extrait les métadonnées des documents à
l'aide d'Apache Solr et de Tika, puis ont connecté toutes les informations ensemble à
l'aide des bases de données divulguées, créant un graphique des nœuds et des bords
dans Neo4j et l'ont rendu accessible à l'aide de l'application de visualisation
Linkurious.
2. Structure de données de PANAMA-PAPERS
Le modèle de données de la base de données Panama Papers / Offshore leaks Neo4j
contient des entités juridiques offshore et leurs connexions
Entité - L'entité juridique offshore. Il peut s'agir d'une entreprise, d'une fiducie, d'une
fondation ou d'une autre entité juridique créée dans une juridiction à faible taux
d'imposition.
Officier - Une personne ou une entreprise qui joue un rôle dans une entité offshore,
comme un bénéficiaire, un administrateur ou un actionnaire. Les relations illustrées
dans le diagramme ne sont qu'un échantillon de toutes les relations existantes.
Intermédiaire - Un intermédiaire pour quelqu'un qui cherche une société offshore et
un fournisseur de services offshore - généralement un cabinet d'avocats ou un
4
intermédiaire qui demande à un fournisseur de services offshore de créer une société
offshore.
Adresse - L'adresse enregistrée telle qu'elle apparaît dans les bases de données
originales obtenues par ICIJ.
Autre - Autres entités trouvées dans les données.
II. Description de la base de données
1. Définition de NEO4J
Neo4J est une base de données orientée graphe, elle vit le jour en 2000 et appartient
à la société Neo Technology. Elle garantit que les transactions sont ACID (atomicité,
cohérence, isolation et durabilité), chaque transaction est fiable et unique au sein de
cette base. L’un des points mis en avant par Neo Technology est la possibilité
d’exécuter plusieurs millions de requêtes par seconde sur des relations entre nœuds.
Neo4J intègre son propre langage de requêtage, le Cypher. Il peut être appelé grâce
à l’API REST fournie, ou via l’une des différentes implémentations disponibles pour les
principaux langages, dont Ruby. Les données peuvent être chargées grâce à
l’ETL propre à ce système, ce qui permet d’importer facilement et en masse une
grande quantité de données provenant de fichiers CSV. Les données ainsi insérées
peuvent être ensuite consultées sur un navigateur, par l’intermédiaire du panneau
d’administration de notre instance Neo4J.
2. Définition de CYPHER
CYPHER est un langage informatique de requête orienté graphe utilisé par Neo4j.
Le langage se veut simple et efficace dans la formulation des requêtes d'interrogation
et de mise à jour des bases de données orientées graphe. Cypher est relativement
simple dans sa construction syntaxique mais reste néanmoins un langage efficace.
Les concepteurs ont voulu permettre aux utilisateurs de rester concentrés dans leur
domaine d'expertise au lieu de se perdre dans les formulations de requêtes en bases
de données.
5
III. Les requetés utilisées
1. La création des nœuds
Requête de base (simple)
La création de 2 nœuds <Staff> et <company> chaque nœud contient une ligne avec
des attributs spécifiques.
2. La création d’une relation
Ces commandes vont rechercher tous les nœuds avec le label Staff et avec le
label Company. Comme il n’y a qu’un seul nœud Company avec un attribut name égal
à zineb, les deux Staff vont être liés au seul nœud zineb.
3. Requête du recherche
Requête complexe « PANAMA-PAPERS »
Cette requête permet d'afficher l’entreprise « Regula limited » qui existe déjà dans le
nœud Entity et toutes les sociétés auxquelles il se rapporte dans Panama-papers,
cette recherche est limitées dans 25 nœuds.
6
4. Simplification des graphes avec nœuds virtuels et relations
WHERE (o2:Officer OR o2:Intermediary)
AND NOT toUpper(o2.name) CONTAINS "REGULA LIMITED"
RETURN collapsed, e, r1, r2, o2 LIMIT 10
Les nœuds virtuels et les relations sont des objets graphiques qui n'existent pas dans
la base de données, mais peuvent être construits au moment de la requête pour être
utilisés par des outils comme Neo4j Browser. Nous pouvons créer des nœuds virtuels
à l'aide de la bibliothèque de procédures APOC et des fonctions apoc.create.vNode
et apoc.create.vRelationship
Voici un exemple montrant comment réduire tous les nœuds «Regula Limited» en un
seul nœud, y compris toutes les relations, à l'aide de nœuds virtuels et de relations
MATCH (o:Officer) WHERE toUpper(o.name) CONTAINS "REGULA LIMITED" WITH o AS collapsed
LIMIT 1
WITH apoc.create.vNode(["Regula"], collapsed {.*}) AS collapsed
MATCH (o)-[col1]->(e:Entity) WHERE toUpper(o.name) CONTAINS "REGULA LIMITED"
WITH collapsed, o, e, apoc.create.vRelationship(collapsed, type(col1), {}, e) AS r1
MATCH (e)<-[r2]-(o2)
7
L'exécution de cette requête dans le navigateur Neo4j nous donne une vue simplifiée
des données. Maintenant, nous pouvons voir plus facilement les connexions à
«Regula Limited».
5. Le chemin court entre deux officiers
Cette requête permet de définir le chemin court entre deux officiers on utilise le mot-
clé « shortestPath »
8
Pour définir tous les chemins, courts en utilisent le mot-clé « AllShortedPath »
CONCLUSION
La réalisation de ce projet est passée par un ensemble des étapes, en commençant
d’abord par la métrise du système et savoir ses différentes composantes, puis pose
des questions et les répond sous forme de requêtes, ensuite faire le traitement, et
finalement l’affichage de résultats sous forme du graphe sur NEO4J.

Contenu connexe

Similaire à Rapport panama papers

Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQLAntoine Augusti
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented ArchitectureDNG Consulting
 
Web 3_0 - l'évolution vers le web sémantique: l'internet intelligent
Web 3_0 - l'évolution vers le web sémantique: l'internet intelligentWeb 3_0 - l'évolution vers le web sémantique: l'internet intelligent
Web 3_0 - l'évolution vers le web sémantique: l'internet intelligentJohann Lovato
 
Documentation serveur acs wibox (dev interne)
Documentation serveur acs wibox (dev interne)Documentation serveur acs wibox (dev interne)
Documentation serveur acs wibox (dev interne)Taha abbad andaloussi
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .netHamza SAID
 
Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
 
Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ...
 Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ... Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ...
Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ...ABES
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
Les professionnels de l'information face aux défis du Web de données
Les professionnels de l'information face aux défis du Web de donnéesLes professionnels de l'information face aux défis du Web de données
Les professionnels de l'information face aux défis du Web de donnéesGautier Poupeau
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésNeo4j
 
Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...AbdeslamAMRANE3
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 

Similaire à Rapport panama papers (20)

Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
 
Serveur node red
Serveur node redServeur node red
Serveur node red
 
Web 3_0 - l'évolution vers le web sémantique: l'internet intelligent
Web 3_0 - l'évolution vers le web sémantique: l'internet intelligentWeb 3_0 - l'évolution vers le web sémantique: l'internet intelligent
Web 3_0 - l'évolution vers le web sémantique: l'internet intelligent
 
Documentation serveur acs wibox (dev interne)
Documentation serveur acs wibox (dev interne)Documentation serveur acs wibox (dev interne)
Documentation serveur acs wibox (dev interne)
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Normes ISO etmarc
Normes ISO etmarcNormes ISO etmarc
Normes ISO etmarc
 
Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014Présentation de ElasticSearch / Digital apéro du 12/11/2014
Présentation de ElasticSearch / Digital apéro du 12/11/2014
 
Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ...
 Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ... Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ...
Consulter, récupérer, réutiliser les métadonnées au-delà du Sudoc - Journée ...
 
Démystifions l'API-culture!
Démystifions l'API-culture!Démystifions l'API-culture!
Démystifions l'API-culture!
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Les professionnels de l'information face aux défis du Web de données
Les professionnels de l'information face aux défis du Web de donnéesLes professionnels de l'information face aux défis du Web de données
Les professionnels de l'information face aux défis du Web de données
 
8-socket.pdf
8-socket.pdf8-socket.pdf
8-socket.pdf
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
Web 2.0 : Blogs, RSS & Wikis
Web 2.0 : Blogs, RSS & WikisWeb 2.0 : Blogs, RSS & Wikis
Web 2.0 : Blogs, RSS & Wikis
 
Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...Mise en place d’un moteur de recherche et de recommandation de documents text...
Mise en place d’un moteur de recherche et de recommandation de documents text...
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 

Plus de fatima zahra FANDI

Plus de fatima zahra FANDI (6)

Communication interne en entreprise
Communication interne en entrepriseCommunication interne en entreprise
Communication interne en entreprise
 
Panama papers
Panama papersPanama papers
Panama papers
 
Expression de besoin pour le si
Expression de besoin pour le siExpression de besoin pour le si
Expression de besoin pour le si
 
Imbalanced classification
Imbalanced classificationImbalanced classification
Imbalanced classification
 
Gestion de projets d 'innovation
Gestion de projets d 'innovationGestion de projets d 'innovation
Gestion de projets d 'innovation
 
Presentation cassandra
Presentation cassandraPresentation cassandra
Presentation cassandra
 

Rapport panama papers

  • 1. Compte rendu ANNÉE UNIVERSIAIRE 2020/2021 PANAMA PAPERS NOSQL/NEO4J ENCADRÉ PAR: MR LARHIMI REALISÉ PAR: FATIMA ZAHRA FANDI
  • 2. 1 TABLE DE MATIERE Introduction........................................................................................................................................2 I. Description de projet ..................................................................................................................3 1. Panama_papers ......................................................................................................................3 2. Structure de données de PANAMA-PAPERS.............................................................................3 II. Description de la base de données ..............................................................................................4 1. Définition de NEO4J ................................................................................................................4 2. Définition de CYPHER ..............................................................................................................4 III. Les requetés utilisées ..............................................................................................................5 1. La création des nœuds ............................................................................................................5 2. La création d’une relation........................................................................................................5 3. Requête du recherche .............................................................................................................5 4. Simplification des graphes avec nœuds virtuels et relations ....................................................6 5. Le chemin court entre deux officiers........................................................................................7 CONCLUSION......................................................................................................................................8
  • 3. 2 Introduction Les Panama Papers « documents panaméens » désignent la fuite de plus de 11,5 millions de documents confidentiels issus du cabinet d'avocats panaméen Mossack Fonseca, détaillant des informations sur plus de 214 000 sociétés offshore ainsi que les noms des actionnaires de ces sociétés. Parmi eux se trouvent des hommes politiques, des milliardaires, des sportifs de haut niveau ou des célébrités. Des associés de chefs de gouvernements de plus de 40 autres pays. Les documents fournis par un lanceur d'alerte anonyme et non rémunéré, représentant un total de 2,6 téraoctets de données. Les données ont rapidement été partagées avec les rédactions de médias dans plus de 80 pays par l'intermédiaire du consortium international des journalistes d'investigation5 (ICIJ). Dans ce compte rendu, je vais présenter 3 chapitres : Chapitre I contient une description du PANAMA PAPERS et sa structure Chapitre II présente la définition de la base de données « NEO4 J» et le language « CYPHER». Chapitre III contient quelques requîtes qui nous permet de bien comprendre quelque cas avec le modèle de données graphiques, je disséquerai quelques exemples à partir des données divulguées, en le recréant à l'aide de Cypher.
  • 4. 3 I. Description de projet 1. Panama_papers Comme le monde l’a vu, le Consortium international des journalistes d’investigation (ICIJ) a exposé des réseaux hautement connectés de structures fiscales offshores utilisées par les élites les plus riches du monde. Ces structures ont été découvertes suite à des fuites de documents financiers et ont été analysées par les journalistes. Ils ont extrait les métadonnées des documents à l'aide d'Apache Solr et de Tika, puis ont connecté toutes les informations ensemble à l'aide des bases de données divulguées, créant un graphique des nœuds et des bords dans Neo4j et l'ont rendu accessible à l'aide de l'application de visualisation Linkurious. 2. Structure de données de PANAMA-PAPERS Le modèle de données de la base de données Panama Papers / Offshore leaks Neo4j contient des entités juridiques offshore et leurs connexions Entité - L'entité juridique offshore. Il peut s'agir d'une entreprise, d'une fiducie, d'une fondation ou d'une autre entité juridique créée dans une juridiction à faible taux d'imposition. Officier - Une personne ou une entreprise qui joue un rôle dans une entité offshore, comme un bénéficiaire, un administrateur ou un actionnaire. Les relations illustrées dans le diagramme ne sont qu'un échantillon de toutes les relations existantes. Intermédiaire - Un intermédiaire pour quelqu'un qui cherche une société offshore et un fournisseur de services offshore - généralement un cabinet d'avocats ou un
  • 5. 4 intermédiaire qui demande à un fournisseur de services offshore de créer une société offshore. Adresse - L'adresse enregistrée telle qu'elle apparaît dans les bases de données originales obtenues par ICIJ. Autre - Autres entités trouvées dans les données. II. Description de la base de données 1. Définition de NEO4J Neo4J est une base de données orientée graphe, elle vit le jour en 2000 et appartient à la société Neo Technology. Elle garantit que les transactions sont ACID (atomicité, cohérence, isolation et durabilité), chaque transaction est fiable et unique au sein de cette base. L’un des points mis en avant par Neo Technology est la possibilité d’exécuter plusieurs millions de requêtes par seconde sur des relations entre nœuds. Neo4J intègre son propre langage de requêtage, le Cypher. Il peut être appelé grâce à l’API REST fournie, ou via l’une des différentes implémentations disponibles pour les principaux langages, dont Ruby. Les données peuvent être chargées grâce à l’ETL propre à ce système, ce qui permet d’importer facilement et en masse une grande quantité de données provenant de fichiers CSV. Les données ainsi insérées peuvent être ensuite consultées sur un navigateur, par l’intermédiaire du panneau d’administration de notre instance Neo4J. 2. Définition de CYPHER CYPHER est un langage informatique de requête orienté graphe utilisé par Neo4j. Le langage se veut simple et efficace dans la formulation des requêtes d'interrogation et de mise à jour des bases de données orientées graphe. Cypher est relativement simple dans sa construction syntaxique mais reste néanmoins un langage efficace. Les concepteurs ont voulu permettre aux utilisateurs de rester concentrés dans leur domaine d'expertise au lieu de se perdre dans les formulations de requêtes en bases de données.
  • 6. 5 III. Les requetés utilisées 1. La création des nœuds Requête de base (simple) La création de 2 nœuds <Staff> et <company> chaque nœud contient une ligne avec des attributs spécifiques. 2. La création d’une relation Ces commandes vont rechercher tous les nœuds avec le label Staff et avec le label Company. Comme il n’y a qu’un seul nœud Company avec un attribut name égal à zineb, les deux Staff vont être liés au seul nœud zineb. 3. Requête du recherche Requête complexe « PANAMA-PAPERS » Cette requête permet d'afficher l’entreprise « Regula limited » qui existe déjà dans le nœud Entity et toutes les sociétés auxquelles il se rapporte dans Panama-papers, cette recherche est limitées dans 25 nœuds.
  • 7. 6 4. Simplification des graphes avec nœuds virtuels et relations WHERE (o2:Officer OR o2:Intermediary) AND NOT toUpper(o2.name) CONTAINS "REGULA LIMITED" RETURN collapsed, e, r1, r2, o2 LIMIT 10 Les nœuds virtuels et les relations sont des objets graphiques qui n'existent pas dans la base de données, mais peuvent être construits au moment de la requête pour être utilisés par des outils comme Neo4j Browser. Nous pouvons créer des nœuds virtuels à l'aide de la bibliothèque de procédures APOC et des fonctions apoc.create.vNode et apoc.create.vRelationship Voici un exemple montrant comment réduire tous les nœuds «Regula Limited» en un seul nœud, y compris toutes les relations, à l'aide de nœuds virtuels et de relations MATCH (o:Officer) WHERE toUpper(o.name) CONTAINS "REGULA LIMITED" WITH o AS collapsed LIMIT 1 WITH apoc.create.vNode(["Regula"], collapsed {.*}) AS collapsed MATCH (o)-[col1]->(e:Entity) WHERE toUpper(o.name) CONTAINS "REGULA LIMITED" WITH collapsed, o, e, apoc.create.vRelationship(collapsed, type(col1), {}, e) AS r1 MATCH (e)<-[r2]-(o2)
  • 8. 7 L'exécution de cette requête dans le navigateur Neo4j nous donne une vue simplifiée des données. Maintenant, nous pouvons voir plus facilement les connexions à «Regula Limited». 5. Le chemin court entre deux officiers Cette requête permet de définir le chemin court entre deux officiers on utilise le mot- clé « shortestPath »
  • 9. 8 Pour définir tous les chemins, courts en utilisent le mot-clé « AllShortedPath » CONCLUSION La réalisation de ce projet est passée par un ensemble des étapes, en commençant d’abord par la métrise du système et savoir ses différentes composantes, puis pose des questions et les répond sous forme de requêtes, ensuite faire le traitement, et finalement l’affichage de résultats sous forme du graphe sur NEO4J.