마크베이스 소개
마크베이스(Machbase)는 다양한 IoT 환경에서 발생하는 대량의 “센서 데이터"를 실시간으로 저장할 뿐만 아니라, 실시간 데이터 분석이 가능한 시계열 데이터베이스이다.
마크베이스는 기존의 솔루션으로는 해결할 수 없었던 센서 데이터에 대한 데이터 저장과 처리에 대한 대량의 부하 문제를 해결하였으며, 다양한 기능을 통해 앞으로 폭증하는 센서 데이터에 대한 훌륭한 솔루션을 제공한다.
새로운 데이터의 출현
최근 정보통신 분야가 유무선 통신에 기반한 사물인터넷(IoT: Internet of Things) 환경으로 발전하고 있으며, 이를 통해 다양하고 방대한 양의 데이터가 축적되고 있다.
따라서 이런 데이터를 실시간으로 분석할 수 있다면 이전에 발생하였거나 앞으로 발생할 수 있는 수많은 장애들을 파악하고 방지할 수 있을 것이다.
특히 몇 년 사이에 데이터를 생성하는 원천 디바이스의 숫자가 급격하게 늘어나고, 이에 뒤따르는 데이터의 발생량도 몇 년 만에 수십 배로 증가하고 있다.
반면 데이터를 처리하는 전통적인 소프트웨어에는 이에 대한 적절한 해결책을 제시하지 못하고 있다.
전통적인 솔루션이 현재 데이터의 처리에 적합하지 않은 이유는 다음과 같다.
첫째, 데이터 발생 속도가 어마어마하게 증가하고 있다.
데이터 원천 소스가 늘어나고 처리해야 할 정보의 종류가 증가함에 따라 서버에 데이터가 저장되는 속도가 기존과는 완전히 다른 속도로 도착하고 있다.
초당 수만 건에서 수십만 건의 데이터를 저장하기 위해 최적화된 소프트웨어 솔루션은 파일 시스템에 일반 Text 파일로 저장하는 것 외에는 해결책이 없는 실정이다.
둘째, 데이터의 발생 속도와 비례하여 실시간 데이터 분석의 수요가 증가하고 있다.
이런 빅데이터를 활용하여 의사 결정에 도움을 주는 것이 매우 중요하지만 기존 솔루션은 초당 수십만 건에 이르는 데이터를 실시간으로 인덱싱하고 검색 및 분석을 통해 결과를 사용자에게 전달하는 기술적 성숙도가 높지 않다.
셋째, 앞에서 언급했던 “센서 데이터"의 데이터 특성이 완전히 다르다.
전통적인 데이터베이스는 센서형 머신 데이터를 처리하기에 부적당한 아키텍쳐를 가지고 있으며, 이를 해결하기 위해서는 기술적으로 새로운 접근이 필요하다.
이런 이유로 마크베이스는 새로운 형태의 “센서형 머신 데이터"를 처리하는 최고의 아키텍쳐를 통해 새롭게 개발되었으며, 전통적인 기술로 해결하지 못했던 실시간 데이터에 대한 저장과 처리 및 분석이 가능한 유일한 데이터베이스 솔루션이다.
센서 데이터의 형태
ID | Time | Data |
---|---|---|
Temperature01 | 2020-01-01 00:00:00 | 20 |
Pressure01 | 2020-01-01 00:00:00 | 0.98 |
ID
이 값은, 해당 머신 데이터가 발생한 디바이스(원천 소스)의 유일성을 나타내는 기호 및 숫자를 나타낸다. 해당 머신이나 센서의 일련 번호로 구성되며 32비트 혹은 64비트의 정수로 표현된다
TIME
이 값은, 해당 머신 데이터가 발생한 순간의 시간을 나타낸다. 이 시간은 지속적으로 증가하는 경향이 있으며, 일반적으로 초 단위까지 표현하고 특별한 경우 나노초(nanosecond)까지 표현되기도 한다.
DATA
이 값은, 2진 데이터로 주로 정수형, 실수형 숫자 혹은 IP 주소값 등의 형식의 데이터이다. 대표적으로 이 영역에는 특정 센서에서 나오는 온도, 가속도, 밝기 등의 숫자형 값이나, IPv4 혹은 IPv6와 같은 4바이트 혹은 16 바이트의 고정 데이터가 포함된다.
마크베이스는 Tag Table을 제공하여, 위 형태의 센서 데이터를 초당 수십만건을 받아들일 수 있는 최적화된 아키텍처를 제공한다.
PLC에서의 센서 데이터 구조
data from PLC
Time SN01M SN02M SN03M SN04M SN05M SN06M SN07M SN08M SN09M SN10M
04:01:56.005 11.1 1 0 0 0 1 0 0 0 0
04:01:56.057 11.3 1 0 0 0 1 0 0 0 1
04:01:56.109 11.1 1 0 1 0 1 0 1 1 0
04:01:56.161 12.3 1 0 0 0 1 0 0 0 1
04:01:56.213 9.1 1 1 0 0 1 0 0 0 0
04:01:56.266 0.9 1 0 0 1 1 0 0 0 0
04:01:56.319 8.9 1 0 1 0 1 0 1 0 1
04:01:56.370 1.3 1 0 0 0 1 0 0 0 0
04:01:56.422 33.1 1 0 0 0 1 0 0 0 0
04:01:56.474 3.3 1 0 0 0 1 0 0 0 0
04:01:56.526 5.6 1 0 0 1 1 0 0 0 1
04:01:56.578 5.5 1 0 0 0 1 0 0 1 0
04:01:56.630 4.5 1 0 0 0 1 0 0 0 0
04:01:56.682 5.3 1 0 0 0 1 0 0 0 0
04:01:56.733 1.2 1 0 0 0 1 0 0 0 1
04:01:56.785 3.4 1 0 0 1 1 0 0 0 0
04:01:56.838 11.3 1 0 1 0 1 0 1 0 0
04:01:56.890 11.2 1 0 0 0 1 0 0 0 0
04:01:56.942 9.9 1 0 0 0 1 0 0 0 1
04:01:56.994 8.4 1 0 0 0 1 0 0 0 0
04:01:57.046 8.4 1 0 1 0 1 0 0 0 0
04:01:57.097 1.2 1 0 0 1 1 0 1 1 1
04:01:57.149 1.3 1 0 0 0 1 0 0 0 0
04:01:57.200 11.2 1 0 0 0 1 0 0 0 0
04:01:57.252 3.1 1 0 0 0 1 0 0 0 0
마크베이스는 Log Table을 제공하여, 위와 같은 형태의 PLC 데이터를 저장할 수 있는 구조 또한 제공한다.
이 테이블 역시 초당 수만건의 데이터를 입력하고, 분석할 수 있는 능력을 제공한다.