Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

테이블 종류Tag TableLog TableVolatile TableLookup Table
목적

<아이디,시간,센서값> 형태의 센서 시계열 데이터 처리에 최적화

 PLC 형태 로그 시계열 데이터 처리에 최적화

(텍스트 포함)

휘발성 메모리 데이터  실시간 처리영구 저장 가능한 마스터 데이터 관리
설명

고속으로 센서 데이터를  저장하고,고속으로 해당 데이터를 추출해야 할 경우

또한, 실시간으로 통계 테이블을 생성하고, 이를 활용할 목적으로 저장

UPDATE를 지원하지 않음.

텍스트를 포함한 로그성 데이터를 저장하고, 이를 일반 DBMS 형태로 분석하고자 할 경우 활용

주로, 히스토리성 사용자 데이터를 저장

UPDATE를 지원하지 않음.

Insert, Delete, Update, Select 가 메모리 기반의 성능으로 필요한 경우 사용 (초당 수만건)

시스템 종료시 모든 데이터가 사라지며, 주로 key-value 기반의 모니터링 용도로 활용함.

모든 데이터는 반드시 Primary key를 가져야 하며, 이를 기반으로 동작하는 제약사항이 있음.

사용자의 변경 가능한 주요 마스터 데이터를 영구 저장할 목적으로 사용함.

SELECT 성능은 고속이나 (초당 수십만건), 나머지 INSERT, UPDATE, DELETE는 디스크 기반의 성능을 제공함. (초당 수백건)

모든 데이터는 반드시 Primary key를 가져야 하며, 이를 기반으로 동작하는 제약사항이 있음.

테이블 구조(센서명, 시간, 데이터) 가 기본형임의의 스키마 가능Primary Key를 가진 임의의 스키마 가능Primary Key를 가진 임의의 스키마 가능
INSERT(입력) 성능초당 수천에서 수백만초당 수천에서 수백만초당 만건초당 수백건
질의 종류센서명 + 시간 범위 한정임의의 질의 가능PK 기반의 임의 질의 가능PK 기반의 임의 질의 가능
저장소 크기디스크 한계디스크 한계메모리 한계메모리 한계

Tag 종류 증가에

따른 성능

탁월한 추출 성능성능 저하 발생Not availableNot available
DELETE (삭제)

과거 임의 시점 이전 데이터 실시간 삭제 가능

과거 임의 시점 이전 데이터 실시간 삭제 가능

PK 기준 Record Level Lock 지원

PK 기준 Record Level Lock 지원

UPDATE(변경) 지원지원 불가지원 불가PK 기준 Update 지원PK 기준 Update 지원
INDEX 구조3 단계의 Partitioning 실시간 인덱스LSM 인덱스Red/Black Memory IndexRed/Black Memory Index
STREAM 지원타켓 대상으로만 가능 (저장대상)소스과 타켓 대상 모두 가능 (읽기 및 저장대상)불가능불가능
고려 사항삭제 고려한 충분한 스토리지 확보 필요Tag 입력을 위한 임시 저장소메모리 한계 고려메모리 한계 고려

...

마크베이스는 인덱스가 많으면 많을수록 데이터 입력 성능이 비례적으로 느려지는 전통적인 데이터베이스 구조를 혁신적으로 개선하여, 초당 수십만건의 데이터가 입력되더라도 거의 실시간으로 인덱스를 구성할 수 있다. 이 특징은 실제 실제 데이터가 발생하는 순간의 즉시 검색할 수 있는 강력한 기능적인 토대를 제공해 주기 때문에 머신 데이터와 같은 시계열 데이터 분석에 있어서는 핵심적인 기술이다.

...

머신 데이터와 같은 시계열 데이터의 특징은 끊임없이 데이터가 발생한다는 것이다. 이 사실은 필연적으로 해당 데이터베이스의 저장 공간이 언젠가는 부족해질 뿐만 아니라, 처리해야 할 데이터를 충분하게 보유하지 못한다는 의미이다의미이다.

특히, 전통적인 데이터베이스는 데이터 뿐만 아니라 인덱스가 늘어남에 따라 차지하는 데이터 공간의 급격하게 증가하기 때문에 머신 데이터의 저장과 분석에 매우 부적절한 구조이다.

...

이는 컬럼형 데이터베이스에서 유래한, 머신 데이터의 데이터 중복성을 이용한 것으로서 동일한 값을 갖는 데이터가 많으면 많을수록 데이터의 중복을 코드화하여, 데이터 저장공간을 혁신적으로 줄이는 기술이다. 이를 통해 데이터의 중복성이 높은 데이터에 대해 수백배까지 데이터를 압축할 수 있다.

...

이는 디스크에 저장될 물리적인 데이터 블럭을 미리 일정한 크기의 파티션으로 나누어 압축하여 디스크에 별도로 내림으로써 저장될 물리적 데이터의 량을 줄이고, 더불어 더불어 시스템이 유발시키는 I/O 비용을 급격하게 낮추는 기술이다. 이를 통해 실제 논리적으로 압축된 데이터를 다시한번 더 압축하여 저장 공간의 효율성을 높이는데 일조한다.

...

그러나 embedded 장비의 경우에는 저장 공간의 제약이 분명히 존재할 뿐만 아니라, 사용자에 의해 주의 깊게 관리되지 관리되지 않는 것이 그 특징이다.

이 경우 혹시나 머신 데이터에 의해 Disk full이 발생하거나 장애가 발생하는 것은 기업 입장에서 많은 손해를 감수해야만 감수해야만 한다.

마크베이스는 이런 환경에서 주어진 특정 조건에 레코드를 삭제할 수 있도록 기능을 제공한다.

따라서 embedded 개발사는 CRON 혹은 주기적인 프로그램을 통해서 마크베이스가 일정 크기 이상의 데이터를 유지하지 유지하지 않도록 손쉽게 관리할 수 있다.

사용 예1) 가장 오래된 마지막 100건을 삭제하라.

delete from devices oldest 100 rows;

사용 예2) 최근 1000건을 제외하고 모두 삭제하라.

delete from devices except 1000 rows;

사용 예3) 지금부터 하루치를 남기고 모두 삭제하라.

delete from devices except 1 day;

사용 예4) 2014년 6월 1일 이전의 데이터를 모두 삭제하라.

delete from devices before TO_DATE('2014-06-01', 'YYYY-MM-DD');

자동화된 데이터 수집

마크베이스는 산재해 있는 머신 데이터 로그 파일로부터 데이터를 읽어 자동으로 전송해주는 기능인 "컬렉터" 기능을 제공한다.

이를 통해 syslog나 웹서버 로그 등의 이미 정형화된 데이터를 수집할 수 있을 뿐만 아니라 사용자가 임의로 정의한 로그 포맷의 경우에도 매우 쉽게 변환하여 자동으로 수집할 수 있는 기능을 제공한다.

...