
PGDay.fr à Toulouse, un succès !

Hier se tenait à Toulouse le premier
PGDay francophone, organisé par l'association
PostgreSQLFr, en partenariat avec
Toulibre. La journée avait évidemment pour thème le serveur de base de données libre
PostgreSQL. Bien que n'étant pas du tout spécialiste du domaine, ni n'ayant un intérêt particulier pour le sujet, j'ai assisté à cet évènement, pour la culture, mais aussi pour filmer les interventions.
Tout d'abord, la logistique de l'évènement fût vraiment remarquable. Les organisateurs ont déniché une salle de bonne taille (~70 places) au Centre Culturel Soupetard, dans le quartier Jolimont à Toulouse. Ensuite, tout y était: la sonorisation avec micro-cravate sans fil, l'accueil avec les badges nominatifs, la petite sacoche aux couleurs des sponsors avec stylos, bloc-note (lui aussi aux couleurs des sponsors) et brochures. Café, thé, jus d'orange et viennoiseries étaient de la partie, ainsi qu'un repas sympathique dans un restaurant le midi. Non, vraiment, au niveau logistique, pour une première édition, c'était très très bien.
Du coté des conférences, il y a aussi eu des interventions vraiment intéressantes, d'autres un peu moins (mais comme dit plus haut, mon point de vue est celui d'un non-utilisateur de PostgreSQL) :
- la première, par Guillaume Smet d'OpenWide, était un retour d'expérience sur l'utilisation de PostgreSQL chez Cityvox, le fameux site d'informations sur les restaurants, théatres, cinéma, concerts et autres. Une présentation chronologique des différentes étapes de la migration de l'ancien système d'informations de Cityvox vers un nouveau, basé sur PHP et PostgreSQL, la montée en puissance du site, les problématiques de pic de visites lors d'évènements comme la Fête de la Musique ou la Saint-Valentin. La présentation résumait une expérience de quatre ans, puisque la migration a été entamée en 2004, et retraçait toutes les évolutions du système d'informations de 2004 à 2008 pour résoudre les différents problèmes rencontrés. Cette expérience me semble être une très bonne carte de visite pour PostgreSQL, qui montre bien les possibilités de la solution dans un environnement assez contraignant. J'ai vraiment beaucoup apprécié cette intervention.
- la seconde, sur PostGIS, m'intéressait puisque je m'amuse un peu avec OpenStreetMap et donc tout ce qui est géographique a tendance à m'interpeller ces derniers temps, même si je ne suis qu'un jeune padawan dans le domaine. Réalisée par une personne de CampToCamp?, une société spécialisée dans la géomatique. L'intervenant a donc présenté PostGIS, une extension de PostgreSQL (visiblement une sorte de plug-in), qui ajoute de nouveaux types de données pour associer des informations géographiques aux informations classiques mais également des opérations. Ainsi, on va pouvoir stocker la localisation géographique d'un point, les coordonnées d'une zone, puis réaliser des opérations comme « Est-ce que le point est dans la zone », « Quelles sont toutes les zones qui touchent cette zone », « Quelles sont les points situés à moins de 10 km de ce point et répondant à tels critères ». Les types de données ont été présentés, puis quelques opérations, exemples d'utilisation, etc. Il a également été question des outils permettant d'utiliser PostGIS? (visualisation et/ou édition, import et export), avec visiblement un certain manque de support de PostGIS? dans les applications propriétaires traditionnelles du monde de la géomatique.
- la troisième, première de l'après-midi, portait sur TinyERP et PostgreSQL, par Christophe Chauvet. C'est sans doute la présentation que j'ai trouvé la moins intéressante de la journée. Après une présentation très générale de TinyERP, sans doute trop générale pour apporter réellement des informations, l'orateur est parti dans une liste de détails/bugs qui affectaient TinyERP en relation avec PostgreSQL. Bref, je n'en ai pas retenu grand chose, mais là encore, ce n'est pas du tout mon domaine d'expertise, donc je suis peut-être passé à coté des choses intéressantes.
- la quatrième portait sur PostgreSQL dans les architectures SIG web et était réalisée par Vincent Picavet de Makina Corpus, société également spécialisé dans les SIG libres. PostGIS était évidemment à l'honneur, au travers de la présentation d'un projet assez remarquable en terme de complexité. Un client (non nommé) de Makina Corpus avait une base de données géographique basée sur des données Télé Atlas de 2004 (Télé Atlas est avec Navtek, un des deux principaux fournisseurs de données géographique dans le monde). Cette base de données avait été enrichie par le client au fil des années avec les nouvelles routes, les modifications de route et autre, mais également enrichie avec ce que les spécialistes appellent apparemment de la « donnée attributaire » (des données sur les données géographiques). Maintenant, le client venait de récupérer des données Télé Atlas de 2008 mises à jour. Il s'agissait donc de fusionner ces nouvelles données avec les données existantes sans perdre toutes les améliorations réalisées par le client, notamment les fameuses données attributaires. Imaginez donc deux graphes d'un réseau routier, à l'échelle de la France entière, dans lesquels les points sont presque au même endroit, mais pas toujours, pas décalés de la même façon, etc.. Et il faut retrouver quel point correspond à quel point, quel segment correspond à quel segment. Ils combinent pour cela trois techniques: la sémantique, la topologie et la géométrie. La sémantique consiste à utiliser le nom des rues pour reconnaître quel segment dans un graphe correspond à quel autre segment dans un autre graphe. La topologie consiste à utiliser la « forme (au sens large, avec les sens de circulation, les intersections) » d'une portion du graphe pour reconnaître un motif similaire dans l'autre graphe. Enfin la géométrie consiste simplement à chercher des points « autour » et essayer de trouver des correspondances. Tout ça est implémenté sous forme de procédures stockées PostgreSQL, les données étant évidemment stockées dans une telle base, grâce à PostGIS. Un projet vraiment impressionnant par sa complexité. D'autres aspects ont été abordés, comme l'import/export de données, l'utilisation de PostgreSQL sous Windows (car le projet suscité se passe sous Windows), etc. Une présentation vraiment très intéressante.
- la cinquième conférence était intitulée « PostgreSQL: utilisation, performance, outils » et était une petite étude/retour d'expérience sur l'utilisation de PostgreSQL dans trois cas: petite base de données (~ 5 Go), base de données plus volumineuse (~ 150 Go) et base de données à fort accès concurrent. L'orateur y a donc partagé son expérience, dans le choix du matériel, la configuration de PostgreSQL pour que ça fonctionne bien, le monitoring pour surveiller l'espace disque, mais aussi le nombre de requêtes, leur durée (pour détecter d'éventuels bugs applicatifs), la réplication et d'autres choses. Un petit ensemble d'astuces, d'idées, d'outils qui constituaient un bon retour d'expérience sur une utilisation plus « raisonnable » de PostgreSQL que celle présentée par Guillaume Smet, et qui correspondra donc à d'autres utilisations, plus courantes peut-être.
- en dernière partie de journée, une série de quatre présentations éclair
- Les deux premières, par Jean-Christophe Arnu puis Ludovic Levesque, portaient sur des solutions de réplication. D'un coté WALs et PITR et de l'autre coté Londiste. Dans PostgreSQL, la réplication entre un serveur maître et un serveur esclave se fait de manière asynchrone: il peut y avoir un delta de plusieurs secondes à plusieurs minutes entre un maître et un esclave. L'esclave peut donc surtout être utilisé en lecture, pour faire par exemple de l'analyse ou des statistiques sur des données qui n'ont pas forcément besoin d'être 100% à jour. La première solution, WALs (Write Ahead Logging) et PITR, repose sur les journaux de transaction de PostgreSQL. Ceux-ci sont stockés par le serveur maître, puis envoyés vers le serveur esclave, où ils sont joués sur la base de données esclave pour qu'elle évolue de la même manière que la base de données maître. Londiste est une autre solution, et Ludovic Levesque présentait son utilisation pour faire la migration d'une version de PostgreSQL vers une autre avec une interruption de service la plus courte possible.
- Une présentation éclair de Thomas Reiss sur l'anonymisation des données. Il travaille pour le Ministère de l'Intérieur, qui manipule donc des données nominatives sensibles, qui ne peuvent pas être transmises à des prestataires. Elles doivent donc d'abord être anonymisées. Au final, ce n'est pas un problème très simple, car il faut que les données gardent leur sens et leur cohérence: cohérence entre code postal et ville, cohérence entre date de naissance, lieu de naissance et numéro de sécurité sociale, etc. Il a donc présenté son approche, réalisée entièrement en procédures stockées PL/SQL.
- Une dernière présentation éclair de Damien Clochard, de la société Dalibo, spécialisée dans PostgreSQL, qui a brièvement présenté le projet de livre blanc PostgreSQL, pour faire connaître cette solution souvent méconnue car ne bénéficiant pas de l'effort marketing d'une grosse entreprise (contrairement à MySQL, il n'y a pas de société derrière PostgreSQL, même si les contributeurs sont évidemment souvent issus d'entreprises).
- Enfin, la journée a été clôturée par Jean-Christophe Arnu, qui est revenu sur les différentes présentations en prenant des citations mettant en avant les atouts de PostgreSQL en terme de performance, de fiabilité, de réactivité de la communauté, etc. Il a également évoqué le futur proche de PostgreSQL avec les nouveautés de la version 8.4.
Au final, cette journée fût vraiment très intéressante. Les vidéos et les slides seront sans aucun doute prochainement mis en ligne.