태그 테이블 (Tag Table)
개념
태그 테이블은 단 하나의 사용자가 생성할 수 있는 가상의 테이블로서, 센서 데이터 처리를 위한 데이터 저장소 및 관련 부가 정보 관리를 담당한다.
TAG 테이블에서는 아래의 세가지 개념적인 데이터 처리 공간을 제공하며, 세부적인 설명은 다음과 같다.
Sensor Partition
이는 TAG 테이블이 생성될 때 사용자가 정의한 스키마를 기준으로 저장되는 내부 센서 데이터 테이블이다.
이 데이터는 TAG 테이블에 대한 SELECT 질의를 통해서 추출이 가능하다.
고속으로 초당 수만건에서 수십 만건의 센서 데이터를 로딩할 수 있다.
고속으로 초당 수만건의 센서 데이터를 시간 범위의 조건으로 검색할 수 있다.
실시간 압축을 통해 오랜 기간 동안의 센서 데이터를 저장할 수 있다.
시간 순으로 오래된 센서 데이터에 대한 순차적인 삭제가 가능하다.
저장되는 사용자의 센서 데이터는 기본적으로 시계열 데이터로서 해당 태그의 이름과 시간 그리고 64비트 실수 값을 갖는 특정한 데이터형이다.
태그이름(사용자 지정 길이 스트링) | 시간(64비트) | 실수 값(64비트) | (사용자 확장 컬럼들..) |
---|
ROLLUP Partition
이것은 Sensor storage에 저장된 센서 데이터를 바탕으로 자동으로 통계 데이터를 생성하는 내부 테이블이다.
이는 수일 혹은 수년의 긴 시간동안의 통계 데이터를 수초내의 실시간으로 얻을 목적으로 개발되었다.
하나의 Sensor storage 당 Hour, Minute, Second 단위로 3개의 내부 ROLLUP 테이블이 별도로 생성된다.
이 테이블에서는 MIN, MAX, AVG, SUM, COUNT 다섯개의 통계 데이터를 지원한다.
이 ROLLUP 결과값을 얻기 위해서는 TAG 테이블에 대한 SELECT 질의의 Hint 지정을 통해서 가능하다.
META 테이블
이것은 Sensor Storage에 저장될 태그의 이름 및 부가 메타 정보를 저장하는 별도의 테이블이다.
사용자는 이 테이블에 대해 명시적으로 INSERT를 통해 태그의 메타 정보를 등록할 수 있다.
또한, 사용자는 이 테이블에 대한 수정과 삭제도 가능하다.