Przykład instrukcji załadowania pliku CSV:
LOAD CSV
FROM '/root/pgloader_data.csv'
INTO postgresql://root:password@188.226.251.1/pgloader?pgloader_test(c2,c3)
WITH truncate,
skip header = 0,
fields optionally enclosed by '"',
fields escaped by double-quote,
fields terminated by ','
SET client_encoding to 'utf8',
work_mem to '12MB',
standard_conforming_strings to 'on'
BEFORE LOAD DO
$$ drop table if exists pgloader_test; $$,
$$ create table pgloader_test (
c1 serial,
c2 varchar(20),
c3 integer
);
$$;
Ładujemy dane:
[root@niujork ~]$ pgloader pgloader.load
2014-06-03T14:54:53.046000Z LOG Starting pgloader, log system is ready.
2014-06-03T14:54:53.076000Z LOG Main logs in '/tmp/pgloader/pgloader.log'
2014-06-03T14:54:53.082000Z LOG Data errors in '/tmp/pgloader/'
2014-06-03T14:54:53.083000Z LOG Parsing commands from file #P"/root/pgloader.load"
2014-06-03T14:54:59.686000Z ERROR Database error 22P02: invalid input syntax for integer: "sldkfhg"
CONTEXT: COPY pgloader_test, line 2, column c3: "sldkfhg"
table name read imported errors time
before load 2 2 0 2.701s
------------------------------ --------- --------- --------- --------------
pgloader_test 219175 219174 1 18.568s
------------------------------ --------- --------- --------- --------------
------------------------------ --------- --------- --------- --------------
Total import time 219175 219174 1 21.269s
Ładujemy dane gdzie pierwsza komuna jest varchar, a druga integer. Dla niepoprawnych danych, narzędzie wyświetla błędy ale reszta danych zostanie zaimportowana poprawnie.
Innym dodatkowym atutem jest możliwość ładowania danych z innych systemów bazodanowych: MySQL, SQLite czy dBase, a także odczytywanie danych z plików zarchiwizowanych czy danych o stałej szerokości. Jeśli musicie zaimportować dane do PostgreSQL, to polecam to narzędzie. Może się wam bardzo przydać.
Zainteresowanych odsyłam do dokumentacji tutaj.
Brak komentarzy:
Prześlij komentarz