Kopiowanie
Tweet
Czym jest kopiowanie
Postgres posiada kilka świetnych narzędzi do przenoszenia danych. Oczywistymi są pg_dump i pg_restore do wykonywania kopii zapasowych i przywracania bazy danych. Podobnym narzędziem, o którym mniej się mówi, ale równie cennym, jest narzędzie copy. Copy pozwala na dokopiowanie danych do i z tabel w bazie danych. Obsługuje kilka trybów, w tym:
- binarny
- tab delimited
- csv delimited
Czy to do masowego ładowania danych do testowania, robienia lekkiego ETL, czy po prostu pobierania ekstraktu danych do wysłania komuś, to narzędzie, które każdy programista będzie chciał wykorzystać w pewnym momencie.
Kopiuj w akcji
Wyodrębnianie wszystkich pracowników do pliku tab delimitowanego:
\copy (SELECT * FROM employees) TO '~/employees.tsv';
Wyodrębnianie wszystkich pracowników do pliku csv delimitowanego:
\copy (SELECT * FROM employees) TO '~/employees.csv' WITH (FORMAT CSV);
Wyodrębnienie wszystkich pracowników do pliku binarnego (zwróć uwagę na cudzysłów wokół słowa Binary):
\copy (SELECT * FROM employees) TO '~/employees.dat' WITH (FORMAT "Binary");
A w przypadku wczytywania danych do tabeli odpowiednik dla każdego z powyższych:
\copy employees FROM '~/employees.tsv';\copy employees FROM '~/employees.csv' WITH CSV;\copy employees FROM '~/employees.dat' WITH BINARY;