Spatial Database 유틸리티
Tibero 공간 데이터베이스에서 제공하는 유틸리티 gisLoader와 tibero2shp, shp2tibero의 사용법에 대해 소개합니다.
gisLoader
Tibero Spatial에서는 shapefile 형식으로 되어 있는 공간 데이터를 Tibero로 적재하는 데 사용할 수 있는gisLoader라는 독립 실행형 유틸리티를 제공합니다.
gisLoader 유틸리티는 shapefile 형태로 되어 있는 파일의 데이터를 읽어들여서 tbLoader의 입력이 되는 데이터 파일을 생성합니다. 즉, 사용자는 먼저 gisLoader 유틸리티를 사용하여 shapefile을 tbLoader의 입력 파일로 변환하게 되고, 그 다음 tbLoader를 사용해 최종적으로 공간 데이터를 Tibero에 적재할 수가 있게 됩니다.
shapefile을 구성하는 .shp, .shx, .dbf 파일 중에서 .shx 파일은 gisLoader 유틸리티에서 해석하지 않습니다. 즉, 이 파일에 해당되는 shapefile 정보는 모두 유실됩니다. gisLoader에서 해석이 가능한 shapefile의 shape type은 Null, Point, Polyline, Polygon, Multipoint로 한정됩니다. 이 외의 shape type이 shapefile 내에 존재할 경우 gisLoader 유틸리티는 수행을 멈추고 오류를 출력합니다.
gisLoader가 생성하는 파일은 tbLoader의 입력 파일인 .ctl 파일과 .dat 파일입니다(컨트롤 파일과 데이터 파일). 다만 테이블을 생성할 수 있는 스키마 스크립트 등은 생성해주지 않으므로 사용자는 생성된 컨트롤 파일의 내용을 조회하여 이후 tbLoader를 수행할 때 데이터가 정상적으로 적재될 수 있는지를 먼저 확인해야 합니다. 예를 들어 기존의 테이블이 존재하지 않는 상태라면 데이터를 적재할 테이블을 미리 생성해 놓아야 합니다.
아래는 gisLoader에서 생성한 .ctl 파일의 예제입니다.
LOAD DATA
INFILE 'test_table.dat'
LOGFILE 'test_table.log'
BADFILE 'test_table.bad'
APPEND
INTO TABLE test_table
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
LOBFILE LOAD PARTIALLY DELIMITED BY ';'
GEOMETRY LOAD AS BLOB
(ID, FIPSSTCO, TRACT2000, BLOCK2000, STFID, geom OUTFILE)
적재할 테이블이 존재하지 않을 때 적재가 가능한 테이블은 다음의 create table 문을 통해 생성이 가능합니다.
CREATE TABLE test_table (ID number, FIPSSTCO number, TRACT2000 number,
BLOCK2000 number, STFID number, geom GEOMETRY);
사용법
아래는 gisLoader의 사용법에 대한 설명입니다.
사용법
gisLoader <shapefile name> <table name> <idcol=newcolname> <endian=big/little>
<multipolygon=[default:Y|N]>
shapefile name
이미 존재하는 .shp 파일의 파일 이름을 명시
table name
최종적으로 tbLoader를 통해 데이터를 적재하게 될 데이터베이스의 테이블 이름을 명시
idcol
dbf 파일이 아닌 shp 파일의 record number를 이용하여 생성되는 컬럼의 이름을 명시
생략하면 새로 컬럼을 생성하지 않음
endian
생성되는 GEOMETRY 타입에서 사용될 endian 정보(big/little)를 명시
생략하면 gisLoader를 사용하고 있는 기계의 endian 정보를 사용
endian 정보를 잘못 명시할 경우 에러가 발생하니 주의 필요
multipolygon
.shp 파일의 polygon, multipolygon 타입을 모두 multipolygon 타입으로 변환
생략하면 기본으로 Y가 설정
N으로 설정하면 GEOMETRY 객체 수가 1인 것은 multipolygon이 아니라 polygon 타입으로 생성
ST_NUMGEOMETRIES 함수로 GEOMETRY 객체 수를 확인할 수 있음
예제
gisLoader test.shp test_table idcol=pk endian=little multipolygon=N
tibero2shp
Tibero Spatial에서는 데이터베이스에 직접 연결되어 테이블의 GEOMETRY를 shapefile 형태로 저장 가능한 tibero2shp라는 독립 실행형 유틸리티를 제공합니다.
tibero2shp 유틸리티는 Tibero 쿼리의 결과 GEOMETRY들을 export하여 shapefile을 생성합니다. 쿼리의 결과 GEOMETRY란 테이블의 GEOMETRY 컬럼을 select하거나, 컬럼을 인자로 받아 GEOMETRY를 반환 하는 GEOMETRY 함수의 반환값일 수 있습니다.
Shapefile의 특성상 한 파일에 동일한 타입의 GEOMETRY만을 담을 수 있으므로, 테이블에서 shapefile에 GEOMETRY를 적재할 쿼리의 결과가 일정한 타입의 GEOMETRY가 되어야 합니다.
Shapefile에 적재가능한 GEOMETRY 타입으로는 POINT, MULTIPOINT, LINESTRING, MULTI LINESTRING, POLYGON, MULTIPOLYGON이 있습니다. 적재될 GEOMETRY들의 타입이 POINT와 MULTIPOINT인 경우, shapefile에서 POINT와 MULTIPOINT는 다른 타입으로 분류되므로 위 두 타입은 구분하여 넣어야합니다. LINESTRING이나 POLYGON은 각각 MULTILINESTRING과 MULTIPOLYGON과 함께 적재 될 수 있습니다. LINESTRING이나 POLYGON 타입의 GEOMETRY들이 shapefile에 적재되는 경우에는 각각 MULTILINESTRING, MULTIPOLYGON의 타입으로 쓰여집니다.
사용법
아래는 tibero2shp의 사용법에 대한 설명입니다.
사용법
tibero2shp <option>
<username>/<password>@<database name>
<query>
option
tibero2shp에서 사용할 option을 명시
username
데이터베이스의 사용자 이름을 명시
password
데이터베이스의 사용자 비밀번호를 명시
database name
데이터베이스의 이름을 명시
query
shapefile에 적재할 GEOMETRY를 명시하는 쿼리를 입력
shapefile의 특성상 동일한 타입의 GEOMETRY객체를 명시하는 쿼리여야함
[options]
-f, --file
생성할 shapefile의 파일 이름을 명시하여 설정
입력한 이름에 대한 .shp, .shx, .dbf 세가지의 파일이 생성됨
생성할 shapefile의 경로를 입력할 수 있음
파일의 이름은 입력하고 경로를 입력하지 않을 시 명령을 실행한 경로에 shapefile 이 생성됨
-f 옵션을 사용하지 않을 경우 파일 이름은 shape가 기본값으로 설정됨
-g, --geom
테이블에 다수의 GEOMETRY 컬럼이 다수일 경우 shapefile로 변환할 컬럼을 명시하여 설정
GEOMETRY 컬럼이 다수인데 변환할 컬럼을 명시하지 않은 경우, geom 컬럼에 대해 변환하는 것이 기본으로 설정되어있음
-h, --help
도움말 화면을 출력
예제
tibero2shp -f $TB_HOME/testshape tibero/tmax@tibero
"SELECT GEOM FROM GIS WHERE ST_GEOMETRYTYPE(GEOM)='POLYGON'"
shp2tibero
Tibero Spatial에서는 shapefile 내용을 데이터베이스의 테이블에 적재하는 shp2tibero라는 독립 실행형 유틸리티를 제공합니다.
shp2tibero 유틸리티는 shapefile의 내용에 해당하는 테이블을 생성합니다.
Shapefile이 가질 수 있는 GEOMETRY 타입으로는 POINT, MULTIPOINT, LINESTRING, MULTI LINESTRING, POLYGON, MULTIPOLYGON이 있습니다.
사용법
아래는 shp2tibero의 사용법에 대한 설명입니다.
사용법
shp2tibero <option>
<username>/<password>@<database name>
<shapefile>
option
shp2tibero에서 사용할 option을 명시
username
데이터베이스의 사용자 이름을 명시
password
데이터베이스의 사용자 비밀번호를 명시
database name
데이터베이스의 이름을 명시
shapefile
이미 존재하는 .shp 파일의 파일 이름을 명시
[options]
-t, --table
shapefile을 변환할 테이블 명을 명시하여 설정
-t 옵션을 사용하지 않을 경우 생성될 테이블명은 shapefile명과 같게 설정
-f, --file
생성할 shapefile의 파일 이름을 명시하여 설정
입력한 이름에 대한 .shp, .shx, .dbf 3가지의 파일이 생성
생성할 shapefile의 경로를 입력할 수 있음
파일의 이름은 입력하고 경로를 입력 하지 않을 시 명령을 실행한 경로에 shapefile이 생성
-f 옵션을 사용하지 않을 경우 파일 이름은 shape가 기본값으로 설정
-d, --drop
생성할 테이블과 이름이 같은 테이블이 이미 있는 경우, 기존의 테이블의 삭제 여부를 설정
이 옵션을 활성화할 경우 기존의 테이블이 삭제되고 shapefile로부터 새로운 테이블이 생성
-i, --idcolumn
생성할 테이블의 id 컬럼을 생성하고, 이름을 설정
-e, --endian
생성되는 Geometry type에서 사용될 endian 정보(big/little)를 명시
생략하면 해당 머신 endian 정보를 사용
-p, --polygon
GEOMETRY 객체의 타입을 POLYGON에서 MULTIPOLYGON으로 변환할지를 설정
이 옵션을 활성화하면 POLYGON 타입을 MULTIPOLYGON으로 변환 하지 않음
-h, --help
도움말 화면을 출력
예제
shp2tibero -t tablename tibero/tmax@tibero
testshape
Last updated