PostgreSQL 9.6.0

La version 9.6.0 de PostgreSQL est publiée aujourd'hui. La fonctionnalité la plus notable de cette version majeure est la parallélisation des requêtes. De nombreuses autres fonctionnalités permettent de travailler sur des volumes de données toujours plus important. Quelques informations sur le site de Loxodata : http://www.loxodata.com/postgresql-9.6.0-publiee

Je reviendrais sur le détail des nouvelles fonctionnalités dans une série de billets à venir.

Dates à retenir

Trois dates à retenir autour de PostgreSQL :

  • 17 mars, à Nantes, un premier meetup, dans lequel j'évoquerai les nouveautés de PostgreSQL 9.5.
  • 31 mars, à Paris, où j'essayerai de remonter le fil du temps de bases de données.
  • 31 mai, à Lille, où je plongerai dans les structures du stockage de PostgreSQL.

Ces trois dates sont l'occasion pour tous de se rencontrer, au-delà du formalisme des présentations, autour de PostgreSQL, pour des sujets plus informels. N'hésitez donc pas à aller à la rencontre des orateurs présents.

Merci d'avance aux organisateurs pour ces moments précieux, et à Loxodata de me permettre d'y participer.

PS: Je ne peux m'empêcher de remarquer qu'il n'y a aucune oratrice lors de ces 3 événements, je suis presque certain qu'il n'y a pas eu une seule proposition de la part d'une oratrice. Je ne peux que le déplorer …

Version 9.5 de PostgreSQL - 3

Une nouvelle version majeure de PostgreSQL est disponible depuis le 7 janvier. Chacune des versions de PostgreSQL ajoute son lot de fonctionnalités, à la fois pour le développeur et l'administrateur. Cette version apporte de nombreuses fonctionnalités visant à améliorer les performances lors du requêtage de gros volumes de données.

Cette présentation en trois billets introduit trois types de fonctionnalités :

Lire la suite...

Version 9.5 de PostgreSQL - 2

Une nouvelle version majeure de PostgreSQL est disponible depuis le 7 janvier. Chacune des versions de PostgreSQL ajoute son lot de fonctionnalités, à la fois pour le développeur et l'administrateur. Cette version apporte de nombreuses fonctionnalités visant à améliorer les performances lors du requêtage de gros volumes de données.

Cette présentation en trois billets introduit trois types de fonctionnalités :

Lire la suite...

Version 9.5 de PostgreSQL

Une nouvelle version majeure de PostgreSQL est disponible depuis le 7 janvier. Chacune des versions de PostgreSQL ajoute son lot de fonctionnalités, à la fois pour le développeur et l'administrateur. Cette version apporte de nombreuses fonctionnalités visant à améliorer les performances lors du requêtage de gros volumes de données.

Cette présentation en trois billets introduit trois types de fonctionnalités :

Lire la suite...

Suivi de l'activité dans PostgreSQL 9.2

Jumelles

La vue pg_stat_activity a évolué dans la version 9.2 de PostgreSQL, ajoutant des informations essentielles, et modifiant des éléments déjà existant. Afin de l'exploiter au mieux, j'ai ajouté une vue dans certaines instances de production, simplifiant son usage.

Lire la suite...

Agrégats avec arguments

Alors que je jouais avec PostgreSQL 9.0, j'ai cherché à obtenir le comportement de l’agrégat string_agg ( second argument pour définir le séparateur ), mais dans les versions 8.3 et 8.4

Lire la suite...

PostgreSQL HS+SR

Je viens de mettre en route notre première instance PostgreSQL 9.0, utilisant la réplication Hot Standby + Streaming Replication, en suivant la doc suivante : http://wiki.postgresql.org/wiki/Binary_Replication_Tutorial.

L'application sera réellement en production lundi prochain. Cette technique implique que le serveur esclave pourra recevoir des requêtes en lecture, ce qui est une grosse nouveauté de PostgreSQL 9.0

2 pétabytes

Yahoo vient d'annoncer qu'ils utilisent PostgreSQL pour stocker 2 pétaoctets de données¹. Ce qui en ferait la plus grosse base de données au monde.

Certes, ils utilisent une version modifiée de PostgreSQL, ils ont retirés le support des transactions, et utilisent un stockage en mode colonne, à la place du traditionnel stockage en mode ligne. De plus, l'éxécuteur de requètes permet d'utiliser plusieurs coeurs de processeur. Mais tout de même, c'est la license et la qualité du code de PostgreSQL qui font qu'il a été choisi.

Il est intérressant d'apprendre que Yahoo va supporter et aider le projet.

Ceci n'aurait pas été possible avec une base de données propriétaire, et montre bien la superiorité du logiciel libre, au code ouvert, sur le logiciel propriétaire.

¹ : Un pétaoctet, c'est mille téraoctets, un million de gigaoctets, un milliard de mégaoctets. Un mégaoctet, c'est un million de caractères, c'est 1 minute de musique au format Ogg-Vorbis, c'est une photo numérique de 4 mégapixels.

PostgreSQL 8.3

PostgreSQL 8.3 est donc sorti lundi dernier, et d'après les premiers tests que j'ai pu faire, cette nouvelle version est vraiment intéressante.

Quelques liens sur le sujet :

Bilan de Solutions Linux 2008

J'étais donc présent sur le stand de l'association PostgreSQLFR pendant les 3 jours du salon Solutions Linux 2008.

Simon Riggs nous à fait l'honneur de sa présence sur notre stand mardi, et nous a montré comment attirer le chaland (entre autres, bien sûr). Nous n'avons pas pu essayer sa méthode mercredi, puisque le stand n'a pas désempli.

Beaucoup de monde est donc venu à notre rencontre, avec des questions et des besoins précis sur PostgreSQL : le constat est clair, PostgreSQL est un outil utilisé par des professionnels. C'est d'ailleurs assez cohérent avec le fait que l'essentiel des membres actifs de l'association utilise PostgreSQL comme outil de travail. Nous avons aussi eu d'autres surprises, dont on reparlera ...

mercredi soir s'est tenu l'assemblée générale de l'association, et outre la bonne ambiance et la bonne bouffe, nous avons décidé de nous lancer dans des projets ambitieux, pour l'année à venir.

Que des bonnes nouvelles, donc, et des mois à venir bien chargés.

Solutions Linux 2008

Je serais présent du 29 au 31 janvier sur le stand de l'association PostgreSQL FR, dans le cadre du salon Solutions Linux 2008, qui à lieu au CNIT à La Défense, à coté de Paris.

Je serais aussi sur le stand de l'éditeur de mon livre, le mercredi 30 de 15h à 16h.

N'hésitez pas à venir parler d'informatique, de Logiciels Libres, et en particulier de PostgreSQL sur le salon.

Google Books

Google indexe un certain nombre de livres publiés habituellement sous la forme de livre papier. C'est le cas pour mon livre sur PostgreSQL. On le trouve en premier lorsqu'on recherche postgresql dans le moteur. L'édition indexée n'est pas celle qui est sortie en octobre, mais la précédente, couvrant la version 8.1 de PostgreSQL.

Les résultats sont partiels, c'est-à-dire que les pages ne sont pas toutes disponibles en ligne, il est donc encore nécessaire d'acheter la version papier.

Script pour Pgfouine

Pgfouine est un outil permettant de comprendre le comportement de PostgreSQL.

On distingue deux tâches :

  • Analyse des traces d'activités
  • Analyse du rapport du nettoyage des tables

Ces taches peuvent être automatisées pour générer des fichiers HTML, par exemple tous les jours avec un planificateur de tache comme crontab.

Le script suivant extrait la liste des bases de données d'un serveur, et lance le nettoyage et les analyses pour chacune de ces bases de données, et termine par une analyse globale des traces d'activités.

pgfouine.sh

#!/bin/sh 

PGUSER=postgres

# Emplacement des fichiers générés
PGFOUINESPOOL=/var/www/pgfouine

# Bases de données à ignorer 
EXCLUDEDBS="postgres template0 template1"

# Bases de données du serveur 
DBS=`psql -A -l -t -U $PGUSER | awk -F"|" '{ print $1 }'`

# Chemin du fichier de traces d'activités
PGLOG=/var/log/postgresql.log 

# Retire les bases de données "systèmes"
for ex in $EXCLUDEDBS 
do
  DBS=`echo $DBS | sed s/$ex//` 
done

# Boucle sur les bases de données
for db in $DBS
do
 # Crée le répertoire de spool
 spool=$PGFOUINESPOOL/$db/ 
 if [ ! -d $spool ]
 then
   mkdir -p $spool 
 fi

 # Nettoyage complet et analyse de la base de données  
 vacuumdb -U postgres -z -f -v $db > $spool/vacuum.log 2>&1

 # Analyse des message de nettoyage et d'analyse 
 pgfouine_vacuum -file $spool/vacuum.log > $spool/vacuum.html

 # Analysee des traces d'activités de la base
 pgfouine -file $PGLOG -database $db -format html-with-graphs -report $PGFOUINESPOOL/$db/pgfouine_report.html=overall,bytype,hourly,slowest,n-mosttime,n-mostfrequent,n-slowestaverage,n-mostfrequenterrors 

done

# Analyse du fichier de logs 
#pgfouine -file $PGLOG -format html > $PGFOUINESPOOL/pgfouine.html 

pgfouine -file $PGLOG -format html-with-graphs -report $PGFOUINESPOOL/pgfouine_report.html=overall,bytype,hourly,slowest,n-mosttime,n-mostfrequent,n-slowestaverage,n-mostfrequenterrors 

PostgreSQL vs. MySQL

On me demande souvent la liste des différences existantes entre PostgreSQL et MySQL. Je vais donc tenter de faire une liste des fonctionnalités existantes dans PostgreSQL, et pas dans MySQL :

  • L'opérateur ||, pour la concaténation de chaines de caractères, qui fait parti du standard SQL.
  • Un type de données booléen.
  • Les contraintes de vérifications sur les colonnes, et sur une table, avec le mot-clé CHECK.
  • Les clés étrangères ne sont présentes qu'avec le moteur de stockage InnoDb.
  • Le fait de pouvoir différer les vérifications des clés étrangères.
  • Les déclencheurs sur les ordres (For each statement), et non pas seulement sur les tuples (For each row).
  • Les ordres DDL compatibles ACID.
  • Les domaines : types de données avec des contraintes.
  • Les aggrégats définis par l'utilisateur.
  • Le choix du langage de procédures stockées : Java, Php, Python, Perl, C, Ruby, Sh, ...
  • Les règles de réecritures des requêtes.
  • Un auto-incrément mutualisé entre plusieurs tables.
  • Des opérateurs et transtypages définis par l'utilisateur.
  • La notion d'espace de noms (schémas). Cette notion est confondue avec celle de base de données dans MySQL, alors qu'elle est bien distincte dans le cas de PostgreSQL.
  • Les espaces de données (tablespace).
  • L'héritage de tables.
  • Les types d'index définis pas l'utilisateur.

Cette liste est dans le désordre, et certainement pas finie...

PostgreSQL, seconde édition

Une seconde édition de mon livre sur PostgreSQL est paru, intégrant les nouveautés de la version 8.2 de PostgreSQL.

Il est toujours disponible aux éditions ENI. Tous les renseignements sur trouvent sur la page qui lui est dédiée.

A noter que la version 8.3 de PostgreSQL est en préparation. Actuellement, la version 8.3 est dans la phase « béta », et est donc disponible pour des tests.

Wooooh

Ca approche : 2746034689

PostgreSQL chez Free

Les Pages Persos du FAI et hébergeur Free.fr viennent de se voir doter d'une nouvelle fonctionnalité : une base de données sous PostgreSQL.

Pour l'activer, il suffit d'aller sur la console d'administration des pages persos, et de cliquer sur « Activer votre base de données PostgreSQL ». Je ne connais pas le délai précis, mais une fois la base activée, il est possible d'y accéder via l'outil phpPgAdmin, l'adresse http://sql.free.fr/phpPgAdmin/. Le nom d'utilisateur et le mot de passe sont ceux du compte des Pages Perso (je l'ai testée avec un compte principal, mais un compte supplémentaire doit fonctionner de la même façon), et le nom de la base de données est aussi celui du compte.

Les scripts Php ont donc aussi l'extension permettant d'utiliser PostgreSQL. Deux versions de Php sont disponible chez Free.fr, mais je ne parviens pas me connecter en Php4. Le même script en Php5 fonctionne. Ce second script montre qu'il s'agit de la version 8.1.4 de PostgreSQL, soit la toute dernière version sortie.

Correction [13/09/2006] : La connexion avec Php4 fonctionne. Une simple erreur de jeunesse, semble-t-il.

La fonction de connexion pg_connect ressemble ça :

$dbconn = pg_connect("host=sql.free.fr port=5432 dbname=comptefree user=comptefree password=passfree");

C'est bien sûr une très bonne nouvelle de voir un excellent logiciel comme PostgreSQL chez un hébergeur grand public comme Free.fr. Ceci montre bien que PostgreSQL est de plus en plus populaire, juste titre. Peut-être que dans quelques semaines, nous verrons PostgreSQL chez Ouvaton ?

Il ne reste plus qu' attendre MySQL chez Cretin.fr, et la boucle sera bouclée :)

Un livre

C'était en cours depuis plusieurs mois, et c'est officiel depuis cette semaine, je commence donc l'écriture d'un livre sur Postgresql 8. Il sera édité aux Editions ENI, qui édite des ouvrages informatiques.

Il n'existe pas, en langue française, d'ouvrage à jour sur Postgresql, les seuls qui existent ne couvrent pas la dernière version du logiciel, la 8, et ne sont pas orienté 'Administration'.

Il fallait donc combler un manque, et ce sera chose faite dans quelques mois.

PostgreSQL

J'animerais la semaine prochaine une formation sur PostgreSQL, chez Anaska : http://www.postgresql.org/about/event.329.

et, la citation de la semaine, de Bruce Momjan :

It was cheaper to pay to add missing features to PostgreSQL than to buy Oracle.