시계열DB를 보고 있는 중이다. 회사에서 openTSDB에서 카산드라로 변경하면서 알게된 시계열DB
MES같은 프로젝트라던지, 제조사쪽 프로젝트에서 많이 사용하는거 같다.
지금 있는 제조사도 공장(스마트팩토리) 프로젝트에서는 필수적으로 들어가는 듯하다.
지금 하는 프로젝트에서도 계측데이터를 실시간 수집하는데 카산드라를 사용중이다.
데이터베이스와 시계열 데이터 : 필수 요소
이 데이터의 상당 부분은 시계열 데이터다. 시계열 데이터에서는 이벤트가 발생하거나 지표가 측정된 정확한 시간을 기록하는 것이 중요하다. 그런 다음 일정 시간에 걸쳐 데이터를 관찰하고 분석해서 시스템 내에서 일어나는 변화를 파악할 수 있다.
시계열 데이터베이스는 수집하고 저장하는 이벤트 또는 지표의 수에 따라 상당히 커질 수 있다. 예를 들어 자율 운전 차량은 매초 방대한 데이터 포인트를 수집하고 평가해 차량의 조작을 결정한다.
카산드라(Cassandra) 또는 MySQL과 같은 범용 데이터베이스는 시계열 데이터에 적합하지 않다. 시계열 데이터를 다루기 위한 전용 데이터베이스는 범용 데이터베이스에는 없는 다음과 같은 기능을 포함해야 한다.
- 데이터베이스는 거의 실시간으로 데이터를 흡수(ingest)할 수 있어야 한다. 일부 애플리케이션(예를 들어 자율 자동차)은 초당 수백만 또는 수억 개의 데이터 포인트를 생성할 수 있으므로 데이터베이스는 이 정도 양의 데이터 흡수를 처리할 수 있어야 한다.
- 데이터베이스를 사용해서 사물을 모니터링하고 제어하려면 실시간으로 데이터베이스를 쿼리할 수 있어야 하며, 쿼리는 지속적으로 실행이 가능해야 한다. 범용 데이터베이스에서 쿼리는 스트리밍이 아닌 배치로 실행된다.
- 데이터 압축은 중요하다. 데이터베이스가 시계열 데이터 전용으로 설계된 경우 비교적 간단히 데이터 압축을 수행할 수 있다.
- 데이터를 흡수하는 만큼 빠르게 방출할 수 있어야 한다. 시계열 데이터는 일주일 또는 한 달과 같이 특정 기간 동안에만 필요하고 이후 버려도 되는 경우가 많다. 일반 데이터베이스는 이렇게 신속하게 데이터를 제거하도록 설계되지 않는다.
- 마지막으로, 전체가 아닌 일부 데이터를 제거하여 “다운샘플”이 가능해야 한다. 예를 들어 ms 단위로 데이터 포인트를 수집하며 약 일주일 동안 이 데이터의 높은 해상도를 유지해야 한다고 가정해 보자. 그 이후에는 대부분의 데이터를 제거할 수 있지만 초당 데이터 포인트 하나의 해상도로 일부를 보관해야 한다. 시계열 데이터의 경우 처음에는 높은 해상도가 매우 중요하지만 이후 장기간 보관을 위해서는 저해상도 데이터로도 충분한 경우가 많다.
원문보기:
http://www.itworld.co.kr/t/54649/%EB%B9%85%20%EB%8D%B0%EC%9D%B4%ED%84%B0/108995#csidx983168fe663069ea626d4179e21ef16
'참고할 내용' 카테고리의 다른 글
S&OP 란 무엇인가? (0) | 2025.03.01 |
---|---|
Apache Cassandra (0) | 2019.06.18 |
A-1. thread와 process의 차이를 설명할 수 있나? (0) | 2018.12.04 |
여기어때 면접에서 듣게 되는 질문 (0) | 2018.11.29 |
NoSQL Cassandra, HBASE, MongoDB 비교 (0) | 2018.11.19 |