태그 테이블 동작 개념도
태그 테이블은 단 하나의 사용자가 생성할 수 있는 가상의 테이블로서 센서 데이터 처리를 위한 데이터 저장소 및 관련 부가 정보 관리를 담당한다.
TAG 테이블에서는 아래의 세가지 개념적인 데이터 처리 공간을 제공하며, 세부적인 설명은 다음과 같다.
- Sensor storage :
- 이는 TAG 테이블이 생성될 때 사용자가 정의한 스키마를 기준으로 저장되는 내부 센서 데이터 테이블이다.
- 이 데이터는 TAG 테이블에 대한 SELECT 질의를 통해서 추출이 가능하다.
- ROLLUP
- 이것은 Sensor storage에 저장된 센서 데이터를 바탕으로 자동으로 통계 데이터를 생성하는 내부 테이블이다.
- 하나의 Sensor storage 당 Hour, Minute, Second 단위로 3개의 내부 ROLLUP 테이블이 별도로 생성된다.
- 이 테이블에서는 MIN, MAX, AVG, SUM, COUNT 다섯개의 통계 데이터를 지원한다.
- 이 ROLLUP 결과값을 얻기 위해서는 TAG 테이블에 대한 SELECT 질의를 통해서 가능하지만, 반드시 Hint 기능을 통해 원하는 통계 종류와 태그를 명시해야 한다.
- TAG META
- 이것은 Sensor Storage에 저장될 태그의 이름 및 부가 메타 정보를 저장하는 별도의 테이블이다.
- 사용자는 이 테이블에 대해 명시적으로 INSERT를 통해 태그의 메타 정보를 등록할 수 있다.
- 또한, 사용자는 이 테이블에 대한 수정과 삭제도 가능하다.
사용자는 TAG라는 이름의 테이블을 접근함으로써 아래와 같은 기본적인 동작을 수행한다.
- 고속으로 초당 수만건에서 수십만건의 센서 데이터를 로딩할 수 있다.
- 고속으로 초당 수만건의 센서 데이터를 시간 범위의 조건으로 검색할 수 있다.
- 실시간 압축을 통해 오랜 기간 동안의 센서 데이터를 저장할 수 있다.
- 시간순으로 오래된 센서 데이터에 대한 순차적인 삭제가 가능하다.
- ROLLUP 테이블 개념을 통해 입력된 센서 값에 대한 실시간 통계 값을 제공한다.
- 이 통계는 평균, 최소, 최대, 갯수,합계 5개에 대해 제공한다. (마크베이스 5.2 기준)
- 사용자는 SELECT 질의 문을 통해 실시간으로 생성되는 이 통계 값을 임의의 시간 범위에 따라 수 초 내로 얻을 수 있다.
- 태그 메타 정보 기능을 통해 특정 태그에 대한 부가 정보를 기록하고 이를 변경, 삭제할 수 있다.
저장되는 사용자의 센서 데이터는 기본적으로 시계열 데이터로서 해당 태그의 이름과 시간 그리고 64비트 실수 값을 갖는 특정한 데이터형이다.
태그이름(사용자 지정 길이 스트링) | 시간(64비트) | 실수 값(64비트) | (사용자 확장 컬럼들..) |
---|