중요

번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.

16.3. 수업: 가져오기와 내보내기

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

16.3.1. shp2pgsql

shp2pgsql은 ESRI 셰이프파일을 데이터베이스로 가져오기 위한 명령줄 도구입니다. 유닉스 환경에서 새 PostGIS 테이블을 가져오려면 다음 명령어를 사용하면 됩니다:

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

윈도우에서는, 가져오기 과정을 두 단계로 수행해야 합니다:

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

다음 오류가 발생할 수도 있습니다:

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

여러분이 가져오는 데이터에 대한 공간 인덱스의 생성 원위치(in situ) 와 관련된, 잘 알려진 문제점입니다. 이 오류를 피하려면 -I 파라미터를 빼십시오. 이렇게 하면 공간 인덱스를 자동으로 생성하지 않고, 데이터를 가져온 다음 여러분이 데이터베이스에 직접 생성해줘야 합니다. (공간 인덱스 생성에 대해서는 다음 수업에서 배울 것입니다.)

16.3.2. pgsql2shp

pgsql2shp는 PostGIS 테이블, 뷰, 또는 SQL 선택 쿼리를 내보내기 위한 명령줄 도구입니다. 유닉스 환경에서 이들을 내보내려면:

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

쿼리를 사용해서 데이터를 내보내려면:

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

16.3.3. ogr2ogr

ogr2ogr는 수많은 데이터 포맷들을 변환해서 PostGIS에 가져오거나 PostGIS에서 내보내기 위한 매우 강력한 도구입니다. ogr2ogr는 GDAL 라이브러리의 일부로써, 개별적으로 설치해줘야 합니다. PostGIS에서 테이블을 GML으로 내보내려면, 다음 명령어를 사용하면 됩니다:

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

16.3.4. DB 관리자

Database 메뉴에 있는 DB Manager 라는 또다른 옵션을 눈치챘을 수도 있겠네요. DB 관리자는 PostGIS를 포함하는 공간 데이터베이스와 쌍방향 작업을 하기 위한 통합 인터페이스를 제공하는 도구입니다. 데이터베이스에 다른 포맷들을 가져오거나 데이터베이스에서 다른 포맷들로 내보낼 수 있게도 해줍니다. 다음 강의에서 이 도구를 중점적으로 사용할 것이기 때문에, 여기에서는 간단하게 언급만 해두겠습니다.

16.3.5. 결론

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

16.3.6. 다음은 무엇을 배우게 될까요?

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