ํ๊ทธ ๋ฉํ (ํ๊ทธ ์ด๋ฆ) ๊ด๋ฆฌ
ํ๊ทธ ๋ฉํ์ ์ ๋ ฅ
์ด์ 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"}]}