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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-fr-generale by date

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