17.3. Lesson: 임포트와 엑스포트

물론, 데이터를 가져오거나 내보내기 힘든 데이터베이스는 쓸모가 없습니다. 다행히도 PostGIS에서 데이터를 쉽게 가져오거나 내보낼 수 있는 도구가 많이 있습니다.

17.3.1. shp2pgsql

shp2pgsql is a commandline tool to import ESRI shapefiles to the database. Under Unix, you can use the following command for importing a new PostGIS table:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> | \
  psql -d <databasename> -h <hostname> -U <username>

Under Windows, you have to perform the import process in two steps:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> > import.sql
psql psql -d <databasename> -h <hostname> -U <username> -f import.sql

You may encounter this error:

ERROR:  operator class "gist_geometry_ops" does not exist for access method
"gist"

사용자가 임포트하는 데이터에 대한 공간 인덱스의 생성 *원위치*와 관련된, 잘 알려진 문제입니다. 이 오류를 피하려면 -I 파라미터를 제외하십시오. 이렇게 하면 공간 인덱스를 자동으로 생성하지 않고, 데이터를 임포트한 뒤 사용자가 데이터베이스에 직접 생성해야 합니다. (다음 강의에서 공간 인덱스 생성에 대해 배울 것입니다.)

17.3.2. pgsql2shp

pgsql2shp is a commandline tool to export PostGIS Tables, Views or SQL select queries. To do this under Unix:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> <databasename> <table | view>

To export the data using a query:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> "<query>"

17.3.3. ogr2ogr

ogr2ogr is a very powerful tool to convert data into and from postgis to many data formats. ogr2ogr is part of the GDAL/OGR Software and has to be installed separately. To export a table from PostGIS to GML, you can use this command:

ogr2ogr -f GML export.gml PG:'dbname=<databasename> user=<username>
        host=<hostname>' <Name of PostGIS-Table>

17.3.4. DB 관리자

You may have noticed another option in the Database menu labeled DB Manager. This is a tool that provides a unified interface for interacting with spatial databases including PostGIS. It also allows you to import and export from databases to other formats. Since the next module is largely devoted to using this tool, we will only briefly mention it here.

17.3.5. In Conclusion

데이터베이스에(서) 데이터를 임포트하거나 엑스포트하는 방법은 여러 가지가 있습니다. 특히 서로 전혀 다른 데이터소스를 이용할 경우, 상시적으로 이 기능들, 또는 다른 비슷한 기능들을 사용하게 될 것입니다.

17.3.6. What’s Next?

다음으로 이전에 생성했던 데이터를 어떻게 쿼리할 수 있는지 알아보겠습니다.