将包含许多列的CSV导入pgAdmin v4.1

时间:2019-01-23 07:07:54

标签: postgresql csv import pgadmin-4

我是pgAdmin和GIS DB的新手。我想将CSV文件上传到pgAdmin v4.1,并且试图理解这样做的逻辑。我可以通过在所需数据库下创建一个新表,然后手动定义列(名称,类型等)来做到这一点,然后才可以使用GUI将CSV加载到pgAdmin中。导入CSV文件的方法似乎有点麻烦,因为假设我有一个200列的CSV文件,手动定义它们都是不现实的,而且必须有一种方法告诉pgAdmin:这是CSV文件,现在,您自己获取列并获取(或至少假设使用)列类型,并创建一个新表,这与pandas在python中读取CSV的方式非常相似。由于我是这个主题的新手,请尽可能详细地阐述您的答案\评论。

2 个答案:

答案 0 :(得分:1)

:很遗憾,我们只能在创建表格后导入CSV。

是:没有GUI方法,但是:

  1. 有一个名为pgFutter的实用程序,它将完全满足您的要求。这是一个命令行实用程序。 Here are the binaries

  2. 您可以编写一个执行该操作的函数。 Here is an example

答案 1 :(得分:0)

我会考虑使用GDAL将CSV文件上传到Postgis中。 我最近用它来做类似的工作。

ogr2ogr -f "PostgreSQL" -lco GEOMETRY_NAME=geometry -lco FID=gid PG:"host=127.0.0.1 user=username dbname=dbname password=********" postgres.vrt -nln th_new_data_2019 -t_srs EPSG:27700

用于将csv上传到postgis并转换坐标系的代码。

-f =文件格式名称

输出文件格式名称,一些可能的值为:      -f“ ESRI Shapefile”      -f“老虎”      -f“ MapInfo文件”      -f“ GML”      -f“ PostgreSQL

-lco = NAME = VALUE: 图层创建选项(特定于格式)

-nln名称: 为新图层分配一个备用名称

-t_srs srs_def: 目标空间参考集。可以传递的坐标系是OGRSpatialReference.SetFromUserInput()调用支持的任何内容,包括EPSG PCS和GCSes(即EPSG:4296),PROJ.4声明(如上)或包含以下内容的.prj文件的名称众所周知的文字。

我使用的最好和最简单的GDAL安装指南是: https://sandbox.idre.ucla.edu/sandbox/tutorials/installing-gdal-for-windows