SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Plus qu’une base de données
Une plateforme aux multiples usages
Présentation PGGTIE
Présentation PGGTIE
Groupe de Travail Inter-Entreprise sur PostgreSQL
https://entreprises.postgresql.fr/
Objectifs :
○ Partage de retours d'expériences, de bonnes pratiques, d'études
○ Contribuer à PostgreSQL
○ Encourager l'adoption et l'utilisation de PostgreSQL, notamment par les éditeurs
Chantiers :
○ Haute disponibilité
○ Migrations
○ Utilisation, supervision, monitoring
○ Promotion, formation...
Guide de transition vers PostgreSQL
En Français :
https://www.postgresql.fr/entreprises/guide-de-transition
En Anglais, participez !
https://github.com/postgresql-transition-guide/guide
Fonctionnalités
Fonctionnalités
Système de Gestion de Bases de Données Relationnelles
Open-source (licence PostgreSQL) et gratuit (version communautaire)
Porté par une forte communauté => efficacité et sécurité du code, évolution
constante par ajout de fonctionnalités
En moyenne une nouvelle version majeure par an amenant son lot de nouveautés
et d'améliorations (performances)
Fonctionnalités
Bases de données relationnelle "classique" (très forte compatibilité avec la norme
SQL)
Utilisation NoSQL (données de type JSON)
Nombreux types de données en standard
Respect des propriétés ACID d'un SGBD
Reconnu pour sa très grande efficacité et sa robustesse
Multiplateformes : Linux, FreeBSD, OpenBSD, Windows, MacOS, etc.
Programmation au plus près des données (fonctions et procédures stockées)
dans différents langages
Fonctionnalités
Multiplateforme, vraiment ?
Historique des versions
1995 : première version publique
2005 : portage sous Windows
2010 : réplication streaming
2012 : support natif du JSON
2016 : parallélisation des requêtes, fonctions OLAP
2017 : réplication logique et partitionnement déclaratif
depuis : régulières améliorations de ces grandes fonctionnalités
Adoption
À travers le monde :
Apple (OS X Lion)
IMDB
Spotify
ISS
Instagram
Skype...
En France : PGGTIE :
Air France
Société Générale
IGN
MAIF
MétéoFrance
SNCF
Ministère de l'éducation nationale
Gendarmerie nationale
leboncoin...
Possibilités SIG
Information géographique
SIG
Système d'information géographique
Gestion des données avec composante géographique (spatialisation), permettant de créer,
stocker, gérer et enrichir de l'information spatiale
PostGIS : l’extension spatiale de PostgreSQL
● extension de PostgreSQL, permet de représenter l'information spatiale dans
une base de données sous forme de géométries = points (lieux
remarquables), lignes (réseaux, rivières...) et polygones (surfaces),
● représentation en 3 dimensions (bâtiments par exemple)
● grilles de pixels = raster (modèle numérique de terrain, images spatiales
géoréférencées...)
PostGIS : l’extension spatiale de PostgreSQL
● extension également libre
● s'appuie sur des bibliothèques libres : GDAL (raster), OGR (vecteur), PROJ
(projections), GEOS (géométries), etc.
● permet les traitements de données spatiales et leur couplage avec les autres
données de la base de données
● facilement visualisable avec des logiciels libres (QGIS, GRASS, ...) ou non
(ArcGIS, MapInfo, ...)
Points = villes
Lignes = cours d’eau
Polygones = pays, îles
PgRouting : le calcul d’itinéraires
● Extension de PostgreSQL / PostGIS pour apporter des fonctions de calculs
d'itinéraires
● Exemples de calculs :
○ trouver l'itinéraire le plus court d'un point A à un point B
○ trouver l'itinéraire le plus rapide entre deux point
○ utilisation de différents algorithmes de calcul
○ calculs d'isochrones...
PgPointcloud
● PgPointcloud pour les nuages de points LiDAR
● Stockage en base de données des nuages de points issus de LiDAR aérien et /
ou terrestre (géolocalisés)
● Stockage efficace avec compression, pour limiter la volumétrie et conserver
de bonnes performances des requêtes
● Interaction avec PostGIS pour traiter la donnée spatialisée :
○ évolution du trait de côte
○ suivi des crues (amélioration de la prévision)
○ délimitation du bâti
○ évaluation de la ressource forestière...
Autres sources de données
Information géographique
Oracle
MariaDB
MongoDB
CSV
shape
file
raster
Les Foreign Data Wrappers
● Mise en œuvre de la norme SQL MED sous PostgreSQL
● Permet de connecter un serveur à une autre source externe de données
● Puis de croiser les données internes et externes depuis PostgreSQL
● En lecture et / ou écriture (dépend des FDW)
● Sources de données de natures diverses:
○ autre base de données PostgreSQL
○ autre SGBD (Oracle, SQL Server, MongoDB, MariaDB, SQLite…)
○ fichiers de données (CSV, Excel, LibreOffice Calc…)
○ sources de données sur Internet (Git, HTML, RSS, Twitter…)
ORACLE_FDW
● Développé par Laurenz Albe (PostGIS)
● Permet de se connecter à une base Oracle via le système de table externe
● Exemple d’implémentation Maif :
○ Consolidation de données de multiples bases dans une même base
PostgreSQL (Décisionnel)
○ Récupération de données de référence pour faire des traitements
massifs
○ Outil de migration de données d’Oracle Vers PostgreSQL
OGR_FDW
● Développé par Paul Ramsey (PostGIS)
● Supporte un très grand nombre de formats
● Fichiers “plats” :
○ CSV (détection automatique des entêtes)
○ Excel
○ LibreOffice
● Fichiers SIG :
○ shapefiles, GeoJSON, MapInfo...
○ fichiers raster
○ flux WFS (données vecteur par flux HTTP)
● Bases de données et plus :
○ PostgreSQL
○ SQL Server
○ MySQL
○ sources ODBC
○ Elasticsearch...
Développeurs & PostgreSQL
Information géographique
Oracle
MariaDB
MongoDB
CSV
shape
file
raster
Adoption des développeurs
Pourquoi PostgreSQL est apprécié par nos développeurs
● Très bonne documentation (ouverte, accessible et à jour)
● Une grosse communauté
● Beaucoup de fonctionnalités intégrées ou en extension (json, PostGIS, search,
graph, full text search, index vectoriels …)
● L’opportunité de créer ses propres extensions et collation
● Un bon retour des développeurs qui donne envie aux autres de partir sur
cette technologie
Exemple de collation spécifique 1/2
Voici un exemple d’utilisation spécifique du moteur postgres : la création d’une collation
DROP TABLE IF EXISTS test;
DROP COLLATION IF EXISTS special;
CREATE COLLATION special (
provider = 'icu',
locale = 'fr_FR.utf8@colStrength=primary;colAlternate=shifted',
deterministic = false
);
CREATE TABLE test (
name text COLLATE special
);
INSERT INTO test VALUES
( 'Éléonore-Œdipe' ),
( 'Eléonore-Œdipe' ),
( 'Eleonore-Œdipe' ),
( 'éléonore-œdipe' ),
( 'eleonore-œdipe' ),
( 'ÉléonoreŒdipe' ),
( 'EléonoreŒdipe' ),
( 'EleonoreŒdipe' ),
( 'éléonoreœdipe' ),
( 'eleonoreœdipe' );
SELECT * FROM test WHERE name = 'eleonoreoedipe';
Exemple de collation spécifique 2/2
SELECT * FROM test WHERE name = 'eleonoreoedipe';
Éléonore-Œdipe
Eléonore-Œdipe
Eleonore-Œdipe
éléonore-œdipe
eleonore-œdipe
ÉléonoreŒdipe
EléonoreŒdipe
EleonoreŒdipe
éléonoreœdipe
eleonoreœdipe
Rex leboncoin
Information géographique
Oracle
MariaDB
MongoDB
CSV
shape
file
raster
Adoption des développeurs
JSON
Elasticsearch
Kafka
Traitement de JSON avec PostgreSQL
Base transactionnelle
Base
évènements
Réplication
logique
(seulement
INSERT)
Base JSON
Micro-service Micro-service
Stockage du statut intermédiaire des traitements
Full sans stress sur la base transactionnelle
Compression du topic Kafka possible
● PostgreSQL 12 (AWS RDS)
● Environ 500 Go sur disque
● 3 Champs JSON (stockés en JSONB)
● 4 cores, 8 vCPU, 64 Go RAM
● 9000 iops garantis
● 4,7 Gbps bande I/O garanti
● 10 Gbps réseau global garanti
● 1 worker INSERT (une connexion)
● 10 workers SELECT (10 connexions)
Specs de la base JSON
Optimisation
- 10 partitions
- Id (PK)
- horodatage dernière modif
- 3 colonnes JSONB “nullables”
- Colonne id modulus 10 - clé de partition
- Chaque worker lecture travaille sur un modulus - une partition
Résultats :
- CPU a 20%
- I/O a 100%
- Un peu plus de 5 minutes pour tout lire
- EXPLAIN - Le même seqscan de la partition
Temps d’échanges

Contenu connexe

Tendances

Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairAlexis Seigneurin
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel RBoris Guarisma
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de RedisJEMLI Fathi
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 

Tendances (20)

spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
Spark dataframe
Spark dataframeSpark dataframe
Spark dataframe
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
 
OWF12/BIG DATA OWF OpenSearchServer light
OWF12/BIG DATA OWF OpenSearchServer lightOWF12/BIG DATA OWF OpenSearchServer light
OWF12/BIG DATA OWF OpenSearchServer light
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Introduction spark
Introduction sparkIntroduction spark
Introduction spark
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel R
 
HADOOP + R
HADOOP + RHADOOP + R
HADOOP + R
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de Redis
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Chapitre 4 no sql
Chapitre 4 no sqlChapitre 4 no sql
Chapitre 4 no sql
 

Similaire à PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages

[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integrator[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integratormathieuraj
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Open streetmap pour CocoaHeads Paris
Open streetmap pour CocoaHeads ParisOpen streetmap pour CocoaHeads Paris
Open streetmap pour CocoaHeads ParisCocoaHeads France
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
 
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
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide
 
PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009Oslandia
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Développement et gestion de Logiciel Libre et Ouvert (LLO)
Développement et gestion  de Logiciel Libre et Ouvert (LLO)Développement et gestion  de Logiciel Libre et Ouvert (LLO)
Développement et gestion de Logiciel Libre et Ouvert (LLO)geomsp
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoringCamptocamp
 

Similaire à PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages (20)

[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integrator[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integrator
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
Open streetmap pour CocoaHeads Paris
Open streetmap pour CocoaHeads ParisOpen streetmap pour CocoaHeads Paris
Open streetmap pour CocoaHeads Paris
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache Zeppelin
 
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
 
Show de boucane pour ELK
Show de boucane pour ELKShow de boucane pour ELK
Show de boucane pour ELK
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009
 
Hello mongo
Hello mongoHello mongo
Hello mongo
 
Android ORMLite
Android   ORMLiteAndroid   ORMLite
Android ORMLite
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Développement et gestion de Logiciel Libre et Ouvert (LLO)
Développement et gestion  de Logiciel Libre et Ouvert (LLO)Développement et gestion  de Logiciel Libre et Ouvert (LLO)
Développement et gestion de Logiciel Libre et Ouvert (LLO)
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring
 

Plus de Open Source Experience

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésOpen Source Experience
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousseOpen Source Experience
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Open Source Experience
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresOpen Source Experience
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationOpen Source Experience
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsOpen Source Experience
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Open Source Experience
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteOpen Source Experience
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieOpen Source Experience
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresOpen Source Experience
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceOpen Source Experience
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesOpen Source Experience
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceOpen Source Experience
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceOpen Source Experience
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...Open Source Experience
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementOpen Source Experience
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?Open Source Experience
 
Démystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaDémystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaOpen Source Experience
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secretsOpen Source Experience
 

Plus de Open Source Experience (20)

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivités
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousse
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libres
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'information
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverte
 
Mon application web en 20 minutes
Mon application web en 20 minutesMon application web en 20 minutes
Mon application web en 20 minutes
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsie
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libres
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open source
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenaces
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open source
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open source
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitement
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?
 
Démystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaDémystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache Kafka
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secrets
 

PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages

  • 1. Plus qu’une base de données Une plateforme aux multiples usages
  • 3. Présentation PGGTIE Groupe de Travail Inter-Entreprise sur PostgreSQL https://entreprises.postgresql.fr/ Objectifs : ○ Partage de retours d'expériences, de bonnes pratiques, d'études ○ Contribuer à PostgreSQL ○ Encourager l'adoption et l'utilisation de PostgreSQL, notamment par les éditeurs Chantiers : ○ Haute disponibilité ○ Migrations ○ Utilisation, supervision, monitoring ○ Promotion, formation...
  • 4. Guide de transition vers PostgreSQL En Français : https://www.postgresql.fr/entreprises/guide-de-transition En Anglais, participez ! https://github.com/postgresql-transition-guide/guide
  • 6. Fonctionnalités Système de Gestion de Bases de Données Relationnelles Open-source (licence PostgreSQL) et gratuit (version communautaire) Porté par une forte communauté => efficacité et sécurité du code, évolution constante par ajout de fonctionnalités En moyenne une nouvelle version majeure par an amenant son lot de nouveautés et d'améliorations (performances)
  • 7. Fonctionnalités Bases de données relationnelle "classique" (très forte compatibilité avec la norme SQL) Utilisation NoSQL (données de type JSON) Nombreux types de données en standard Respect des propriétés ACID d'un SGBD Reconnu pour sa très grande efficacité et sa robustesse Multiplateformes : Linux, FreeBSD, OpenBSD, Windows, MacOS, etc. Programmation au plus près des données (fonctions et procédures stockées) dans différents langages
  • 9. Historique des versions 1995 : première version publique 2005 : portage sous Windows 2010 : réplication streaming 2012 : support natif du JSON 2016 : parallélisation des requêtes, fonctions OLAP 2017 : réplication logique et partitionnement déclaratif depuis : régulières améliorations de ces grandes fonctionnalités
  • 10. Adoption À travers le monde : Apple (OS X Lion) IMDB Spotify ISS Instagram Skype... En France : PGGTIE : Air France Société Générale IGN MAIF MétéoFrance SNCF Ministère de l'éducation nationale Gendarmerie nationale leboncoin...
  • 13. SIG Système d'information géographique Gestion des données avec composante géographique (spatialisation), permettant de créer, stocker, gérer et enrichir de l'information spatiale
  • 14. PostGIS : l’extension spatiale de PostgreSQL ● extension de PostgreSQL, permet de représenter l'information spatiale dans une base de données sous forme de géométries = points (lieux remarquables), lignes (réseaux, rivières...) et polygones (surfaces), ● représentation en 3 dimensions (bâtiments par exemple) ● grilles de pixels = raster (modèle numérique de terrain, images spatiales géoréférencées...)
  • 15. PostGIS : l’extension spatiale de PostgreSQL ● extension également libre ● s'appuie sur des bibliothèques libres : GDAL (raster), OGR (vecteur), PROJ (projections), GEOS (géométries), etc. ● permet les traitements de données spatiales et leur couplage avec les autres données de la base de données ● facilement visualisable avec des logiciels libres (QGIS, GRASS, ...) ou non (ArcGIS, MapInfo, ...)
  • 16. Points = villes Lignes = cours d’eau Polygones = pays, îles
  • 17. PgRouting : le calcul d’itinéraires ● Extension de PostgreSQL / PostGIS pour apporter des fonctions de calculs d'itinéraires ● Exemples de calculs : ○ trouver l'itinéraire le plus court d'un point A à un point B ○ trouver l'itinéraire le plus rapide entre deux point ○ utilisation de différents algorithmes de calcul ○ calculs d'isochrones...
  • 18. PgPointcloud ● PgPointcloud pour les nuages de points LiDAR ● Stockage en base de données des nuages de points issus de LiDAR aérien et / ou terrestre (géolocalisés) ● Stockage efficace avec compression, pour limiter la volumétrie et conserver de bonnes performances des requêtes ● Interaction avec PostGIS pour traiter la donnée spatialisée : ○ évolution du trait de côte ○ suivi des crues (amélioration de la prévision) ○ délimitation du bâti ○ évaluation de la ressource forestière...
  • 19.
  • 20.
  • 21. Autres sources de données
  • 23. Les Foreign Data Wrappers ● Mise en œuvre de la norme SQL MED sous PostgreSQL ● Permet de connecter un serveur à une autre source externe de données ● Puis de croiser les données internes et externes depuis PostgreSQL ● En lecture et / ou écriture (dépend des FDW) ● Sources de données de natures diverses: ○ autre base de données PostgreSQL ○ autre SGBD (Oracle, SQL Server, MongoDB, MariaDB, SQLite…) ○ fichiers de données (CSV, Excel, LibreOffice Calc…) ○ sources de données sur Internet (Git, HTML, RSS, Twitter…)
  • 24. ORACLE_FDW ● Développé par Laurenz Albe (PostGIS) ● Permet de se connecter à une base Oracle via le système de table externe ● Exemple d’implémentation Maif : ○ Consolidation de données de multiples bases dans une même base PostgreSQL (Décisionnel) ○ Récupération de données de référence pour faire des traitements massifs ○ Outil de migration de données d’Oracle Vers PostgreSQL
  • 25. OGR_FDW ● Développé par Paul Ramsey (PostGIS) ● Supporte un très grand nombre de formats ● Fichiers “plats” : ○ CSV (détection automatique des entêtes) ○ Excel ○ LibreOffice ● Fichiers SIG : ○ shapefiles, GeoJSON, MapInfo... ○ fichiers raster ○ flux WFS (données vecteur par flux HTTP) ● Bases de données et plus : ○ PostgreSQL ○ SQL Server ○ MySQL ○ sources ODBC ○ Elasticsearch...
  • 28. Pourquoi PostgreSQL est apprécié par nos développeurs ● Très bonne documentation (ouverte, accessible et à jour) ● Une grosse communauté ● Beaucoup de fonctionnalités intégrées ou en extension (json, PostGIS, search, graph, full text search, index vectoriels …) ● L’opportunité de créer ses propres extensions et collation ● Un bon retour des développeurs qui donne envie aux autres de partir sur cette technologie
  • 29. Exemple de collation spécifique 1/2 Voici un exemple d’utilisation spécifique du moteur postgres : la création d’une collation DROP TABLE IF EXISTS test; DROP COLLATION IF EXISTS special; CREATE COLLATION special ( provider = 'icu', locale = 'fr_FR.utf8@colStrength=primary;colAlternate=shifted', deterministic = false ); CREATE TABLE test ( name text COLLATE special ); INSERT INTO test VALUES ( 'Éléonore-Œdipe' ), ( 'Eléonore-Œdipe' ), ( 'Eleonore-Œdipe' ), ( 'éléonore-œdipe' ), ( 'eleonore-œdipe' ), ( 'ÉléonoreŒdipe' ), ( 'EléonoreŒdipe' ), ( 'EleonoreŒdipe' ), ( 'éléonoreœdipe' ), ( 'eleonoreœdipe' ); SELECT * FROM test WHERE name = 'eleonoreoedipe';
  • 30. Exemple de collation spécifique 2/2 SELECT * FROM test WHERE name = 'eleonoreoedipe'; Éléonore-Œdipe Eléonore-Œdipe Eleonore-Œdipe éléonore-œdipe eleonore-œdipe ÉléonoreŒdipe EléonoreŒdipe EleonoreŒdipe éléonoreœdipe eleonoreœdipe
  • 33. Traitement de JSON avec PostgreSQL Base transactionnelle Base évènements Réplication logique (seulement INSERT) Base JSON Micro-service Micro-service Stockage du statut intermédiaire des traitements Full sans stress sur la base transactionnelle Compression du topic Kafka possible
  • 34. ● PostgreSQL 12 (AWS RDS) ● Environ 500 Go sur disque ● 3 Champs JSON (stockés en JSONB) ● 4 cores, 8 vCPU, 64 Go RAM ● 9000 iops garantis ● 4,7 Gbps bande I/O garanti ● 10 Gbps réseau global garanti ● 1 worker INSERT (une connexion) ● 10 workers SELECT (10 connexions) Specs de la base JSON
  • 35. Optimisation - 10 partitions - Id (PK) - horodatage dernière modif - 3 colonnes JSONB “nullables” - Colonne id modulus 10 - clé de partition - Chaque worker lecture travaille sur un modulus - une partition Résultats : - CPU a 20% - I/O a 100% - Un peu plus de 5 minutes pour tout lire - EXPLAIN - Le même seqscan de la partition