사물 인터넷 데이터를 처리하는 DBMS

 

machbase database

 

 

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

 

앞서 논의한 것과 같이, 많은 수의 센서에 의해 발생하는 대량의 데이터를 시계열로 historical하게 저장하므로 엄청난 양의 데이터가 생성된다. 데이터의 저장 기간이 길어지면 더욱 더 많은 양의 데이터를 수집, 저장, 색인 및 검색 하여야 하므로, 이 시스템은 확장성이 있어야 한다. 단일 시스템에서 동작하는 DBMS로 PB단위에 달하는 대량의 데이터를 관리하기는 매우 어렵다.

이 대량의 데이터를 유실 없이 보관하고, 검색을 위해 색인화하며, 시각화를 위한 통계 데이터 생성 등을 처리할 수 있어야 한다. 

기존의 Bigdata 플랫폼이 갖고 있는 대량 데이터의 분산 저장, 분산 검색등의 기술은 배치 처리에 최적화되어 있어서 대량의 데이터에 대한 실시간 분석이 불가능하다. 따라서, 대량의 센서 데이터를 실시간으로 처리할 수 있는 새로운 DBMS가 필요하다.

 

 

질의 언어 및 인터페이스

 

정형 데이터(Structured data)를 위한 질의 언어로는 대부분의 시스템에서 사용되는 SQL이 일반적이다. IoT 센서 데이터는 정형 데이터 뿐만 아니라 반정형 데이터(Semi-structured data)도 많이 있는데, 이러한 반정형 데이터를 위한 질의 언어로 특별히 많이 사용되는 언어는 없다. Big data 시스템이 도입되면서 No-SQL 질의 언어들이 등장했지만, Mongodb를 비롯한 이질적 질의 언어는 많이 사용되고 있지 않다.

결국 Spark, Impala 등의 SQL on Hadoop 제품들이 보급되면서 다시 SQL 질의 언어를 많이 사용하게 되었다.

SQL언어를 지원하는 DBMS는 ODBC/JDBC등의 전통적 인터페이스를 제공하지만, Operational historian제품들은 REST API를 통해 http 프로토콜을 통한 Json 기반의 질의 인터페이스를 많이 사용하고 있다. 모든 환경이 web을 기준으로 변화하여 사용상의 편리성이 있는 REST api는 반드시 지원해야 할 인터페이스가 되었다.

 

 

트랜잭션 처리

 

초당 1000억건 이상의 데이터를 실시간으로 처리해야 하는 분산 데이터 시스템에서 ACID,  Two-phase locking 등으로 요약할 수 있는 트랜잭션 처리는 수행하기 힘들며, 완전히 삭제되기 전 까지 갱신 연산이 없는 시계열 데이터의 특성상 완벽한 ACID기반의 트랜잭션 처리를 하는 전통적인 관계형 DBMS는 성능 문제로 사용하기가 어렵다. BigData 플랫폼들이 기반으로 하는 CAP 정리에 의한 eventual consistency 기법을 사용하여 처리하고 있다. 방대한 대용량 IoT 데이터를 실시간으로 처리하는 데 있어서, 전통적인 ACID 기반 트랜잭션 보다 시계열 데이터의 특징을 반영한 새로운 효율적 데이터 처리 기법이 요구된다.

 

시계열 데이터 통계 처리

 

시계열 데이터는 시간 기준 통계 처리가 필요하다. 이 통계값은 시각화를 위해서 사용하거나, 통계 분석을 위해서 사용된다. 매우 대량의 데이터가 실시간으로 입력되는 상황에서 통계데이터를 생성하기는 어렵다. 시계열 통계 처리는 일반적인 sum, count, average외에 sampling 등의 기능이 필요하다. 전통적인 관계형 데이터베이스에서 처리가 힘들기 때문에 stream database등이 연구되고 있다.

 

사물인터넷 데이터 처리에 최적화된 Machbase DBMS

 

1) 대량의 데이터를 실시간으로 처리할 수 있어야 하며,

2) 사용하기 편리하고 효율적인 질의 언어를 제공해야 하고,

3) 효율적으로 트랜잭션 처리를 해야 하며

4) 시계열 데이터 통계를 처리할 수 있어야 한다.

 

Machbase Database는 위의 기능들을 모두 만족하는 유일한 제품이다.

 

  • 대량 데이터의 실시간 처리

    • 분산 데이터 저장 및 질의 구조를 채택한 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는 시계열 데이터를 처리하기 위한 기능과 성능 요구사항을 모두 고려하여 구현한 제품으로 사물 인터넷 데이터 처리에 적합하다.

 

 

 

“Machbase Database”

 

Do you want to try Machbase?

 

Contact the Machbase team with your questions!


머신 데이터 최적 데이터베이스 Machbase Database Database of Things 1 (Machbase Database)

Leave a Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.