Vous n'êtes pas identifié(e).

#26 Re : Optimisation » valeurs des variables de postgresql.conf et /etc/sysctl.conf » 01/03/2012 18:18:40

Ok, go pour shmmax = 2Go!
C'est un serveur dédié à PostgreSQL, donc il n'y a pas grand risque de toute façon.
Merci pour les éclaircissements

#27 Re : Optimisation » valeurs des variables de postgresql.conf et /etc/sysctl.conf » 01/03/2012 15:54:23

Bonjour, je rebondis sur ce fil car je configure aussi les 2 fichiers postgresql.conf et /etc/sysctl.d/30-postgresql-shm.conf (je suis sous debian).

Je possède 4 Go de Ram. Mes paramètres de conf sont:
max_connections = 100
shared_buffers = 1024MB
#max_prepared_transactions = 0
#wal_buffers = -1
#autovacuum_max_workers = 3
#max_locks_per_transaction = 64

D'après la doc (http://www.postgresql.org/docs/9.1/stat … PARAMETERS), j'ai fixé les 2 paramètres shmmax et shmall à:
kernel.shmmax = 1137327240
kernel.shmall = 277668

Mon calcul est le suivant:
shmmax = ((1800 + 270 * 64) * 100) + ((1800 + 270 * 64) * 3) + ((770 + 270 * 64) * 0) + (8400 * 1 Go / 8192) + (8200 * 1/32 * 1 Go / 8192) + 770 Ko
shmall = ceil (1137327240 / 4096)

J'ai un doute sur le calcul de Shared disk buffers: 8400 * 1 Go / 8192
Si j'applique la définition de la doc ((block_size + 208) * shared_buffers) j'obtiens des octets au carré hmm C'est pourquoi je fait 1 Go / 8192: est-ce le bon calcul?

Merci de vos réponses

#28 Re : Général » COPY FROM avec nombre de colonnes variable » 06/05/2010 17:26:06

Je n'ai pas trouvé mon bonheur avec pgloader (ne veut pas dire qu'il n'y est pas!).

Je vais donc faire 2 fichiers.

#29 Re : Général » COPY FROM avec nombre de colonnes variable » 05/05/2010 13:58:33

gleu a écrit :

Créez une table temporaire avec seulement une colonne. Insérez le contenu de votre fichier dans cette table. Insérez les données de la table en extrayant chaque partie vous intéressant. Plus complexe à mettre en place qu'un bête COPY, mais ne nécessite pas d'outils supplémentaires.

Le problème c'est que sur des grosses tables le temps de traitement va être long. Je voulais profiter du COPY FROM pour éviter le ligne à ligne.

gleu a écrit :

Vous pouvez essayer aussi pgloader.

Je vais tester cette solution basé sur COPY FROM.
Sinon je créerai 2 fichiers, tant pis. Ou le reformatage du fichier pour ne faire qu'un COPY FROM.

Merci pour ces réponses!

#30 Général » COPY FROM avec nombre de colonnes variable » 05/05/2010 11:54:45

saigamp
Réponses : 7

Bonjour,

Je tente d'insérer des données d'un fichier texte vers une table grâce à la commande COPY FROM. L'insertion se passe bien lorsque le nombre de colonnes est bien défini.

Mon problème est le suivant:
Ma table "ma_table" a 4 colonnes: col1, col2, col3, col4 de type varchar(255).
Mon fichier texte (séparateur "|") a la particularité d'avoir des lignes où seules les 2 premières colonnes sont renseignées:

val1|val2
val1|val2
val1|val2
val1|val2|val3|val4
val1|val2|val3|val4

A l'exécution de

copy "ma_table" from '/home/user/mon_fichier.txt' using delimiters '|' null as ''

j'obtiens l'erreur:
ERREUR:  données manquantes pour la colonne « COL3 »
CONTEXT:  COPY ma_table, ligne 1 : « val1|val2 »

Dans la doc officielle, il est précisé "COPY FROM lèvera une erreur si une des lignes du fichier en entrée contient plus ou moins de colonnes qu'attendues."

Je voudrais savoir si quelqu'un a déjà rencontré ce problème ou s'il existe une solution de contournement de cette erreur.
Je ne veux pas créer 2 fichiers, l'un avec les lignes à 2 colonnes et l'autre avec les lignes à 4 colonnes, pour faire ensuite 2 COPY FROM.

Merci

Pied de page des forums

Propulsé par FluxBB