배너
닫기
배너

[IoT 데이터 처리의 모든 것-③] 시계열 데이터베이스 출현

URL복사
[선착순 마감임박] 우리 기업에 꼭 필요한 AI를 활용해 비즈니스를 확장할 수 있는 방법은? AI융합 비즈니스 개발 컨퍼런스에서 확인하세요 (5/3, 코엑스3층 E홀1~4)

김성진 대표, 마크베이스

 

IoT 데이터 전쟁을 끝낼 영웅이 드디어 출현했다. 바로 시계열 데이터베이스라고 불리는 새로운 종족이다. 이 글에서는 IoT 시계열 데이터 처리에 최적화된 시계열 데이터베이스(Time Series DBMS)가 출현한 배경과 어떠한 제품들이 있는지 살펴본다.

 

출현 배경

 

시계열 데이터라 함은 ‘일정 시간 간격으로 배치된 숫자 데이터들의 나열’이라고 간단하게 이야기할 수 있다. 오래전부터 시계열 데이터는 존재해 왔었고, 어딘가에 저장되고 처리되어 왔음에도 불구하고 크게 주목을 받지는 못했다. 대표적으로 기상정보와 주식정보가 시계열 데이터이고, 이를 저장하고 분석함으로써 다양한 형태의 미래를 예측하거나 알지 못했던 과거의 사건을 이해하는 데 큰 도움이 되었다.

 

그런데 2010년 전후로 빅데이터라는 용어가 세상에 알려지고, 다양한 형태의 솔루션들이 시장에 출시되면서 이 시계열 데이터 처리에 대한 관심이 급격하게 증가하기 시작했다. 특히, 얼마 전부터 불기 시작한 4차 산업혁명이나 IoT라는 용어가 시계열 데이터에 대한 관심에 불을 붙이기 시작한 게 사실이다. 왜냐하면, 세상이 점점 더 지능화되면 될수록 그 지능화되는 대상물의 상태를 잘 파악해야 하고, 그 대상물의 정보를 빨리 습득하여, 대처해야 하는 요구 사항이 발생하기 때문이다.

 

여기서 주목해야 할 것은, 이렇게 습득해야 할 정보가 정확하게 시계열 데이터의 형태를 띠고 있으며, 조작해야 할 대상물의 개수가 늘어나면 날수록 처리해야 할 시계열 데이터의 개수가 기하급수적으로 증가한다는 것이다.

 

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

 

그림 1은 전 세계 데이터베이스 랭킹을 조사하는 사이트(https://db-engines.com)에서 2019년 4월 기준 최근 24개월간 데이터베이스의 트렌드 변화를 나타내는 차트이다.

 

 

위의 그림에서 볼 수 있듯이 시계열 데이터베이스에 대한 관심이 다른 데이터베이스에 대한 것보다 월등히 높아지는 것을 확인할 수 있다. 바야흐로 시계열 데이터베이스의 시대가 온 것이다.

 

시계열 데이터베이스의 특징

 

시계열 데이터베이스의 기술적인 특징은 시장에서의 요구 사항을 만족시키기 위해 특별히 고안된 기능들의 집합이고, 지향하는 시장에 따라 특화된 기능을 제공한다. 그러나 가장 기본은 시계열 데이터를 어떻게 빨리 처리하느냐에 대한 것임이 분명하다. 아래는 기능적인 측면뿐만 아니라 이해를 돕기 위해 그 특징의 기술적인 측면도 함께 설명한다.

 

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

 

센서 데이터가 가진 근원적인 문제는 전통적인 트리 기반의 인덱스로는 필요한 성능을 제공하기 힘들다는 것이다. 이런 이유로 최근의 시계열 데이터베이스는 시간축으로 모여진 태그 아이디마다, 대량의 데이터에 대한 새로운 형태의 인덱스를 구성함으로써 문제를 해결한다. 예를 들어, 마크베이스의 경우에는 시간축으로 데이터를 파티션(partition)하고, 태그 아이디에 대해 클러스터(cluster)로 모아서 처리하는 복합적인 구조의 인덱스를 통해 이 문제를 해결한다.

 

SQL 기반 시계열 질의 지원

 

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

 

초고속 데이터 입력

 

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

 

트랜잭션 지원 불가

 

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

 

변경 연산 불가

 

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

 

때때로 변경 연산이 필요할 것으로 예상되는 경우에는 이러한 상황이 아예 발생하지 않도록 입력 이전에 필터링을 하거나, 새로운 테이블 생성을 통해 데이터를 재가공하는 방식으로 문제를 해결하는 것이 일반적이다. 마치 일반 텍스트 파일에 저장된 수십 기가의 센서 데이터 파일을 변경하는 경우가 거의 없는 것처럼 말이다.

 

실시간 데이터 압축

 

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

 

롤업(Rollup) 기능 지원

 

롤업은 산업 현장에서는 “데이터를 둘둘 만다.”라는 표현을 쓰는 대단히 독특한 기능이다. 대표적으로 이 기능을 특화시킨 유명한 오프소스로는 RRDtool(round-robin database)이 있다. 이 RRDtool은 원래 네트워크 모니터링을 위한 툴로서 개발이 되었는데, 시시각각 입력되는 데이터를 초, 분, 시 단위의 별도로 보관되는 통계 데이터를 자동으로 생성하는 역할을 한다. 즉, 이 RRDtool 기능을 통해 주 단위, 월 단위 혹은 연 단위의 통계정보를 즉시 확인할 수 있기 때문에 수많은 고객이 사용하고 있다.

 

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

 

스트림 연산의 지원

 

제품에 따라 다르지만, 입력되는 고속의 센서 데이터를 실제 테이블에 입력되기 이전에 특정 조건을 통해 데이터를 변경, 이동할 수 있는 기능을 제공한다. 이는 한번 입력되면 변경이 불가능한 제약 조건을 해결하는 것도 있지만, 입력된 데이터에 대한 선조치를 통해 실시간으로 환경에 대한 대응을 하려고 하는 목적도 함께 있다. 이러한 데이터 처리의 기본은 연속 질의라고 불리는 CQL(Continuous Query Language)을 지원하는 것이며, 이 기능이 사용자의 실시간 데이터 처리에 대한 요구를 담당한다.

 

시계열 데이터베이스의 종류

 

인터넷을 살펴보면, 의외로 많은 종류의 시계열 데이터베이스가 존재한다. 그러나 실제 비즈니스에 적용할 수 있을 정도의 기능과 성능, 안정성 및 시장의 검증을 거친 제품은 일부에 불과하다는 점을 먼저 언급해야 할 것 같다. 아직 이 시장이 매우 초기 상태임을 감안하고 각각의 데이터베이스에 기본적인 특징을 이해하면 좋을 것 같다. 그리고 편의상 데이터베이스의 형태를 오픈소스와 비오픈소스로 분류하여 기술하도록 하겠다.

 

 

1. InfluxData(오픈소스)

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

 

2. OpenTSDB(오픈소스)

제품명에서 알 수 있듯이 오픈소스를 지향하는 시계열 데이터베이스인데, 2011년 개발이 시작된 것으로 가장 오래된 제품 중의 하나라고 볼 수 있다. 이렇게 오래된 역사 덕분인지는 모르겠지만, 알게 모르게 국내에서도 간간이 적용되어 활용되고 있다. 개발 언어가 자바라 성능에 있어서 비교적 약점이 있을 수 있지만, 반면 하둡과 같은 다양한 개발 환경과의 유연한 연동과 높은 브랜드 인지도가 장점이라고 할 수 있다.

이다.

 

 

3. Prometheus(오픈소스)

한글로는 “프로메테우스”라고 불리며, Go 언어로 개발된 오픈소스 데이터베이스이다. 비교적 늦은 시기인 2015년도에 개발이 시작되었는데, 다른 제품과는 조금 다른 특징이 있다. 그것은 이 프로메테우스가 시계열 데이터베이스로 인식되기보다는 다른 시계열 데이터베이스와의 연동을 통한 매우 탁월한 모니터링 솔루션으로 인식된다는 것이다.

 

인터넷을 찾아보더라도 프로메테우스 자체의 이야기보다는 다른 제품과의 연동을 통한 모니터링 사례를 많이 들고 있을 뿐만 아니라, 많은 기업에서 그러한 용도로 활용하고 있다. 모니터링을 위한 시각화 측면에서 강점을 가지는 제품으로 ‘사용기술지원’을 통한 상업화를 지향하고 있으며, 제품 자체는 무료로 제공된다.

 

4. 기타 오픈소스 시계열 데이터베이스들

그 외에도 많은 오픈소스 데이터베이스가 오늘 이 순간도 탄생하고, 개발되고 있는 것을 볼 때, 이 시장에 대한 고객의 수요가 높고, 시장 전망이 대단히 밝다는 것을 간접적으로 확인할 수 있다. 위에서 기술하지 않았지만, RRD, Druid와 같은 오픈소스 저장관리자도 활용할 수 있고, 카산드라와 같은 기존 오픈소스 데이터베이스를 저장소로 동작하는 카이로스DB(KairosDB)도 흥미로운 제품이다. 또한, 차트에 특화된 솔루션인 그라파이트(Graphite)도 있으니 관심 있는 독자는 다양하게 테스트해 보길 바란다.

 

5. KDB+(비오픈소스)

Kx System이라는 미국 동부의 기업이 개발한 데이터베이스이다. 이미 2000년부터 미국 증권가를 중심으로 ‘Tick Data’, 즉 주식 시세를 초고속으로 처리하는 제품을 성공적으로 상업화한 회사이다. 사실 초고속으로 시계열 데이터를 처리해야 하는 가장 높은 수준의 요구 사항이 존재하는 것이 금융시장이고, 이 영역에서 성공적으로 비즈니스를 했다는 사실만으로 큰 의미를 가진다.

 

최근 들어 IoT 영역에서의 시계열 데이터 처리 요구가 높아지고 있는 현실에서 이 부분에 대한 시장 진입을 선언하고, 센서 데이터 처리가 필요한 산업군에 대해 적극적으로 비즈니스를 진행하고 있다.

 

이 제품의 가장 큰 특별한 점은 K라는 특별한 언어가 이 제품의 질의 언어로 되어 있고, 최근 Q라는 언어로 버전업이 되었다. SQL에 익숙한 사용자가 보기에는 매우 특이한 구조의 언어라 초기 사용법을 습득하는데 꽤 어려울 것으로 보인다. 또한, 고속의 데이터 처리를 위해 휘발성 메모리에 데이터를 대량으로(예를 들면 하루 치 입력) 저장하는 메모리 기반 아키텍처이기 때문에 고가용성을 고려하지 않은 단일 서버일 경우 대량의 데이터 유실에 대한 위험을 감수해야 한다.

 

 

6. 마크베이스(비오픈소스)

마크베이스(Machbase)는 2013년부터 대한민국에서 개발된 시계열 데이터베이스이며, C 언어로 개발되었다. 마크베이스는 일반적인 시계열 데이터베이스의 특징을 보유하고 있으며, 현재 통합 보안 로그 및 스마트팩토리 센서 데이터 저장 및 처리를 위해 사용되고 있다.

 

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

 

최근에는 스마트팩토리 및 반도체 공정 데이터 처리의 핵심 기능을 포함하는 버전 5를 2018년도에 출시하여, 일반 PC급 장비에서 초당 백만 건 이상의 센서 데이터 처리 성능을 기록한 바 있다. 또한, 라즈베리파이 및 라떼판다와 같은 암(ARM) 기반의 소규모 장비를 위한 데이터베이스뿐만 아니라, 초대규모 데이터 저장을 위한 클러스터 버전도 함께 출시하여, 스마트 X 시대를 위한 시계열 데이터베이스로서 성장하고 있다.

 

시계열 데이터베이스의 미래

 

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

 

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

 

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

 










배너









주요파트너/추천기업