database - español - mongodb
Insertar archivos `tsv` en db postgresql (4)
Es triste decirlo, pero la forma más fácil es convertir el TSV a un CSV. La mayoría de las utilidades de importación incorporadas en Postgres para hacer cosas como convertir cadenas vacías en nulas, omitir encabezados, etc. son solo para CSV .
Vea esta simple respuesta de Python de 6 líneas en SO . Lo uso y luego CSV se carga como siempre sin problemas en Postgres después de intentar una hora para cargar un TSV.
Tengo varios archivos que se guardan como tsv. Quiero insertarlos en una postgresql
, para analizarlos con sql.
Sin embargo, mi problema es cómo INSERT
estos archivos tsv en postgresql 9.2
en windows 7
?
¡Aprecio tu respuesta!
PS .: He creado la tabla con los valores correctos como:
CREATE TABLE ratings (distribution VARCHAR, votes VARCHAR, rank FLOAT, title VARCHAR);
el archivo está en el directorio:
C:/Users/testUser/Desktop/TSV/ratings.list.tsv
Para los valores separados por tabulaciones, puede usar COPY:
http://www.postgresql.org/docs/current/static/sql-copy.html
Dependiendo del formato exacto de su archivo, podría ser algo como:
COPY ratings FROM ''C:/Users/testUser/Desktop/TSV/ratings.list.tsv'' DELIMITER ''/t''
Quieres algo como esto:
COPY ratings FROM ''C:/Users/testUser/Desktop/TSV/ratings.list.tsv'' DELIMITER E''/t'';
Se requiere la E''/t''
, de lo contrario obtendrá un error como este:
ERROR: DELIMITADOR para COPIA debe ser un solo carácter de un byte
Si las columnas en su TSV no se alinean perfectamente con su tabla, también puede definir la asignación haciendo lo siguiente:
COPY ratings (column_1, column_2, ... column_n)
FROM ''C:/Users/testUser/Desktop/TSV/ratings.list.tsv''
DELIMITER E''/t'';