PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Importowanie spakowanego pliku CSV do PostgreSQL

Istnieje stara sztuczka z użyciem nazwanego potoku (działa na Uniksie, nie wiem o Windowsie)

  • utwórz nazwany potok:mkfifo /tmp/omyfifo
  • zapisz do niego zawartość pliku:zcat mycsv.csv.z > /tmp/omyfifo &
  • [z psql] copy mytable(col1,...) from '/tmp/omyfifo'
  • [po zakończeniu] :rm /tmp/omyfifo

zcat w tle zablokuje się aż do czytnika (tutaj:COPY polecenie) rozpocznie czytanie i zakończy się na EOF. (lub jeśli czytnik zamknie rurkę)

Możesz nawet uruchomić wiele par rur + zcat, które zostaną odebrane przez wiele COPY instrukcji w skrypcie sql.

Będzie to działać z pgadmin, ale kolejka fifo (proces + zcat) powinna być obecna na maszynie, na której działa serwer DBMS.

BTW:podobna sztuczka przy użyciu netcata może być użyta do odczytania pliku ze zdalnej maszyny (która oczywiście powinna zapisać plik do gniazda sieciowego)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć użytkownika w PostgreSQL

  2. Czy PostgreSQL obsługuje przezroczystą kompresję tabel (fragmentów)?

  3. Jak używać struktury danych pierścienia w funkcjach okien

  4. Aktualizacja Postgresql z dołącz

  5. Wczesne rejestracje ptaków otwarte na PGDay.IT 2011