gloader
데이터베이스에 존재하는 데이터를 테이블 단위로 업/다운로드 하는 툴 입니다.
gloader 를 사용하기 위해서는 데이터 형식을 지정할 수 있는 컨트롤 파일이 필요합니다.
추출(export) 시 컨트롤 파일이 필요하며, 결과물로 데이터 파일과 로그 파일이 생성됩니다.
적재(import) 시 컨트롤 파일과 데이터 파일이 필요하며, 결과물로 로그 파일과 배드 파일이 생성됩니다.
gloader 는 DA 모드 / gloadernet 은 CS 모드 방식으로 데이터베이스에 접속합니다.
gloader 추출/적재를 위한 컨트롤 파일 구성
컨트롤 파일은 직접 작성해야 하며, 다음의 문법으로 구성됩니다.
정보 |
구문 |
생략 시 기본값 |
SCHEMA.TABLE (필수) |
TABLE schema_name.table_name |
|
COLUMN 간의 구분자 |
FIELDS TERMINATED BY |
, |
COLUMN 데이터의 시작과 끝을 알리는 문자 |
OPTIONALLY ENCLOSED BY |
NULL |
ROW 간의 구분자 |
LINES TERMINATED BY |
\n ( new line ) |
CHARACTER SET |
CHARACTERSET |
UTF8 |
공백문자에 대한 Trim 여부 |
RTRIM |
OFF |
|
LTRIM |
OFF |
gloader 추출/적재시 생성되는 파일
데이터 파일
컨트롤 파일에서 지정한 문법으로 데이터가 추출 및 적재 됩니다.
파일 형식으로 텍스트 모드와 바이너리 모드를 지원합니다.
로그 파일
gloader 가 동작중 발생되는 에러 혹은 결과를 기록합니다.
배드 파일
적재 중 에러가 발생한 데이터를 기록합니다.
gloader 옵션 및 설명
Usage gloader user_name password mode control data [format] [options] arguments: user_name user name password password mode: gloader's mode. -e, --export export data -i, --import import data control: -c, --control FILE control file data: -d, --data FILE data file format: -f, --format TEXT or BINARY file format (Default text) options: -l, --log FILE log file -b, --bad FILE bad file -D, --dsn DSN dsn string -a, --array number of array number of rows in bind array (Default 1000) -m, --filesize byte max file size -C, --commit commit unit number of commit unit (Default 5000) -o, --comment comment commenting on commit -A, --atomic use atomic function -p, --parallel thread unit use parallel in import -g, --propagation [on|off] enabling or disabling a redo log propagation -E, --errors error count number of error count to allow (Default 100) -t, --AsTIMESTAMP bind DATE as TIMESTAMP -B, --buffered buffered disk io (Default direct io) -T, --tablename [schema_name.]table_name -F, --fieldterm field terminator -L, --lineterm line terminator -q, --qualifier qualifier(column data encloser) -n --no-copyright suppresses the display of the banner -s, --silent suppresses the display of the result message help: -h, --help print help message
대분류 |
중분류 |
설명 |
mode (필수) |
-e |
데이터 추출 (export) |
|
-i |
데이터 적재 (import) |
control (필수) |
-c FILENAME |
컨트롤 파일 명 입력 |
data (필수) |
-d FILENAME |
데이터 파일 명 입력 |
format |
-f TEXT |
데이터 파일이 텍스트 형식으로 저장 |
|
-f BINARY |
데이터 파일이 바이너리 형식으로 저장 |
options |
-l FILENAME |
로그 파일 명 입력 |
|
-b FILENAME |
배드 파일 명 입력 |
|
-d DSN |
DSN 명 입력 ( 기본값 GOLDILOCKS ) |
-c COMMIT | 적재 시 COMMIT 주기 | |
-p NUMBER | 수행 시 병렬 작업 수 |
gloader 를 사용하여 데이터를 추출하기
PUBLIC.T1 테이블의 데이터를 조회합니다.
gSQL> SELECT * FROM T1; C1 C2 C3 -- ------- ---------- 1 MOZI 2018-07-12 2 TISTORY 2018-07-12 2 rows selected.
컨트롤 파일을 작성합니다.
기본값을 사용하는 경우 TABLE 하위 구문은 작성하지 않아도 가능합니다.
$ cat T1.ctl TABLE PUBLIC.T1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' CHARACTERSET UTF8 RTRIM OFF LTRIM OFF
gloader 를 사용하여 데이터를 추출(export) 합니다.
$ gloader TEST test -e -c T1.ctl -d T1.dat Copyright © 2010 SUNJESOFT Inc. All rights reserved. Release Venus.3.1.15 revision(25159) COMPLETED IN EXPORTING TABLE: PUBLIC.T1, 2 RECORDS
생성된 데이터 파일을 조회합니다.
$ cat T1.dat "1","MOZI","2018-07-12 23:26:16" "2","TISTORY","2018-07-12 23:26:22"
생성된 로그 파일을 조회합니다.
$ cat T1.log COMPLETED IN EXPORTING TABLE: PUBLIC.T1, 2 RECORDS [ Start Time: 2018-7-12 23:29:40 End Time: 2018-7-12 23:29:40 Taken Time: 71948 micro-sec ]
gloader 를 사용하여 데이터를 적재하기
적재하려는 데이터 파일을 조회합니다.
$ cat T1.dat "1","MOZI","2018-07-12 23:26:16" "2","TISTORY","2018-07-12 23:26:22"
데이터 파일 형식에 맞춰 컨트롤 파일을 작성합니다.
기본값을 사용하는 경우 TABLE 하위 구문은 작성하지 않아도 가능합니다.
$ cat T1.ctl TABLE PUBLIC.T1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' CHARACTERSET UTF8 RTRIM OFF LTRIM OFF
gloader 를 사용하여 데이터를 적재(import) 합니다.
$ gloader TEST test -i -c T1.ctl -d T1.dat Copyright © 2010 SUNJESOFT Inc. All rights reserved. Release Venus.3.1.15 revision(25159) COMPLETED IN IMPORTING TABLE: PUBLIC.T1, TOTAL 2 RECORDS, SUCCEEDED 2 RECORDS
배드 파일과, 로그 파일을 확인합니다.
데이터파일에 있는 데이터가 적재되지 않은 경우 T1.bad 파일에 해당 데이터가 기록됩니다.
$ cat T1.bad
$ cat T1.log COMPLETED IN IMPORTING TABLE: PUBLIC.T1, TOTAL 2 RECORDS, SUCCEEDED 2 RECORDS [ Start Time: 2018-7-12 23:30:23 End Time: 2018-7-12 23:30:23 Taken Time: 20077 micro-sec ]
적재된 데이터를 조회합니다.
gSQL> SELECT * FROM T1; C1 C2 C3 -- ------- ---------- 1 MOZI 2018-07-12 2 TISTORY 2018-07-12 2 rows selected.