Import von DB2: Timestamp-Format passt nicht

Datenbank Migration (z. B. von MySQL auf PostgreSQL)
Antworten
stephan
Neuer Benutzer
Beiträge: 4
Registriert: So 25. Dez 2005, 10:36

Import von DB2: Timestamp-Format passt nicht

Beitrag von stephan »

Hallo,

ich möchte mehrere von DB2 zyklisch erzeugte CSV-Dateien per COPY schnell in die dazugehörigen PostgreSQL-Tabellen importieren - leider kann PostgreSQL das 'seltsame' Timestamp-Format (z.B. 2005-12-24-11.12.59.000000) von DB2 nicht direkt verarbeiten.
Bislang habe ich per Script mit regulären Ausdrücken die CSV-Importdateien angepasst, allerdings dauert dies bei ca. 700.000 Datensätzen einige Zeit, die ich gerne einsparen würde.
Gibt es eine Möglichkeit, dass PostgreSQL das DB2-Timestamp-Format direkt verarbeiten kann ohne das vorher eine Konvertierung notwendig ist?

Gruß, Stephan

fristo
Erfahrener Benutzer
Beiträge: 670
Registriert: Do 8. Dez 2005, 12:30
Wohnort: Raum Frankfurt/Main

Re: Import von DB2: Timestamp-Format passt nicht

Beitrag von fristo »

stephan hat geschrieben:Hallo,

ich möchte mehrere von DB2 zyklisch erzeugte CSV-Dateien per COPY schnell in die dazugehörigen PostgreSQL-Tabellen importieren - leider kann PostgreSQL das 'seltsame' Timestamp-Format (z.B. 2005-12-24-11.12.59.000000) von DB2 nicht direkt verarbeiten.
Bislang habe ich per Script mit regulären Ausdrücken die CSV-Importdateien angepasst, allerdings dauert dies bei ca. 700.000 Datensätzen einige Zeit, die ich gerne einsparen würde.
Gibt es eine Möglichkeit, dass PostgreSQL das DB2-Timestamp-Format direkt verarbeiten kann ohne das vorher eine Konvertierung notwendig ist?

Gruß, Stephan


Hallo Stephan,

jede Datenbank besitzt Formatierungsfunktion für die Darstellung ihrer Daten. Also lass Dir die Formatierung des Timestamps von der DB2 so erstellen, dass Du das Timestamp-Format ohne extra Konvertierung in PostgeSQL einlesen kannst.


mfg
fristo

stephan
Neuer Benutzer
Beiträge: 4
Registriert: So 25. Dez 2005, 10:36

Beitrag von stephan »

Hallo fristo,

danke für Deine Antwort - leider werden die CSV-Dateien von DB2 über die EXPORT-Funktion von DB2 erzeugt und hier ist keine derartige Formatierung möglich.

Trotzdem Danke...

Gruß, Stephan

Xandrian
Erfahrener Benutzer
Beiträge: 1698
Registriert: Mi 23. Nov 2005, 09:17
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von Xandrian »

hi,

was spricht dagegen, ein kleines programm/skript zu schreiben, dass die daten unformartiert?

alternativ wäre vielleicht eine unformartierung mit exel eine lösung.

cu tb
pg-forum.de unterstützen? Meine Wunschliste

Bild

stephan
Neuer Benutzer
Beiträge: 4
Registriert: So 25. Dez 2005, 10:36

Beitrag von stephan »

Hallo Xandrian,

so habe ich es ja bisher auch gemacht (per eigenem Script mit einem eigentlich sehr schnellen Programm namens Minitrue für die Konvertierung) - leider dauert mir die Konvertierung von ca. 700.000 Datensätzen (~ 600 MB) immer noch zu lange, da die Daten "zeitnah" zur Verfügung gestellt werden sollen, d.h. spätestens 10 Minuten nach Anstoss des Exports...

Gruß, Stephan

Xandrian
Erfahrener Benutzer
Beiträge: 1698
Registriert: Mi 23. Nov 2005, 09:17
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von Xandrian »

moin,

ok bei 600 mb dauert ja allein das schreiben bzw der transfer über das netzwerk a weng...

kannst du den export in die csv datei nicht einfach sein lassen und ein programm/skript entwickeln, dass zu beiden db servern einen connect macht und dann in der db2 selektiert und gleich in postgres schreibt?

die performance müsste recht gut sein weil das schreiben auf die hdd weg fällt...

cu tb
pg-forum.de unterstützen? Meine Wunschliste

Bild

stephan
Neuer Benutzer
Beiträge: 4
Registriert: So 25. Dez 2005, 10:36

Beitrag von stephan »

Hi!

Ja, das wird mein nächster Ansatz sein - mal schauen, was das performancemäßig bringt - wäre nur schön gewesen, da die Exportdateien von DB2 eh schon für andere Zwecke bereit gestellt werden...

Die HDD's sind dank 4-fach 512-MB-cached RAID mit 10000er Platten nicht das Nadelöhr - hier ist es das 100er Netzwerk...

Gruß, Stephan

Antworten