/
ํƒœ๊ทธ ๋ฉ”ํƒ€ (ํƒœ๊ทธ ์ด๋ฆ„) ๊ด€๋ฆฌ

ํƒœ๊ทธ ๋ฉ”ํƒ€ (ํƒœ๊ทธ ์ด๋ฆ„) ๊ด€๋ฆฌ

ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ๊ฐœ๋…


ํƒœ๊ทธ ๋ฉ”ํƒ€๋Š” ๋งˆํฌ๋ฒ ์ด์Šค์—์„œ ์ €์žฅ๋  ์ž„์˜์˜ ํƒœ๊ทธ๊ฐ€ ๊ฐ€์งˆ ์ด๋ฆ„๊ณผ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ฆ‰, ํŠน์ • ์žฅ๋น„์— ์กด์žฌํ•˜๋Š” ํƒœ๊ทธ๊ฐ€ 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.

์œ„์˜ ์งˆ์˜๋ฅผ ํ†ตํ•ด์„œ TAG_0001 ์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ–๋Š” ํ•˜๋‚˜์˜ ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค.

ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์ถœ๋ ฅ

๋งˆํฌ๋ฒ ์ด์Šค์—์„œ๋Š” ์ž…๋ ฅ๋œ ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ํŠน๋ณ„ํ•œ ํ…Œ์ด๋ธ”์ธ _tag_meta ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋”ฐ๋ผ์„œ, ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ์˜๋ฅผ ํ†ตํ•ด์„œ ๋งˆํฌ๋ฒ ์ด์Šค์— ์ž…๋ ฅ๋œ ๋ชจ๋“  ํƒœ๊ทธ์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

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

์œ„์˜ ์งˆ์˜๋ฅผ ํ†ตํ•ด์„œ TAG_0001 ์ด๋ผ๋Š” NAME์„ ๊ฐ–๋Š” ํ•˜๋‚˜์˜ ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค.

ID๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ๊ฐ’์œผ๋กœ์„œ ์ž๋™์œผ๋กœ ๋ถ€์—ฌ๋œ๋‹ค.

ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์ˆ˜์ •

๋งˆํฌ๋ฒ ์ด์Šค๋Š” ์ž…๋ ฅ๋œ ํƒœ๊ทธ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด ์ฃผ๋Š”๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฆ„์ด ์ˆ˜์ • ๊ฐ€๋Šฅํ•˜๋‹ค.

Mach> update tag metadata set name = 'NEW_0001' where NAME = 'TAG_0001';
1 row(s) updated.

Mach> select * from _tag_meta;
ID                   NAME                  
----------------------------------------------
1                    NEW_0001              
[1] row(s) selected.

์œ„์™€ ๊ฐ™์ด ์ด๋ฆ„์ด TAG_0001์—์„œ NEW_0001๋กœ ์ˆ˜์ •๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์‚ญ์ œ

์•„๋ž˜์™€ ๊ฐ™์ด ์‹ค์ œ ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์ •๋ณด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

Mach> delete from tag metadata where name = 'NEW_0001';
1 row(s) deleted.

Mach> select * from _tag_meta;
ID                   NAME                  
----------------------------------------------
[0] row(s) selected.

๊ทธ๋Ÿฌ๋‚˜, ์ฃผ์˜ํ•  ์ ์€ ์ด๋ ‡๊ฒŒ ํƒœ๊ทธ ๋ฉ”ํƒ€๊ฐ€ ์‚ญ์ œ๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„,ย  ๊ณผ๊ฑฐ์— ์ž…๋ ฅ๋œ ํƒœ๊ทธ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ด๋‹ค.


์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๊ฐ–๋Š” ํƒœ๊ทธ ๋ฉ”ํƒ€


ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์ƒ์„ฑ

์•„๋ž˜๋Š” ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์ •๋ณด์— 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.

Mach> select * from _tag_meta;
ID                   NAME                  TYPE        CREATE_DATE                     SRCIP           
-------------------------------------------------------------------------------------------------------------
1                    TAG_0001              NULL        NULL                            NULL            
[1] row(s) selected.

์œ„์™€ ๊ฐ™์ด NAME ์™ธ ๋‹ค๋ฅธ ์ปฌ๋Ÿผ์—๋Š” NULL์ด ์ž…๋ ฅ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.


์ด์ œ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์•„๋ž˜์™€ย  ๊ฐ™์ด ๋” ๋„ฃ์–ด ๋ณด์ž.

Mach> insert into tag metadata values ('TAG_0002', 99, '2010-01-01', '1.1.1.1');
1 row(s) inserted.

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.

๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์œ„์™€ ๊ฐ™์ด ๋„ฃ์—ˆ๊ณ , ๊ฐ ํƒœ๊ทธ ๋ฉ”ํƒ€๊ฐ€ ์ฃผ์–ด์ง„ ํ’๋ถ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

ํƒœ๊ทธ ๋ฉ”ํƒ€์˜ ์ˆ˜์ •

์ด์ œ TAG_0001์˜ ํƒ€์ž…์„ NULL์—์„œ 11๋กœ ์ˆ˜์ •ํ•ด ๋ณด์ž.

Mach> update tag metadata set type = 11 where name = 'TAG_0001';
1 row(s) updated.

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.

์œ„์™€ ๊ฐ™์ด ์ˆ˜์ •๋˜์—ˆ๋‹ค.

์ฆ‰,ย  UPDATE ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ๋ชจ๋“  ํ•„๋“œ์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹จ, ๋ฐ˜๋“œ์‹œ WHERE ์ ˆ์— NAME์ด ์ง€์ •๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๊ณตํ†ต์ ์ธ ์ œ์•ฝ ์‚ฌํ•ญ์ด๋‹ค.


RESTful API๋ฅผ ํ†ตํ•œ ํƒœ๊ทธ ๋ฉ”ํƒ€ ์กฐํšŒ


๋ชจ๋“  ํƒœ๊ทธ ๋ฆฌ์ŠคํŠธ ์–ป๊ธฐ

์•„๋ž˜๋Š” ๋งˆํฌ๋ฒ ์ด์Šค ํฌํ•จ๋œ ๋ชจ๋“  ํƒœ๊ทธ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์–ป๋Š” ์˜ˆ์ œ์ด๋‹ค.

Host:~$ curl  -G  "http://192.168.0.148:5001/machiot-rest-api/tags/list"
{"ErrorCode": 0, 
 "ErrorMessage": "", 
 "Data": [{"NAME": "TAG_0001"}, 
          {"NAME": "TAG_0002"}]}
Host:~$


ํŠน์ • ํƒœ๊ทธ์˜ ์‹œ๊ฐ„ ๋ฒ”์œ„ ์–ป๊ธฐ

์•„๋ž˜๋Š” ์›ํ•˜๋Š” ํƒœ๊ทธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Œ ๋ฐ ์ตœ๋Œ€ ์‹œ๊ฐ„ ๋ฒ”์œ„๋ฅผ ์–ป๋Š” ์˜ˆ์ œ์ด๋‹ค.

์ด๊ธฐ๋Šฅ์€ ํŠน์ • ํƒœ๊ทธ์˜ ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆด ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค.

๋ฌธ๋ฒ•

{MWA URL}/machiot-rest-api/tags/range/  # Time Range of whole DB
{MWA URL}/machiot-rest-api/tags/range/{TagName}  # Time Range of a specific Tag

์ „์ฒด ์‹œ๊ฐ„ ๋ฒ”์œ„ย 

Host:~$ curl  -G  "http://192.168.0.148:5001/machiot-rest-api/tags/range/"
{"ErrorCode": 0, 
 "ErrorMessage": "", 
 "Data": [{"MAX": "2018-02-10 10:00:00 000:000:000", "MIN": "2018-01-01 01:00:00 000:000:000"}]}

ํŠน์ • ํƒœ๊ทธ์˜ ์‹œ๊ฐ„ ๋ฒ”์œ„ย 

Host:~$ curl  -G  "http://192.168.0.148:5001/machiot-rest-api/tags/range/TAG_0001"
{"ErrorCode": 0, "ErrorMessage": "", "Data": [{"MAX": "2018-01-10 10:00:00 000:000:000", "MIN": "2018-01-01 01:00:00 000:000:000"}]}
Host:~$
Host:~$ curl  -G  "http://192.168.0.148:5001/machiot-rest-api/tags/range/TAG_0002"
{"ErrorCode": 0, "ErrorMessage": "", "Data": [{"MAX": "2018-02-10 10:00:00 000:000:000", "MIN": "2018-02-01 01:00:00 000:000:000"}]}

Related content