태그 테이블 중복제거 설정

중복제거설정

TAG table 생성 시 중복제거 기간을 table property로 전달한다. 중복제거 설정이 가능한 최대 기간은 30일이다.

-- 기존 입력된 데이터 중 1일 이내의 데이터와 중복된 데이터가 입력될 경우 새로 입력된 데이터를 삭제
  
CREATE TAG TABLE tag (name VARCHAR(20) PRIMARY KEY, time DATETIME BASETIME, value DOUBLE SUMMARIZED) TAG_DUPLICATE_CHECK_DURATION=1;

m$sys_table_property에서 중복제거 설정정보를 확인할 수 있다.

SELECT * FROM m$sys_table_property WHERE id={table_id} AND name = 'TAG_DUPLICATE_CHECK_DURATION';

데이터 입.출력 예시(중복제거기간 1일 설정)

-- 입력된 총 6건의 데이터중 4건의 데이터가 중복 이고 그중 1건은 system시간(1970-01-03 09:00:00 000:000:003)으로 부터
-- 1일전 데이터이며 조회시 새로 입력된 데이터중 설정기간(1일)내의 데이터와 중북인 데이터가 출력이 안됨

INSERT INTO tag VALUES('tag1', '1970-01-01 09:00:00 000:000:001', 0);
INSERT INTO tag VALUES('tag1', '1970-01-02 09:00:00 000:000:001', 0);    
INSERT INTO tag VALUES('tag1', '1970-01-02 09:00:00 000:000:002', 0);
INSERT INTO tag VALUES('tag1', '1970-01-02 09:00:00 000:000:002', 1);
INSERT INTO tag VALUES('tag1', '1970-01-03 09:00:00 000:000:003', 0);
INSERT INTO tag VALUES('tag1', '1970-01-01 09:00:00 000:000:001', 0);
    
SELECT * FROM tag WHERE name = 'tag1';
NAME                  TIME                            VALUE                       
--------------------------------------------------------------------------------------
tag1                  1970-01-01 09:00:00 000:000:001 0
tag1                  1970-01-02 09:00:00 000:000:001 0                           
tag1                  1970-01-02 09:00:00 000:000:002 0
tag1                  1970-01-03 09:00:00 000:000:003 0      
tag1                  1970-01-01 09:00:00 000:000:001 0
  

중복제거 제약 사항

  • 테이블 생성 시 중복제거 정책이 설정되면 이후에 변경할 수 없음
  • 중복제거 설정은 일 단위로 설정할 수 있으며 최대 30일까지 설정이 가능함
  • 기존 입력된 데이터가 이미 삭제된 경우 동일한 데이터가 다시 들어와도 중복제거 대상이 아님
최근 업데이트