postgresql...postgres => postgresql licence postgresql droit de utiliser, copier, modifier,...

41
POSTGRESQL POSTGRESQL TOUR D'HORIZON DES FONCTIONNALITÉS, TOUR D'HORIZON DES FONCTIONNALITÉS, NOUVEAUTÉS DE LA VERSION 10 NOUVEAUTÉS DE LA VERSION 10

Upload: others

Post on 08-Oct-2020

43 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

POSTGRESQLPOSTGRESQLTOUR D'HORIZON DES FONCTIONNALITÉS,TOUR D'HORIZON DES FONCTIONNALITÉS,

NOUVEAUTÉS DE LA VERSION 10NOUVEAUTÉS DE LA VERSION 10

Page 2: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

AUTEURAUTEURAdrien NayratConsultant PostgreSQL chez

email : [email protected] : @Adrien_nayratblog :

Licence : Creative Common BY-NC-SAExtraits de formations Dalibo

Dalibo

https://blog.anayrat.info/

Page 3: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

AU MENUAU MENUHistoireIdées reçues sur PostgreSQLFonctionnalitésNouveautés de la version 10Futur

Page 4: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

HISTOIREHISTOIRE1985 : Michael Stonebraker recode Ingrespost « ingres » => postingres => postgrespostgres => PostgreSQLLicence PostgreSQL

Droit de utiliser, copier, modifier, distribuer sans coût delicence

Page 5: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

PRINCIPES FONDATEURSPRINCIPES FONDATEURSSécurité des données (ACID)Respect des normes (ISO SQL)FonctionnalitésPerformancesExtensibilitéSimplicité du code

Page 6: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

1996 : v1.0 -> première version publiée2003 : v7.4 -> première version réellement stable2005 : v8.0 -> arrivée sur Windows2008 : v8.3 -> performance et fonctionnalités2010 : v9.0 -> réplication intégrée2016 : v9.6 -> parallélisation2017 : v10 -> réplication logique

Page 7: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

PROGRESSION DU CODEPROGRESSION DU CODE

Page 8: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

VERSIONSVERSIONSVersions obsolètes : 9.2 et antérieuresVersions actuelles : de 9.3 à 10Version en cours de développement : 11

Page 9: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

NUMÉROTATIONNUMÉROTATIONAvant la version 10

X.Y : version majeure (8.4, 9.6)X.Y.Z : version mineure (9.6.4)

Après la version 10X : version majeure (10, 11)X.Y : version mineure (10.1)

Page 10: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

AU MENUAU MENUHistoireIdées reçues sur PostgreSQLFonctionnalitésNouveautés de la version 10Futur

Page 11: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

QUELQUES IDÉES REÇUESQUELQUES IDÉES REÇUESLentLourd à installerapt install postgresql-10

CompliquéOpensource == Pas de support

Page 12: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

AU MENUAU MENUHistoireIdées reçues sur PostgreSQLFonctionnalitésNouveautés de la version 10Futur

Page 13: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

FONCTIONNALITÉSFONCTIONNALITÉSACID / MVCCSQLPerformancesRéplicationSauvegarde/RestaurationSécuritéExtensibilité

Page 14: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

ACID / MVCCACID / MVCCAtomicité (Atomic)Cohérence (Consistent)Isolation (Isolated)Durabilité (Durable)MultiVersion Concurrency Control

Garantit ACIDGestion de la concurrence

Page 15: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLOpérations DML courantes :

SELECTINSERTUPDATEDELETE

Page 16: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLOpérations DDL :

CREATE/ALTER/DROP/...DDL respecte ACID : transactionnel, durable...

Page 17: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLCTE (2009) :

factoriser des sous-requêtesaméliorer la lisibilité d'une requête

WITH resultat AS ( /* requête complexe */ ) SELECT * FROM resultat WHERE nb < 5;

Page 18: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLCTE RECURSIVE:

WITH RECURSIVE suite AS ( SELECT 1 AS valeur UNION ALL SELECT valeur + 1 FROM suite WHERE valeur < 10 ) SELECT * FROM suite;

Page 19: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLVue matérialiséesContraintes différablesClause LATERALAnalyse de données :

Fonctions de fenêtrageFonctions OLAP GROUPING SETS, CUBE, ROLLUP ...

Page 20: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLTypes

Standards SQL : int, ARRAY, varchar, timestamp, interval...Spécifiques à PostgreSQL : réseau, géométrie, JSONB...Utilisateurs : enum, composite...

Validation des donnéesOpérateurs spécifiquesIndexable!

Page 21: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLFull Text Search

Recherche plein texteRequêtes "google like"IndexableUn seul language : SQL

Page 22: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SQLSQLForeign Data Wrapper

Norme SQL/MED 2008Accès à des données distantes

PostgresOracleTwitter...

Il existe une pléthore de FDW

Page 23: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

PERFORMANCESPERFORMANCESMéthodes d'accès

6 types d'index (7 avec les bloom filter)B-TreeGINHashGiSTSP-GISTBRINBloomExtensible depuis la 9.6!

Index Only Scan

Page 24: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

PERFORMANCESPERFORMANCESAlgorithmes de jointure

Nested Loop (boucle imbriquée)Hash Join (hachage de la table interne)Merge Join (tri-fusion)Parallélisation possible (Depuis 9.6)

Page 25: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

PERFORMANCESPERFORMANCESParallélisation (9.6+)

SeqscanAggregatsJointureIndex Scan...

Page 26: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

RÉPLICATIONRÉPLICATIONPhysique

Réplique les modifications de blocsToute l'instanceAsynchrone / synchroneMulti-secondaireCascadeSecondaire en lecture seule

Page 27: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

RÉPLICATIONRÉPLICATIONLogique

Décodage logique des journaux de transactionPossiblité de sélectionner les tablesAsynchrone / synchroneMulti-secondaireCascadeSecondaire accepte les écrituresDepuis la 10 (infrastructure depuis la 9.4)

Page 28: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SAUVEGARDE/RESTAURATIONSAUVEGARDE/RESTAURATIONPhysique

A chaudIntégralité de l'instancePermet le Point In Time Recovery

Page 29: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SAUVEGARDE/RESTAURATIONSAUVEGARDE/RESTAURATIONLogique

A chaudFlexibleParallélisableDump cohérent malgré les modifications durant lasauvegarde

Page 30: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SÉCURITÉSÉCURITÉDroits sur les objetsDroits de connexionRow Level SecuritySSL

Page 31: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

EXTENSIBILITÉEXTENSIBILITÉExtensions

PostgisIndexFull Text SearchTypes

Page 32: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

AU MENUAU MENUHistoireIdées reçues sur PostgreSQLFonctionnalitésNouveautés de la version 10Futur

Page 33: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

NOUVEAUTÉS DE LA VERSION 10NOUVEAUTÉS DE LA VERSION 10Changements importantsPartitionnementRéplication logiquePerformancesSécurité

Page 34: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

CHANGEMENTS IMPORTANTSCHANGEMENTS IMPORTANTSxlog => walNumérotation de version

Page 35: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

PARTITIONNEMENTPARTITIONNEMENTGestion native

PeformancesAdministration facilitée

Partitionnement par :ListesIntervalles

Page 36: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

RÉPLICATION LOGIQUERÉPLICATION LOGIQUEInfrastructure en 9.4Choix des tables à répliquerPUBLICATION / SUBSCRIPTION

Page 37: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

PEFORMANCESPEFORMANCESGains importants sur les fonctions de hashageOptimisation des trisOptimisations aggrégatsParallélisme étendu à d'autres noeudsStatistiques multicolonnespostgres_fdw : Join et aggregate pushdown

Page 38: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

SÉCURITÉSÉCURITÉAuthentification SCRAM-SHA-256Rôles d'administration

Page 39: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

FUTUR V11?FUTUR V11?Partitionnement par hashage (commité)Parallel Hash Join (commité)Parallel Append (commité)Mise à jour clé partitionnement (commité)Infrastructure JIT (WIP)JSON (Norme SQL 2016) (WIP)tris parallélisés (WIP)Partition pruning (WIP)Statistiques étendues ... étendues (WIP)Covering Btree (WIP)

Page 40: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect

QUESTIONS?QUESTIONS?

Page 41: POSTGRESQL...postgres => PostgreSQL Licence PostgreSQL Droit de utiliser, copier, modifier, distribuer sans coût de licence PRINCIPES FONDATEURS Sécurité des données (ACID) Respect