Toon posts:

PostgreSQL dump

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallow, daar ben ik weer :D
Ik heb de halve google cache al weer doorgelezen, en kan niet echt vinden wat ik wil. Er zijn ongeveer 100000000000 matching records, maar denk dat jullie me wel een handje kunnen helpen.

Ik ben momenteel bezig met PostgreSQL. Heb daar een tabel met wat waardes er in. Alle contents moeten weggeschreven naar de gelijknamige tabel in een andere database, afhankelijk van een key.

Voorbeeld:
tabel 'bla' met velden klantnummer, waarde1, waarde2

als klantnummer==1, dan moet deze row geplaatst worden in tabel 'bla' van de database klant1
als klantnummer==2, dan moet deze row geplaatst worden in tabel 'bla' van de database klant2
etc.

Waarnaar ik dus op zoek ben:
• een methode om met de perl module Pg.pm waardes te escapen voordat ik ze weer importeer
• een variant op pg_dump in perl

Het liefste die pg_dump variant, omdat het ook voor backupdoeleinden handig kan zijn, maar als ik alleen maar een methode heb om alle mogelijk foute tekens te escapen kan ik 't zelf ook wel schrijven.

Ook andere suggesties zijn natuurlijk van harte welkom.

TIA. :)

  • it0
  • Registratie: April 2000
  • Laatst online: 27-12-2025

it0

Mijn mening is een feit.

quotemeta in perl als antwoord op je eerste vraag

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 26 June 2003 @ 14:13:
Hallow, daar ben ik weer :D
Ik heb de halve google cache al weer doorgelezen, en kan niet echt vinden wat ik wil. Er zijn ongeveer 100000000000 matching records, maar denk dat jullie me wel een handje kunnen helpen.
Misschien moet je dan leren zoeken... Want dat is ietsje meer dan het aantal records dat ze in hun database hebben.
Ik ben momenteel bezig met PostgreSQL. Heb daar een tabel met wat waardes er in. Alle contents moeten weggeschreven naar de gelijknamige tabel in een andere database, afhankelijk van een key.
Waarom heb je dat nodig? Dat klinkt als een slecht databaseontwerp/slechte scheiding in meerdere databases.
Waarnaar ik dus op zoek ben:
• een methode om met de perl module Pg.pm waardes te escapen voordat ik ze weer importeer
• een variant op pg_dump in perl

Het liefste die pg_dump variant, omdat het ook voor backupdoeleinden handig kan zijn, maar als ik alleen maar een methode heb om alle mogelijk foute tekens te escapen kan ik 't zelf ook wel schrijven.
Waarom kan je niet gewoon pg_dump gebruiken? Je wilt dus die where in je dumper hebben? Dan zul je het toch echt zelf moeten schrijven, althans bij mijn weten kent pg_dump geen optionele where zoals mysqldump die wel kent.

Je zult het dus zelf moeten schrijven, dat is vrij simpel hoor. Als het goed is levert de postgresql library een functie pg_escape_string aan de omgeving, maar of perl deze ook verder implementeert zul je even uit moeten zoeken, het lijkt me wel.
Die functie escaped alles wat er evt fout kan gaan in postgres.

Verwijderd

Topicstarter
ACM schreef op 26 June 2003 @ 15:20:
[...]

Misschien moet je dan leren zoeken... Want dat is ietsje meer dan het aantal records dat ze in hun database hebben.
okay, overdreven, maar you get the point.
[...]

Waarom heb je dat nodig? Dat klinkt als een slecht databaseontwerp/slechte scheiding in meerdere databases.
Het is ook slecht, maar jah, aan de software die ik er op aan moet sluiten kan ik niets wijzigen. Aan de andere kant is het wel goed voor de snelheid aangezien het in een paar maanden tijd al 3 miljoen records zijn, goed voor anderhalve gig.
[...]

Waarom kan je niet gewoon pg_dump gebruiken? Je wilt dus die where in je dumper hebben? Dan zul je het toch echt zelf moeten schrijven, althans bij mijn weten kent pg_dump geen optionele where zoals mysqldump die wel kent.

Je zult het dus zelf moeten schrijven, dat is vrij simpel hoor. Als het goed is levert de postgresql library een functie pg_escape_string aan de omgeving, maar of perl deze ook verder implementeert zul je even uit moeten zoeken, het lijkt me wel.
Die functie escaped alles wat er evt fout kan gaan in postgres.
en die functie mis ik dus juist in perl (of ik gebruik de verkeerde perl module), anders had ik 't inderdaad al lang geimplementeerd gehad. :(

Tnx anyway

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 26 June 2003 @ 15:34:
Het is ook slecht, maar jah, aan de software die ik er op aan moet sluiten kan ik niets wijzigen. Aan de andere kant is het wel goed voor de snelheid aangezien het in een paar maanden tijd al 3 miljoen records zijn, goed voor anderhalve gig.
Wellicht dat je nog wel het een en ander kan winnen aan goed aanmaken van indices en het netjes "schoonhouden" van je database (met vacuum, (vacuum) analyze en reindex) en het vergroten van parameters als de sort_mem en shared_mem in je postgresql.conf.
en die functie mis ik dus juist in perl (of ik gebruik de verkeerde perl module), anders had ik 't inderdaad al lang geimplementeerd gehad. :(
De DBD::Pg module definieert een quote() methode voor het escapen van de ' en \.

Evt kan je deze ook zelf escapen -> ' wordt '' en \ wordt \\

Verwijderd

Topicstarter
[quote]ACM schreef op 26 June 2003 @ 15:47:
[...]

Wellicht dat je nog wel het een en ander kan winnen aan goed aanmaken van indices en het netjes "schoonhouden" van je database (met vacuum, (vacuum) analyze en reindex) en het vergroten van parameters als de sort_mem en shared_mem in je postgresql.conf.


[...]

De DBD::Pg module definieert een quote() methode voor het escapen van de ' en \.

Evt kan je deze ook zelf escapen -> ' wordt '' en \ wordt \[/quote]

Zijn de ' en \ de enige tekens die geescaped moeten worden dan? Of zijn er meer mogelijk gevaarlijke tekens? Als dit het enige is, kan ik net zo goed een regexp bouwen
Pagina: 1