IoT 데이터 최적화 ‘시계열 데이터베이스’ 등장
상태바
IoT 데이터 최적화 ‘시계열 데이터베이스’ 등장
  • 데이터넷
  • 승인 2019.09.15 14:04
  • 댓글 0
이 기사를 공유합니다

시간 처리 최적화·초고속 데이터 입력 등 시장 요구 반영…미래 핵심 인프라 기대
▲ 김성진 마크베이스 대표 andrew.kim@machbase.com <연재순서> 1. 세상을 뒤덮는 IoT 데이터(지난호) 2. IoT 데이터에 최적화된 ‘시계열 데이터베이스’ 등장(이번호)

[데이터넷] 모든 사물이 네트워크로 연결되고, 인공지능 기술로 인해 자동으로 판단하고 동작하는 이른바 스마트 세상은 더 이상 꿈이 아닌 현실이 됐다. 이는 사물인터넷(IoT)의 확산을 야기했으며, 각종 센서에서 수많은 데이터들이 쏟아짐에 따라 기존 방식으로 처리하는 것은 사실상 불가능해졌다. 스마트 시대 경쟁력 제고를 위해 IoT 데이터를 처리하는 방안에 대해 알아본다. 

사물인터넷(IoT)이 확산되면서 기하급수적으로 발생하는 IoT 데이터를 처리하는 것은 결코 쉬운 일이 아니다. 지난호를 통해 전통적인 관계형 DBMS는 비용 문제로 인해, NoSQL과 하둡(Hadoop) 등 다양한 제품들도 실시간 데이터 추출 부적합 및 동시 사용자 처리 어려움 등으로 인해 IoT 데이터 처리에 적합하지 않다는 것을 살펴본 바 있다.

그렇다면 IoT 데이터를 처리하기 위한 솔루션은 어떤 특징을 보유하고 있어야 할까? 데이터 입력과 저장 속도도 빨라야 하고, 고속으로 데이터를 추출해야 하며, 고속의 시계열 질의를 지원해야 한다. 실시간 통계 기능과 SQL 지원도 기본이다.

이 같은 수요를 충족하기 위해 ‘시계열 데이터베이스(Time Series DBMS)’라는 제품이 등장했다. 이번호에서는 실시간 IoT 데이터 처리에 최적화된 시계열 데이터베이스가 출현한 배경과 어떠한 제품들이 있는지 살펴본다.

시장 요구 반영

시계열 데이터는 ‘일정 시간 간격으로 배치된 숫자 데이터들의 나열’이라고 말할 수 있다. 오래 전부터 시계열 데이터는 우리 주변에 존재해 왔었고, 어딘가에 저장되고 처리돼 왔음에도 불구하고 크게 주목받지는 못했다.

기상정보와 주식정보는 대표적인 시계열 데이터이다. 이를 저장하고 분석함으로써 다양한 형태의 미래를 예측하거나 알지 못했던 과거의 사건을 이해하는 데 큰 도움이 된다.

2010년 전후로 빅데이터라는 용어가 세상에 알려지고, 빅데이터를 위한 다양한 형태의 솔루션들이 시장에 출시되면서 시계열 데이터 처리에 대한 관심이 급격하게 증가하기 시작했다. 이렇게 습득해야 할 정보가 시계열 데이터의 형태를 띠고 있으며, 조작해야 할 대상물의 개수가 늘어나면 늘어날수록 처리해야 할 시계열 데이터의 수가 기하급수적으로 증가한다.

이미 언급한 바와 같이 시계열 데이터 폭발의 초기만 하더라도 기존의 데이터베이스나 하둡과 같은 빅데이터 솔루션을 통해 해결이 가능할 것이라 믿었다. 그러나 실제로는 폭발적으로 쏟아지는 데이터를 처리하기에는 역부족이었다. 결국 이러한 시장의 요구로 새로운 데이터 처리 방법에 대한 제품이 출연할 수밖에 없었던 필연적인 이유가 있었다.

▲ <그림1> DBMS 검색 트렌드

시계열 데이터베이스 주요 특징

시계열 데이터베이스의 기술적인 특징은 시장의 요구 사항을 만족시키기 위해 특별히 고안된 기능들의 집합이다. 그리고 지향하는 시장에 따라 특화된 기능을 제공한다. 그러나 가장 기본이 되는 것은 시계열 데이터를 어떻게 얼마나 빨리 처리하느냐에 대한 것이다.

● 시간 처리에 최적화된 인덱스 지원

센서 데이터가 가진 근원적인 문제는 전통적인 트리(Tree) 기반의 인덱스(Index)로는 필요한 성능을 제공하기 힘들다는 것이다. 최근 시계열 데이터베이스는 시간축으로 모여진 태그 아이디(Tag ID)마다 대량 데이터에 대한 새로운 형태의 인덱스를 구성함으로써 문제를 해결한다.

예를 들어 마크베이스의 경우 시간축으로 데이터를 파티션(Partition)하고, 태그 아이디에 대해 클러스터(Cluster)로 모아서 처리하는 복합적인 구조의 인덱스를 통해 이 문제를 해결한다.

● SQL 기반 시계열 질의 지원

시계열 데이터베이스를 쓰는 가장 큰 이유는 시계열 데이터에 대한 다양한 형태의 요청을 처리할 수 있도록 해 주는 것이고, 성능 또한 탁월하기 때문이다. 이는 특정한 시간에 해당하는 사용자의 분석 요구 사항을 잘 표현할 수 있는 질의 언어 측면에서 이해할 수 있다. 그리고 그 질의 언어가 널리 알려진 SQL을 기반으로 동작하도록 설계돼 기존의 데이터베이스 사용자가 큰 어려움 없이 적응할 수 있다는 장점이 있다.

시계열 데이터베이스들이 시계열 데이터에 대한 빠른 추출이라는 측면에서는 모두 동일한 목표를 가지고 있으나, 자체 언어를 사용하거나 아예 질의 언어가 없는 경우도 있다.

● 초고속 데이터 입력

시계열 데이터베이스가 가져야 할 가장 기본적인 미덕은 고속으로 시계열 데이터를 입력할 수 있어야 한다는 것이다. 물론 이 입력보다는 추출에 더 관점을 맞춘 시계열 데이터베이스도 있기는 하나, 기본적으로 4코어 CPU, 메모리 4GB, SSD 환경으로 가정한 일반 PC급 장비에서 초당 수십 만 건 이상 입력이 가능한 수준이어야 한다.

● 트랜잭션(Transaction) 지원 불가

트랜잭션은 전통적인 데이터베이스의 특징 중의 하나이다. 반면 대부분의 시계열 데이터베이스는 이 기능을 제공하지 않는데, 이는 전략적으로 빠른 입력이 가능하게 하고, 코드의 복잡성을 줄여 처리 성능을 높이기 위한 것이다. 그렇지만 트랜잭션이 없기 때문에 수행한 연산을 철회할 수 없으므로, 응용 프로그램 설계 단계에서는 세심한 고려가 필요하다.

● 변경 연산 불가

전통적인 데이터베이스에서는 갱신 연산은 가장 기본적인 기능 중 하나이다. 그러나 센서에서 발생하는 시계열 데이터의 경우 그 데이터를 변경하는 요구 사항이 거의 발생하지 않을 뿐만 아니라, 데이터의 변조 가능성을 방지하기 위해 아예 변경 연산을 지원하지 않는다.

때때로 변경 연산이 필요할 것으로 예상되는 경우에는 이런 상황이 아예 발생하지 않도록 입력 이전에 필터링을 하거나, 새로운 테이블 생성을 통해 데이터를 재가공하는 방식으로 문제를 해결하는 것이 일반적이다.

● 실시간 데이터 압축

오랫동안 저장되는 시계열 데이터의 디스크 용량은 때때로 상상을 초월하는 경우가 많다. 그렇기 때문에 데이터베이스 엔진 내부에서 데이터를 압축하는 기능을 제공한다. 물론 사용자는 데이터의 압축 여부를 알 필요는 없지만, 이 기능을 통해 보다 긴 기간의 시계열 데이터를 보관할 수 있도록 저장공간을 효율화 할 수 있다.

● 롤업(Rollup) 기능 지원

산업 현장에서는 롤업을 ‘데이터를 둘둘 만다’는 표현으로 사용하는 대단히 독특한 기능이다. 대표적으로 이 기능을 특화시킨 유명한 오픈소스로는 RRDtool(Round-Robin Database)이 있다. 이 RRDtool은 원래 네트워크 모니터링을 위한 툴로써 개발됐는데, 시시각각 입력되는 데이터를 초/분/시간 단위의 별도로 보관되는 통계 데이터를 자동으로 생성하는 역할을 한다.

최근 개발되는 시계열 데이터베이스는 이런 자동 통계 생성 기능을 내부에 탑재하고 있으며, 이를 통해서 장기간에 걸친 다양한 통계(평균, 최소/최대, 합계 등)를 순식간에 얻을 수 있도록 지원한다.

● 스트림(Stream) 연산 지원

제품에 따라 다르지만 입력되는 고속의 센서 데이터를 실제 테이블에 입력하기 전 특정 조건을 통해 데이터를 변경, 이동할 수 있는 기능을 제공한다. 이는 한 번 입력되면 변경이 불가능한 제약 조건을 해결하는 것도 있지만, 입력된 데이터에 대한 선조치를 통해 실시간으로 환경에 대한 대응을 하려고 하는 목적도 함께 있다.

이러한 데이터 처리의 기본은 연속 질의라고 불리는 CQL(Continuous Query Language)을 지원하는 것이며, 이 기능이 사용자의 실시간 데이터 처리에 대한 요구를 담당한다.

시계열 데이터베이스 종류

의외로 많은 종류의 시계열 데이터베이스가 이미 존재한다. 그러나 실제 비즈니스에 적용할 수 있을 정도의 기능과 성능, 안정성 및 시장의 검증을 거친 제품은 일부에 불과하다. 아직 이 시장이 매우 초기 상태임을 감안하고 각각의 데이터베이스에 대한 기본적인 특징을 이해하야 한다.

● 인피니플럭스(InfluxData) (오픈소스)

2013년 미국에서 출시된 시계열 데이터베이스이다. 특이하게 이 엔진은 고(Go)라는 언어를 통해서 개발됐으며, 전 세계에서 빠르게 성장하고 있다. SQL과 유사한 조작 언어를 제공하고 있으며, 다양한 프로그래밍 언어를 제공하는 것이 특징이다. 단일 노드에서 동작하는 제품은 무료이며, 다중 노드 지원을 위한 클러스터 버전의 경우에는 상용으로 구매해야 한다. 현재는 단순히 시계열 데이터베이스를 넘어서 시계열 시각화 도구를 제공하는 등 플랫폼 영역으로 확장하고 있다.

● 오픈TSDB (오픈소스)

제품명에서 알 수 있듯이 오픈소스를 지향하는 시계열 데이터베이스로, 2011년부터 개발이 시작돼 가장 오래된 시계열 데이터베이스 제품이기도 하다. 이런 오랜 역사 덕분인지 국내에서도 간간이 적용돼 활용되고 있다. 개발 언어가 자바(Java)라 성능상 약점이 있을 수 있지만, 하둡과 같은 다양한 개발 환경과의 유연한 연동과 높은 브랜드 인지도는 장점이다.

● 프로메테우스(Prometheus) (오픈소스)

프로메테우스는 고언어로 개발된 오픈소스 데이터베이스이다. 비교적 늦은 시기인 2015년도에 개발이 시작됐는데 시계열 데이터베이스로 인식되기 보다는 다른 시계열 데이터베이스와의 연동을 통해 매우 탁월한 모니터링 솔루션으로 인식되는 것이 특징이다. 실제로도 다른 제품과의 연동을 통한 모니터링 사례가 많을 뿐만 아니라, 여러 기업에서 그러한 용도로 활용하고 있다. 모니터링을 위한 시각화 측면에서 강점을 갖고 있는 제품으로 ‘사용기술지원’을 통한 상업화를 지향하고 있으나 제품 자체는 무료로 제공된다.

● 기타 오픈소스 시계열 데이터베이스

앞서 언급된 제품들 외에도 RRD, 드루이드(Druid)와 같은 오픈소스 저장 관리자도 활용할 수 있고, 카산드라(Cassandra)와 같은 기존 오픈소스 데이터베이스를 저장소로 동작하는 카이로스DB(KairosDB)도 존재한다. 또한 차트에 특화된 솔루션인 그라파이트(Graphite)도 있다.

● KDB+ (비 오픈소스)

미국 동부에 위치한 케이엑스시스템(Kx System)이 개발한 데이터베이스로, 회사는 이미 2000년부터 미국 증권가를 중심으로 ‘틱 데이터(Tick Data)’라 불리는 주식 시세를 초고속으로 처리하는 제품을 성공적으로 상용화했다.

이 제품의 가장 큰 특별한 점은 케이(K)라는 특별한 언어가 이 제품의 질의 언어로 돼 있다는 것인데, 최근에는 큐(Q)는 언어로 버전업됐다. SQL에 익숙한 사용자가 보기에는 매우 특이한 구조의 언어라 초기 사용법을 습득하는데 꽤 어렵다.

또한 고속의 데이터 처리를 위해 휘발성 메모리에 데이터를 대량으로 저장하는 메모리 기반의 구조이기 때문에 고가용성을 고려하지 않은 단일 서버일 경우 대량의 데이터 유실에 대한 위험을 감수해야 한다.

초고속으로 시계열 데이터를 처리해야 하는 가장 높은 수준의 요구 사항이 존재하는 곳이 금융 시장이다. 이 영역에서 성공적으로 비즈니스를 했다는 사실만으로도 큰 의미가 있다. 최근 IoT 영역에서의 시계열 데이터 처리 요구가 높아지고 있는 상황에서 금융 시장으로 진입을 선언하고, 센서 데이터 처리가 필요한 산업군에 대해 적극적인 비즈니스를 진행하고 있다.

● 마크베이스(machbase) (비오픈소스)

2013년부터 당사가 개발해온 데이터베이스이다. C언어로 개발됐으며 일반적인 시계열 데이터베이스의 특징을 보유하고 있다. 현재 통합 보안 로그, 스마트팩토리 센서 데이터 저장 및 처리를 위해 사용되고 있다.

마크베이스의 가장 큰 제품 특징은 데이터 처리 성능이다. 2015년 시큐아이(SECUI) 방화벽 장비에서 동작하는 시계열 데이터베이스로 채택돼 초당 20만 건의 로그 데이터를 저장하고 분석하는 성능을 자랑한다.

최근에는 스마트팩토리, 반도체 설비 등 공정 데이터 처리의 핵심 기능을 제공하는 버전 5를 출시하고, 일반 PC급 장비에서 초당 100만 건 이상의 센서 데이터 처리를 하고 있다. 라즈베리파이(Raspberry Pi)와 같은 Arm 기반의 소규모 장비를 위한 데이터베이스뿐만 아니라 대규모 데이터 저장을 위한 클러스터 버전도 함께 출시됐다.

▲ <그림2> 마크베이스 제품군

초 단위 데이터 수집…실시간 모니터링 지원

마크베이스는 짧은 국내 도입 시기에도 불구하고 유의미한 구축 사례들을 갖고 있다. 대표적으로 시멘트 산업 적용 사례가 있다. 시멘트는 가장 일반적인 의미로 결합재이며, 물과 반응해 굳고 단단해지는 물질이다. 다른 재료들과 함께 굳힐 수도 있는 재료로 한국어로는 ‘양회’라고 한다.

시멘트는 한국의 건설 경기, 더 나아가 한국의 토대가 된 기간 인프라 산업들의 초석이 된 기간 산업 중 하나이기도 한다. 시멘트의 공정은 크게 채광-원료-소성-출하의 네 공정을 거친다.

채광은 시멘트의 원료가 되는 석회석을 캐낸 다음 컨베이어 벨트에 실어 나르는 과정이다. 수 킬로미터에 달하는 컨베이어 벨트를 타고 내려오면서 대형 석회가 잘게 잘려진다. 이 과정이 조쇄다. 1, 2차 조쇄에서 몇 톤에 달하는 석회석 광석은 30mm의 크기 정도로 분쇄된다.

원료 공정에서는 분쇄를 마친 석회석들이 최적의 평균 화학 조성을 갖도록 하는 공정이다. 원료 분쇄기 안에서 석회석, 점토질 원료, 산화철 등이 혼합된 조합 원료를 약 100마이크로 이하 크기로 미세하게 분쇄하고 이 과정을 거쳐 저장소에 보관한다.

보관된 다음 소성 공정을 거친다. 그야말로 미분쇄된 시멘트를 굽는 과정이다. 소성로(Kiln)는 거의 1000도에 가깝게 예열된다. 소성은 시멘트의 제조 공정 중 가장 중요한 공정이며, 시멘트의 중간제품들도 생산한다.

마지막으로 출하다. 소성과정에서 생산된 클링커(시멘트 중간제품)를 주원료로 하고 첨가제인 석고를 혼합 미분쇄하면서 최종 제품인 시멘트가 생산된다. 시멘트는 벌크(Bulk)나 포장(Bag) 형태로 전국의 건설 현장으로 수송되며, 제품생산주기를 마친다.

그럼 이 공정 중에 시계열 데이터베이스는 어떻게 쓰였을까? 시멘트는 광석 상태에서부터 시장 요구에 따라 가공된다. 채광-조쇄-원료-출하의 4단계를 거치면서 고품질의 품위를 갖는 것이 목표다. 빠른 품질 데이터 처리는 시장에서 더욱 매력적이며, 시멘트 제조사의 경쟁력도 좌우하게 된다.

▲ <그림3> 시멘트 제조 공정도

시멘트는 나라마다 원하는 분말입자 크기가 제각각이다. 다양한 고객의 니즈는 다품종 소량 제품을 만드는 것과 같이 시설 장비와 센서에서 나오는 모든 정보를 모으고 분석해야만 다양한 레시피(Recipe)를 사용할 수 있게 만든다.

시멘트 제조 공정은 연속 공정이다. 품질 데이터 집계를 위해서는 시시각각 실시간으로 나오는 센서 데이터와 품질 데이터를 모니터링 해야 한다. 마크베이스를 도입하여 사용한 해당 기업은 검사항목별로 샘플링한 품질 결과를 자동화해 데이터를 추출하고 모니터링 하고자 했다.

기존의 실험 데이터는 MS-SQL 데이터베이스에 저장하고 있었으나 15분에 한 번씩 받는 이 데이터 모니터링은 실시간 모니터링이 아니었다. 초 단위로 데이터를 받아야 하는 니즈(Needs)로 인해 원료 품위 데이터에 대한 초 단위 수집이 가능해지면서 장비별, 공정별로 샘플링 결과를 실시간으로 모니터링 할 수 있게 됐다.

스마트 시대 핵심 인프라로 자리매김

이미 세상은 스마트 시대로 변하고 있다. 이러한 변화를 주도하는 것은 수많은 센서로부터 발생하는 센서 데이터임을 부정할 수 없다. 이를 위한 핵심적인 소프트웨어인 시계열 데이터베이스는 필수 불가결한 존재가 되고 있다. 특히 전 세계적으로 이와 관련된 수많은 솔루션이 개발되고 있는 상황에 비춰볼 때, 과거 IT 시장에서 오라클(Oracle)과 같은 트랜잭션 기반의 데이터베이스가 출현해 오늘날 IT 인프라의 근간이 된 사실을 기억하지 않을 수 없다.

역사는 반복되고, 오늘 우리는 또 다른 곳에서 시작되는 혁명적 시대 변화를 맞이하고 있다. 시계열 데이터베이스는 그 혁명의 중심에서 새로운 전기를 맞고 있으며, 이는 다가올 미래가 아닌 오늘 우리가 마주하고 있는 현실이자 미래의 모습이라고 생각된다.

앞으로 5년, 10년 후, 역사 이래로 지금까지 설치되고 사용되었던 트랜잭션 기반의 데이터베이스 숫자보다 더 많은 시계열 데이터베이스가 세계 곳곳에서 사용될 것이고, 우리의 삶을 지탱하는 핵심 소프트웨어로써 자리매김할 것이 확실하다. 이미 우리는 센서와 교감하는 IoT 시대에 살고 있지 않은가?



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.