Skip site navigation (1) Skip section navigation (2)

Partionnement automatique

From: Baptiste Manson <baptiste(dot)manson(at)inovia-team(dot)com>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Partionnement automatique
Date: 2011-08-30 14:09:44
Message-ID: CAMaQLwCcC6woDGrHiaHA+tvtA6Lc3VyUMd0tXiC_kEm9cCDLeQ@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-fr-generale
Bonjour à tous,

C'est mon premier article dans cette mailing list, alors n'hésitez pas
à me faire vos commentaires si je ne respecte pas l'étiquette.
Nous avons écrit quelques articles sur la mise en place d'un
partionnement automatique :
L'idée est de fournir, pour des applications avec peu de write
(beaucoup de read) des fonctionnalités avancées pour gérer les
partitions et les maintenir.
Nous avons implémenté cela avec un trigger basé sur l'INSERT et sur
une clé fonctionnelle de partionnement.
Voici le code de la fonction concernée :

-- Attach a magic function to the insert of this table:
CREATE OR REPLACE FUNCTION create_partition_and_insert()
RETURNS trigger AS
$BODY$
DECLARE
partition VARCHAR(25);
BEGIN
partition := TG_RELNAME || '_' || NEW.period || ‘p’;
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=partition) THEN
RAISE NOTICE 'A partition has been created %',partition;
EXECUTE 'CREATE TABLE ' || partition || ' (check (period = ''' ||
NEW.period || ''')) INHERITS (' || TG_RELNAME || ');';
END IF;
EXECUTE 'INSERT INTO ' || partition || ' SELECT(' || TG_RELNAME || ' '
|| quote_literal(NEW) || ').*;';
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Voici un article détaillant le processus :
http://blog.inovia.fr/auto-partitioning-on-postgresql-part-1/

Quels inconvénients et avantages voyez vous sur cette méthode ?

Merci de vos retours et longue vie à postgresql !

-- 
Baptiste Manson
Inovia - Paris - www.inovia.fr
http://twitter.com/#!/inoviateam
baptiste(dot)manson(at)inovia-team(dot)com
(mobile) 00+33 6 62 13 82 18
(land)    00+33 1 75 51 37 48

Responses

pgsql-fr-generale by date

Next:From: Cédric VillemainDate: 2011-08-30 16:57:42
Subject: Re: Partionnement automatique
Previous:From: damien clochardDate: 2011-08-29 19:43:31
Subject: Re: Appel à conférences : PGConf.EU 2011

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group