Articles

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;

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *