Ark for CDC Network API (2.0.0)

Download OpenAPI specification:Download

Ark For CDC HTTP API 문서입니다.

auth

Ark for CDC agent authentication

agent 인증 메시지 (Basic) - Header Format - Authoriza

agent 인증 메시지 (Basic)

  • Header Format
    • Authorization: Basic BASE64({TIMESTAMP}:{DK})
    • {TIMESTAMP} - Epoch 시간
    • {DK} - PBKDF2WithHmacSHA256({PASSWORD}, SALT={TIMESTAMP}, iterations=1024)
    • {PASSWORD} - agent password
header Parameters
Authorization
required
string

basic 인증키

Responses

Response samples

Content type
application/json
{
  • "token": "qb7lu5pruzi734y2"
}

module

Ark for CDC module Related APIs

Ark for CDC module start

Ark for CDC module start

Request Body schema: application/json

module info

type
required
string
name
required
string
required
Array of objects (module_info_options) [ items ]

Responses

Request samples

Content type
application/json
{
  • "type": "string",
  • "name": "string",
  • "options": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

Ark for CDC module stop

Ark for CDC module stop

Request Body schema: application/json

module info

type
required
string
name
required
string
required
Array of objects (module_info_options) [ items ]

Responses

Request samples

Content type
application/json
{
  • "type": "string",
  • "name": "string",
  • "options": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

module state

Ark for CDC module state

query Parameters
type
required
string

module type

name
required
string

module name

data
string
Default: "none"
Enum: "include" "none"

data include or none

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "status": "Waiting/Running/Error/Stopped",
  • "code": "AG-1000",
  • "message": "Module is running.",
  • "start_time": "2020-05-05 14:35:32",
  • "elapsed_time": "15D 11:21:22"
}

module delete

Ark for CDC module delete.

query Parameters
type
required
string

module type

name
required
string

module name

reset_option
string
Default: "no(n)"
Enum: "yes(y)" "no(n)"

reset option yes or no

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

info

Process/Database/Tracing Information Related APIs

response self

자기자신 정보를 응답

Responses

Response samples

Content type
application/json
{
  • "type": "agent",
  • "version": "2.0.0",
  • "os": "linux",
  • "arkcdc_home": "/home/oracle/ARKCDC"
}

All information of ARK FOR CDC modules

현재 동작 중인 모듈 목록

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "modules": [
    ]
}

disk usage

disk별 사용량

query Parameters
type
string
Enum: "extract" "send" "post"

설정파일 타입

name
string

설정파일 name, ex)test

Responses

Response samples

Content type
application/json
{
  • "count": 2,
  • "filesystems": [
    ]
}

getting statistics information

extract, send, post 프로세스의 통계 정보를 제공한다.

query Parameters
type
required
string

module type

name
required
string

module name

Responses

Response samples

Content type
application/json
{
  • "dml": {
    },
  • "ddl": {
    },
  • "tables": [
    ]
}

getting tracingfile list

tracing 파일 리스트를 요청

query Parameters
alias
required
string

module name

path
string

tracing file path

Responses

Response samples

Content type
application/json
{
  • "count": 2,
  • "files": [
    ]
}

특정 extract config의 추출 대상 schema 리스트

특정 extract config의 추출 대상 schema 리스트

query Parameters
extract_module_name
required
string

extract alias

Responses

Response samples

Content type
application/json
{
  • "schemas": [
    ]
}

특정 extract config의 추출 대상 테이블 리스트

추출 대상 중 요청한 schema가 소유한 테이블 리스트

query Parameters
extract_module_name
required
string

extract alias

schema_name
required
string

schema name

Responses

Response samples

Content type
application/json
{
  • "tables": [
    ]
}

database 정보 요청

database 정보 요청

query Parameters
database
string

database 이름

Responses

Response samples

Content type
application/json
{
  • "version_code": 1,
  • "version": "Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production",
  • "dbname": "orcl",
  • "lang": "ko_KR.UTF-8",
  • "characterset": "UTF-8",
  • "timezone": "+09:00"
}

전체 schema 리스트

추출이 불가능한 schema_name은 제외됨

query Parameters
database
string

db conn alias

Responses

Response samples

Content type
application/json
{
  • "schemas": [
    ]
}

특정 schema의 전체 table 리스트

추출이 불가능한 table은 제외됨

query Parameters
database
string

db conn alias

schema_name
required
string

schema name

Responses

Response samples

Content type
application/json
{
  • "tables": [
    ]
}

특정 schema의 전체 sequences 리스트

특정 schema의 전체 sequences 리스트

query Parameters
database
string

db conn name

schema_name
required
string

schema name

Responses

Response samples

Content type
application/json
{
  • "sequences": [
    ]
}

실제 추출 대상 스키마, 오브젝트 리스트

DDL operation: create 0x01, alter 0x02, drop 0x04, truncate 0x08, rename 0x10 해당하는 값을 OR 연산

query Parameters
extract_module_name
required
string

extract module 이름

Responses

Response samples

Content type
application/json
{
  • "dml_objects": {
    },
  • "ddl_objects": {
    }
}

특정 테이블의 column 리스트

query Parameters
database
string

db conn name

schema_name
required
string

schema name

table_name
required
string

table name

Responses

Response samples

Content type
application/json
{
  • "columns": [
    ]
}

transfer

Transfer Related APIs

tracing record 전송 대기요청

request body option 1) tracingfile_dest를 입력하면 입력한 위치에 tracing file 을 저장한다. (상대경로인 경우 $ARKCDC_HOME 아래) 2) security 를 ssl 으로 입력 시 구간암호화 response body option 1) ssl_key 는 요청이 ssl으로 들어왔을 때만 response에 포함된다.

Request Body schema: application/json

alias

alias
required
string
tracingfile_dest
string
security
string

Responses

Request samples

Content type
application/json
{
  • "alias": "test",
  • "tracingfile_dest": "trace",
  • "security": "plain"
}

Response samples

Content type
application/json
{
  • "status": 0,
  • "port": 50000,
  • "ssl_key": "z93mnfo9s93jks9fj3f"
}

command

Command Related APIs

Getting row-count & hash value on the table

특정 테이블의 row 갯수와 전체 값을 대상으로한 해시값을 요청

Request Body schema: application/json
database
string
schema_name
string
table_name
string
option
integer
post_module_name
string

Responses

Request samples

Content type
application/json
{
  • "database": "orcl",
  • "schema_name": "user",
  • "table_name": "insert_test",
  • "option": 1,
  • "post_module_name": "posttest"
}

Response samples

Content type
application/json
{
  • "job_code": "0001_jobname"
}

request totalcompare

table 데이터를 row count와 hash값으로 비교

Request Body schema: application/json
database
string
target_database
string
schema_name
string
table_name
string
ip
string
port
integer
post_module_name
string
object

Responses

Request samples

Content type
application/json
{
  • "database": "orcl",
  • "target_database": "torcl",
  • "schema_name": "user",
  • "table_name": "insert_test",
  • "ip": "192.168.0.1",
  • "port": 50000,
  • "post_module_name": "posttest",
  • "acdsn": {
    }
}

Response samples

Content type
application/json
{
  • "job_code": "0001_jobname"
}

request rowcompare

table 데이터를 row 별로 key, hash값으로 출력

Request Body schema: application/json
database
string
schema_name
string
table_name
string
option
integer
post_module_name
string

Responses

Request samples

Content type
application/json
{
  • "database": "orcl",
  • "schema_name": "user",
  • "table_name": "insert_test",
  • "option": 1,
  • "post_module_name": "posttest"
}

Response samples

Content type
application/json
{
  • "job_code": "0001_jobname"
}

analyze rowcompare result

source, target 간 table의 실제 데이터를 row별로 비교분석

Request Body schema: application/json
source_hash_file
string
target_hash_file
string

Responses

Request samples

Content type
application/json
{
  • "source_hash_file": "extracttest",
  • "target_hash_file": "posttest"
}

Response samples

Content type
application/json
{
  • "job_code": "0001_jobname"
}

request the file

파일 요청

query Parameters
source_path
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Bad Request"
}

파일 수신을 요청

파일 수신을 요청

Request Body schema: application/json
source_path
string
dest_path
string
ip
string
port
integer

Responses

Request samples

Content type
application/json
{
  • "source_path": "data/job_result.txt",
  • "dest_path": "data/job_result.txt",
  • "ip": "192.168.0.1",
  • "port": 50000
}

Response samples

Content type
application/json
{
  • "job_code": "0001_jobname"
}

table scan

table scan

Request Body schema: application/json
database
string
schema_name
string
table_name
string
object
object

Responses

Request samples

Content type
application/json
{
  • "database": "default",
  • "schema_name": "cdctest",
  • "table_name": "test_table",
  • "column_setting": {
    },
  • "condition": {
    }
}

Response samples

Content type
application/json
{
  • "job_code": "0001_jobname"
}

get row data

키 값을 입력받아 키 값에 해당하는 row의 모든 컬럼 정보를 제공한다.

Request Body schema: application/json
database
string
schema_name
string
table_name
string
keys
Array of objects[ items ]

Responses

Request samples

Content type
application/json
{
  • "database": "default",
  • "schema_name": "cdctest",
  • "table_name": "test_table",
  • "keys": [
    ]
}

Response samples

Content type
application/json
{
  • "values": [
    ]
}

config

Config Related APIs

setting the configuration.

config 파일 쓰기 요청, 중복이 허용된 항목들은 예시의 name2와 같이 배열형태로 구성

Request Body schema: application/json
type
string
Enum: "extract" "send" "post"

설정파일타입

name
string

설정파일 alias, ex)test

object

Responses

Request samples

Content type
application/json
{
  • "type": "extract",
  • "name": "string",
  • "value": {
    }
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

getting the configuration.

config 파일 내용 요청, 중복이 허용된 항목들은 예시의 name2와 같이 배열형태로 구성

query Parameters
type
required
string
Enum: "extract" "send" "post"

설정파일 타입

name
required
string

설정파일 name, ex)test

Responses

Response samples

Content type
application/json
{
  • "name1": "value1",
  • "name2": [
    ]
}

delete the configuration.

config 파일 삭제요청

query Parameters
type
required
string
Enum: "extract" "send" "post"

설정파일 타입

name
required
string

설정파일 name, ex)test

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

setting the configuration with text.

config 파일 쓰기 요청, Request body의 value값에 작성한대로 config 파일 쓰기

Request Body schema: application/json
type
string
Enum: "extract" "send" "post"

설정파일타입

name
string

설정파일 alias, ex)test

value
string

config file에 설정할 text

Responses

Request samples

Content type
application/json
{
  • "type": "extract",
  • "name": "string",
  • "value": "DBCONN=\"\";TRACINGALIAS=\"\";..."
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

getting the config list.

config 파일 목록 요청

query Parameters
type
string
Enum: "extract" "send" "post"

설정파일 타입

Responses

Response samples

Content type
application/json
{
  • "count": 6,
  • "config_list": {
    }
}

job

Job Related APIs

job status

agent에서 진행 중인 특정 작업의 상태를 요청

query Parameters
job_code
string

job code

Responses

Response samples

Content type
application/json
{
  • "status_code": 1001,
  • "message": "extracting...",
  • "start_time": "2018-05-05 14:35:32",
  • "end_time": "2018-05-05 14:35:32",
  • "progress": 25,
  • "result": "{\"count\":100, \"hash\":\"5010.234\"}"
}

job stop

agent에서 진행 중인 특정 작업을 중단

Request Body schema: application/json

job code

job_code
required
string

Responses

Request samples

Content type
application/json
{
  • "job_code": "string"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

map

Map file Related APIs

setting the mapfile.

map 파일 쓰기 요청

Request Body schema: application/json
alias
string

map file alias, ex)test

value
string

Contents in an alias map file

Responses

Request samples

Content type
application/json
{
  • "alias": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

getting the mapfile.

map 파일 내용 요청

query Parameters
alias
required
string

map file alias , ex)test.map -> test

Responses

Response samples

Content type
application/json
{
  • "alias": "string",
  • "value": "string"
}

delete the mapfile.

map 파일 삭제요청

query Parameters
alias
required
string

map file alias , ex)test.map -> test

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "Successful"
}

getting the map file list.

map file 목록 요청

Responses

Response samples

Content type
application/json
{
  • "count": 2,
  • "list": [
    ]
}

conn

Database Connection file Related APIs

List of database connection files

데이터베이스 connection 파일 리스트를 반환한다.

Responses

Response samples

Content type
application/json
{
  • "count": 2,
  • "list": [
    ]
}

getting the database connection file info.

데이터베이스 connection 파일 정보를 반환한다.

query Parameters
database
required
string

db connection file name, ex)default

Responses

Response samples

Content type
application/json
{
  • "IP": "172.16.0.170",
  • "PORT": 1521,
  • "DBNAME": "ORA11",
  • "USERNAME": "arkmgr"
}

log

Log Related APIs

gettng the log

특정 프로세스의 로그파일 내용을 요청. 요구한 라인번호으로부터 역으로 일정 라인갯수 만큼의 로그를 반환한다.

query Parameters
type
required
string
Enum: "agent" "pmon" "extract" "send" "post" "recv"

프로세스 타입

name
string

모듈 이름

start
required
integer

라인 번호. -1 인 경우 파일의 끝

Responses

Response samples

Content type
application/json
{
  • "start": 1000,
  • "end": 1004,
  • "strings": [
    ]
}

supplog

Oracle Supplemental logging Related APIs

supplemental logging 이 걸려있는지 체크한다.

Linux/Unix + Oracle only

query Parameters
database
string

db conn alias

table_name
string

table name

schema_name
required
string

schema name

Responses

Response samples

Content type
application/json
{
  • "log_group_info": [
    ]
}

supplemental logging 을 추가한다.

Linux/Unix + Oracle only

Request Body schema: application/json
database
string
schema_name
required
string
table_name
string

Responses

Request samples

Content type
application/json
{
  • "database": "testconn",
  • "schema_name": "cdctest",
  • "table_name": "insert_test"
}

Response samples

Content type
application/json
{
  • "result": 0
}

supplemental logging 을 해제한다.

Linux/Unix + Oracle only

Request Body schema: application/json
database
string
schema_name
required
string
table_name
string

Responses

Request samples

Content type
application/json
{
  • "database": "testconn",
  • "schema_name": "cdctest",
  • "table_name": "insert_test"
}

Response samples

Content type
application/json
{
  • "result": 0
}

Auto Supplemental logging을 설정 또는 해제한다.

Linux/Unix + Oracle Only

Request Body schema: application/json
database
string
schema_name
required
string
auto
boolean

Responses

Request samples

Content type
application/json
{
  • "database": "testconn",
  • "schema_name": "testconn",
  • "auto": "true/false"
}

Response samples

Content type
application/json
{
  • "result": 0
}