Posting

Machbase의 최신 소식을 지금 만나보세요

사물을 위한 데이터베이스 – 2/2

대량의 데이터의 실시간 처리 문제

앞서 논의한 것과 같이, 많은 수의 센서에서 발생되는 데이터들은 시계열(Time Series)의 특성을 가지며 Historical하게 저장됩니다.

단일 시스템에서 동작하는 DBMS의 경우 저장 기간이 길어질수록 색인 및 검색 성능은 악화될 수 밖에 없고, 중단 없는 수집과 저장을 유지하는 것도 어렵습니다. 마침내 PB단위에 달하는 데이터 처리 자체가 불가능한 DBMS의 한계를 극복하고자 Hadoop과 같은 Bigdata 플랫폼들이 등장하게 되었습니다.

하지만 Map Reduce와 같은 분산 처리의 경우에도 배치 처리(분산 저장과 검색)에 최적화되어 있어서 실시간 데이터 분석에는 한계가 있습니다.

즉, IoT 센서 데이터에 대한 실시간 처리를 위한 새로운 방법이 필요합니다. 

질의 언어

IoT 센서 데이터에는 정형 데이터(Structured data) 뿐만 아니라 반정형 데이터(Semi-structured data)도 많이 있습니다. 정형 데이터의 경우 SQL이 대표적인 질의 언어로 사용 되고 있지만, 반정형 데이터를 위한 질의 언어는 통일되어 있지 않습니다.

물론 Big data 시스템이 도입되면서 No-SQL 질의 언어들이 등장했지만, 여전히 다양한 이질적 언어들이 혼용되고 있습니다. 결국 Spark, Impala 등의 SQL on Hadoop 제품들이 보급되면서 다시 SQL 질의 언어를 많이 사용하고 있는 추세입니다.

인터페이스

SQL언어를 지원하는 DBMS는 ODBC/JDBC등의 전통적 인터페이스를 제공하지만, Operational Historian제품들은 REST API를 통해 HTTP 프로토콜을 통한 JSON 기반의 질의 인터페이스를 많이 사용합니다.

많은 운영 환경들이 WEB 기준으로 이동하면서 사용이 편리한 REST API는 반드시 지원해야 할 인터페이스가 되었습니다. 

트랜잭션 처리

초당 1000억건 이상의 데이터를 실시간으로 처리해야 하는 분산 데이터 시스템에서 트랜잭션(e.g. ACID,  Two-phase locking)은 수행되기 어렵습니다. 시계열 데이터는 완전 삭제 전까지 갱신 연산이 없기 때문에, 완벽한 ACID를 기반으로 하는 RDBMS의 트랜잭션 처리는 성능 문제를 야기합니다.

방대한 IoT 데이터를 실시간으로 처리하는 데 있어서, 전통적인 ACID 기반 트랜잭션 보다 시계열 데이터의 특징을 반영한 새로운 효율적 데이터 처리 기법이 요구되고 있습니다.

시계열 데이터 통계 처리

시계열 데이터는 sum, count, avg, sampling 등의 통계연산이 빈번하게 필요합니다. 이들 통계값은 시각화와 고급 분석을 위해서 사용됩니다.

RDBMS는 대량의 데이터를 실시간으로 입력하면서 동시에 통계 작업을 수행하는 것이 매우 어렵기 때문에, 최근에는 Stream DB가 새롭게 주목받고 있습니다.

IoT 데이터에 최적화된 Machbase

Machbase Database는 IoT 데이터 처리에서 요구하는 성능과 기능들을 충족하는 유일한 데이터베이스입니다.

  1. 실시간 대량 데이터 처리 
  2. 사용하기 편리하고 효율적인 질의 언어 제공 
  3. 효율적으로 트랜잭션 처리4) 시계열 데이터 통계 연산  

대량 데이터의 실시간 처리

분산 데이터 저장 및 질의 구조를 채택한 Machbase는 단일 장비에서 200만 데이터의 입력 및 색인이 가능하고, 장비를 추가함에 따라 성능이 증가하여 초당 천만건 이상의 센서 데이터도 처리가 가능하다.

고속 데이터 입력을 위한 전용 API와 고속으로 색인을 생성할 수 있는 인덱수 구조를 갖고 있다.

시계열 데이터의 시간에 따른 추가에도 Cluster에 장비를 추가하여 성능과 공간을 확장할 수 있다.

효율적인 질의 언어 제공 및 인터페이스

데이터 처리에 최적화된 SQL언어를 제공한다. No-SQL 제품들도 다시 SQL언어를 제공하기 시작하고 있다.

반정형 데이터를 효율적으로 검색하기 위한 Inverted index및 관련 구문을 제공하여 반정형 데이터로 쉽게 검색 및 처리가 가능하다.

SQL 표준 인터페이스인 ODBC/JDBC 뿐만 아니라 REST Api도 제공

효율적인 트랜잭션 처리

  • 시계열 데이터에 대한 최적의 트랜잭션 기법을 고안
  • Update는 제공하지 않으나 Insert, Delete가 가능 하며, Node fail에 의한 재시작시에도 recovery과정을 거쳐 data와 index의 consistency 유지
  • Enterprise edition에서는 분산 데이터 저장 기법을 이용하여 node fail에 의한 데이터 유실을 원천적으로 해결

시계열 통계 처리

  • 시계열 센서 데이터에 대한 자동 통계 기능 : 입력된 센서 데이터를 단위 시간(초, 분, 시)별, 센서 식별자 별로 자동으로 통계를 생성한다.
  • 시계열 데이터에 최적화된 확장 질의 조건절을 제공한다.
  • Machbase Database는 시계열 데이터를 처리하기 위한 기능과 성능 요구사항을 모두 고려하여 구현한 제품으로 사물 인터넷 데이터 처리에 적합하다.    

연관 포스트

Deep Anomaly Detection in Time Series (2) : 이상 감지 모델

개요 안녕하세요, 마크베이스의 Cloud개발본부 연구원 양창은입니다. 지난 게시글 Deep Anomaly Detection in Time Series (1) : Time Series Data에서는 시계열 데이터와 이상치(Anomaly)의 종류에 대해 알아보았습니다. 그리고

IIoT를 위한 Data Lake – machlake

Data Lake 란, 대규모의 다양한 원시 데이터 세트를 기본 형식으로 저장하는 데이터 리포지터리 유형입니다. 원시 데이터는 특정 목적을 위해 처리되지 않은 데이터를 뜻합니다. 산업 IoT