사용자는 사용할 TAG라는 이름의 테이블을 명시적으로 생성하여야 하며, 이후에 이 테이블을 조작함으로써 센서데이터를 다양한 형태로 활용할 수 있다.
최초 데이터베이스가 설치된 경우에는 TAG 테이블이 없으므로 유의한다.
TAG 테이블은 기본적으로 사용자의 센서 데이터를 저장하기 위한 목적이므로, 반드시 아래의 세가지 필수 항목은 반드시 포함되어야 한다.
- 이름
- 입력 시간
- 값
그러나, 마크베이스의 TAG 테이블은 위의 세가지 뿐만 아니라 부가 컬럼의 입력도 허용하기 때문에 위의 필수 컬럼을 위한 키워드를 동반한다.
- 태그 이름 : primary key
- 태그 입력 시간 : basetime
- 태그 값 : summarized
그리고, 이 태그 이름은 다음 장에 설명될 태그 메타 정보로서 활용된다.
기본 태그 테이블 생성
가장 간단한 태그 테이블은 아래와 같이 생성된다.
dddMach> create tagdata table TAG (name varchar(20) primary key, time datetime, value double); [ERR-02253: Mandatory column definition (PRIMARY KEY / BASETIME / SUMMARIZED) is missing.] ==> 위와 같이 키워드를 넣지 않으면, 위와 같은 에러가 발생한다. Mach> create tagdata table TAG (name varchar(20) primary key, time datetime basetime, value double summarized); Executed successfully. Elapsed time: 0.643 Mach> desc tag; [ COLUMN ] ---------------------------------------------------------------- NAME TYPE LENGTH ---------------------------------------------------------------- NAME varchar 20 TIME datetime 31 VALUE double 17
즉, TAG 라는 이름을 가진 테이블이 생성되었다.
성능 향상을 위해 4개의 파티션으로 나뉘어진 내부 테이블이 생성된다.
성능 및 메모리 사용량 조절을 위한 파티션 지정
파티션 갯수가 디폴트로 4개로 설정되어 있는데, 만일 메모리 및 CPU 사용량을 조절하려는 목적으로 이 갯수를 다음과 같이 지정해서 조절할 수 있다.
부가 프로퍼티 tag_partition_count 에 해당 값을 넣어서 생성한다.
이 값이 커지면, 병렬성이 높아져서 성능이 좋아지지만, 메모리 사용량이 늘어나고, 함께 ROLLUP 생성을 위해 CPU 사용량도 함께 늘어난다.
Mach> create tagdata table TAG (name varchar(20) primary key, time datetime basetime, value double summarized) tag_partition_count=1; Executed successfully. Elapsed time: 0.473 Mach>
메모리 및 CPU 사용량의 최소화 하기 위한 목적으로 1으로 설정하는 예이다.
태그 부가 컬럼의 지정
실제로 TAG 테이블을 활용할 때 단지 3개의 컬럼만으로는 주어진 문제를 해결하기 힘든 경우가 있다.
특히, 입력되는 센서 데이터의 정보가 이름과 시간, 값 뿐만 아니라 특정 그룹이나 인터넷 주소의 경우도 있기 때문에 아래와 같이 추가할 수 있다.
Mach> create tagdata table TAG (name varchar(20) primary key, time datetime basetime, value double summarized, grpid short, myip ipv4) ; Executed successfully. Elapsed time: 0.633 Mach> desc tag; [ COLUMN ] ---------------------------------------------------------------- NAME TYPE LENGTH ---------------------------------------------------------------- NAME varchar 20 TIME datetime 31 VALUE double 17 GRPID short 6 <=== 추가됨. MYIP ipv4 15 <=== 추가됨