Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 6 Next »

태그 메타의 개념

태그 메타는 마크베이스에서 저장될 임의의 태그가 가질 이름과  부가 정보를 나타낸다.

즉, 특정 장비에 존재하는 태그가 3개라고 한다면, 이 태그를 나타내는 임의의 이름과 관련 부가 정보가 필요한데, 이것을 모두 태그의 메타 정보라고 한다.

이 태그 메타는 최소한 이름이 존재할 수 있으며,  부가적으로 필요하다면 해당 장비에 맞는 다양한 종류의 데이터 타입을 지정할 수 있도록 되어 있다.

이름 만을 갖는 태그 메타 사용 예

태그 메타의 생성

아래는 가장 기본적인 태그 메타가 생성되는 TAG 테이블의 생성 명령어이다.

create tagdata table TAG (name varchar(20) primary key, time datetime basetime, value double summarized);
Mach> desc tag;
[ COLUMN ]                              
----------------------------------------------------------------
NAME                          TYPE                LENGTH        
----------------------------------------------------------------
NAME                          varchar             20                  
TIME                          datetime            31              
VALUE                         double              17                  

위는 기본적인 TAG 테이블을 생성한 것이며, 태그 메타에 대한 별도의 정보는 보여지지 않는다.

이 경우 태그 메타는 VARCHAR(20)의 기본적인 이름 만을 가진다. 

태그 메타의 입력

이제 TAG1 이라는 이름을 갖는 하나의 태그 정보를 입력해 보자.

Mach> insert into tag metadata values ('TAG_0001');
1 row(s) inserted.
Elapsed time: 0.000

위의 Query를 통해서 TAG_0001 이라는 이름을 갖는 하나의 태그를 생성하였다.

태그 메타의 출력

마크베이스에서는 입력된 태그 메타의 정보를 확인하기 위한 특별한 테이블인 _tag_meta 를 제공한다.

따라서, 사용자는 다음과 같은 질의를 통해서 마크베이스에 입력된 모든 태그의 정보를 확인할 수 있다.

Mach> select * from _tag_meta;
ID                   NAME                  
----------------------------------------------
1                    TAG_0001              
[1] row(s) selected.
Elapsed time: 0.001

위의 Query를 통해서 TAG_0001 이라는 NAME을 갖는 하나의 태그를 생성하였다.

ID는 내부적으로 관리되는 값으로서 자동으로 부여된다.

태그 메타의 수정

마크베이스는 입력된 태그 메타 정보를 수정할 수 있도록 해 주는데, 다음과 같이 이름이 수정 가능하다.

Mach> update tag metadata set name = 'NEW_0001' where NAME = 'TAG_0001';
1 row(s) updated.
Elapsed time: 0.001
Mach> select * from _tag_meta;
ID                   NAME                  
----------------------------------------------
1                    NEW_0001              
[1] row(s) selected.
Elapsed time: 0.001

위와 같이 이름이 TAG_0001에서 NEW_0001로 수정된 것을 확인할 수 있다.

태그 메타의 삭제

아래와 같이 실제 태그 메타의 정보를 삭제할 수 있다.

Mach> delete from tag metadata where name = 'NEW_0001';
1 row(s) deleted.
Elapsed time: 0.001
Mach> select * from _tag_meta;
ID                   NAME                  
----------------------------------------------
[0] row(s) selected.
Elapsed time: 0.000
Mach> 

그러나, 주의할 점은 이렇게 태그 메타가 삭제되었다고 하더라도,  과거에 입력된 태그의 실제 데이터가 삭제되는 것은 아니라는 것이다.

추가 정보를 갖는 태그 메타 사용 예

태그 메타의 생성

아래는 태그 메타의 정보에 16비트 정수와 시간 그리고, IPv4 의 정보를 부가적으로 더 추가해서 만들어 본다.

주의할 점은 일단 생성된 태그 메타에 대해 값은 수정할 수 있지만, 그 구조는 수정할 수 없다는 것이다.

create tagdata table TAG (name varchar(20) primary key, time datetime basetime, value double summarized)
metadata (type short, create_date datetime, srcip ipv4) ;

Mach> desc tag;
[ COLUMN ]                              
----------------------------------------------------------------
NAME                          TYPE                LENGTH        
----------------------------------------------------------------
NAME                          varchar             20                  
TIME                          datetime            31              
VALUE                         double              17                  
[ META-COLUMN ]                              
----------------------------------------------------------------
NAME                          TYPE                LENGTH        
----------------------------------------------------------------
TYPE                          short               6               
CREATE_DATE                   datetime            31              
SRCIP                         ipv4                15                  

태그 메타의 입력

이름 뿐만 아니라 부가 정보가 있는 상태에서 아래와 같이 입력해서 정보를 확인할 수 있다.

Mach> insert into tag metadata(name) values ('TAG_0001');
1 row(s) inserted.
Elapsed time: 0.001
Mach> select * from _tag_meta;
ID                   NAME                  TYPE        CREATE_DATE                     SRCIP           
-------------------------------------------------------------------------------------------------------------
1                    TAG_0001              NULL        NULL                            NULL            
[1] row(s) selected.
Elapsed time: 0.001

위와 같이 NAME 외 다른 컬럼에는 NULL이 입력된 것을 알 수 있다.


이제 부가 정보를 아래와  같이 더 넣어 보자.

Mach> insert into tag metadata values ('TAG_0002', 99, '2010-01-01', '1.1.1.1');
1 row(s) inserted.
Elapsed time: 0.001
Mach> select * from _tag_meta;
ID                   NAME                  TYPE        CREATE_DATE                     SRCIP           
-------------------------------------------------------------------------------------------------------------
1                    TAG_0001              NULL        NULL                            NULL            
2                    TAG_0002              99          2010-01-01 00:00:00 000:000:000 1.1.1.1         
[2] row(s) selected.
Elapsed time: 0.002

부가 정보를 위와 같이 넣었고, 각 태그 메타가 주어진 풍부한 정보를 가질 수 있게 되었다.

태그 메타의 수정

이제 TAG_0001의 타입을 NULL에서 11로 수정해 보자.

Mach> update tag metadata set type = 11 where name = 'TAG_0001';
1 row(s) updated.
Elapsed time: 0.001
Mach> select * from _tag_meta;
ID                   NAME                  TYPE        CREATE_DATE                     SRCIP           
-------------------------------------------------------------------------------------------------------------
2                    TAG_0002              99          2010-01-01 00:00:00 000:000:000 1.1.1.1         
1                    TAG_0001              11          NULL                            NULL            
[2] row(s) selected.
Elapsed time: 0.001

위와 같이 수정되었다.

즉,  UPDATE 구문을 통해 모든 필드의 값을 수정할 수 있다.

단, 반드시 WHERE 절에 NAME이 지정되어야 하는 것은 공통적인 제약 사항이다.


  • No labels