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

Post on 08-Oct-2020

45 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

AUTEURAUTEURAdrien NayratConsultant PostgreSQL chez

email : adrien.nayrat@dalibo.comtwitter : @Adrien_nayratblog :

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

Dalibo

https://blog.anayrat.info/

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

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

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

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

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

PROGRESSION DU CODEPROGRESSION DU CODE

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

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)

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

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

CompliquéOpensource == Pas de support

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

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

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

Garantit ACIDGestion de la concurrence

SQLSQLOpérations DML courantes :

SELECTINSERTUPDATEDELETE

SQLSQLOpérations DDL :

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

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;

SQLSQLCTE RECURSIVE:

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

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

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

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!

SQLSQLFull Text Search

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

SQLSQLForeign Data Wrapper

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

PostgresOracleTwitter...

Il existe une pléthore de FDW

PERFORMANCESPERFORMANCESMéthodes d'accès

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

Index Only Scan

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)

PERFORMANCESPERFORMANCESParallélisation (9.6+)

SeqscanAggregatsJointureIndex Scan...

RÉPLICATIONRÉPLICATIONPhysique

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

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)

SAUVEGARDE/RESTAURATIONSAUVEGARDE/RESTAURATIONPhysique

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

SAUVEGARDE/RESTAURATIONSAUVEGARDE/RESTAURATIONLogique

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

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

EXTENSIBILITÉEXTENSIBILITÉExtensions

PostgisIndexFull Text SearchTypes

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

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

CHANGEMENTS IMPORTANTSCHANGEMENTS IMPORTANTSxlog => walNumérotation de version

PARTITIONNEMENTPARTITIONNEMENTGestion native

PeformancesAdministration facilitée

Partitionnement par :ListesIntervalles

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

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

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

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)

QUESTIONS?QUESTIONS?

top related