1.1 Machbase DBMS 개요
Machbase DBMS는 센서 계측값, 설비 이벤트, 애플리케이션 로그처럼 시간에 따라 쌓이는 데이터를 저장하고 SQL로 조회·분석하는 시계열 데이터베이스입니다. 사용자는 데이터의 형태와 변경·조회 방식에 맞는 테이블을 선택하고, 원본 이력과 기준 정보를 함께 관리합니다.
Machbase DBMS 소개
데이터베이스와 SQL의 역할
데이터베이스는 애플리케이션이 수집한 데이터를 일정한 구조로 저장하고 여러 작업에서 다시 사용할 수 있게 합니다. DBMS는 그 데이터를 읽고 쓰는 요청, 사용자 권한과 저장 공간을 관리하는 소프트웨어입니다.
테이블은 같은 구조의 기록을 모은 것입니다. 행은 이벤트 한 건이나 측정값 한 건을 나타내고, 컬럼은 시각·장비 이름·측정값 같은 항목을 나타냅니다. 컬럼에는 숫자, 문자열, 날짜와 시간 같은 데이터 타입을 지정합니다. 이렇게 정한 구조를 스키마라고 합니다.
예를 들어 온도 이력은 다음과 같이 표현할 수 있습니다. 아래 시각과 값은 개념 설명용입니다.
| 측정 대상 | 측정 시각 | 온도 |
|---|---|---|
| 설비 A의 온도 센서 | 09:00:00 | 23.1 |
| 설비 A의 온도 센서 | 09:00:01 | 23.5 |
| 설비 B의 온도 센서 | 09:00:01 | 18.0 |
SQL은 이 데이터를 다루는 언어입니다. CREATE로 테이블을 만들고, INSERT로 행을
추가하고, SELECT로 필요한 행과 컬럼을 읽습니다. WHERE는 조회 조건을,
GROUP BY는 집계 기준을, ORDER BY는 결과의 정렬 순서를 지정합니다.
같은 SQL을 사용하더라도 지원하는 변경 연산과 저장 특성은 테이블 유형에 따라 다릅니다.
현재 상태와 시간 이력
“설비 A의 현재 온도는 얼마인가?”와 “지난 1시간 동안 온도가 어떻게 변했는가?”는 다른 질문입니다. 현재 값 하나를 계속 덮어쓰면 과거 변화는 알 수 없습니다. 각 측정값에 시각을 붙여 새 행으로 저장하면 변화 추이, 최대값과 이상 발생 시점을 분석할 수 있습니다.
시계열 시스템에서는 이런 이력이 계속 증가합니다. 따라서 입력 속도뿐 아니라 어떤 대상을 어느 시간 범위로 조회할지, 원본을 얼마나 보관할지도 설계해야 합니다. 계측값이 항상 일정한 간격으로 도착하는 것은 아닙니다. 네트워크 지연, 장비 중단과 재전송으로 늦게 도착하거나 빠진 값이 생길 수 있습니다.
계측값, 이벤트와 기준 정보
계측값은 “어느 대상이 어느 시각에 어떤 값을 가졌는가”를 나타냅니다. 이벤트는 알람, 장비 정지, 서비스 시작처럼 어떤 일이 발생한 사실을 기록합니다. 장비 이름, 설치 위치와 측정 단위는 그 기록을 해석하기 위한 기준 정보입니다.
이 세 가지는 하나의 시스템에서 함께 사용됩니다. 온도 이상을 분석하려면 온도 이력뿐
아니라 같은 시각의 알람과 해당 센서의 설치 위치도 필요합니다. SQL의 조인(JOIN)은
장비 코드처럼 공통된 값을 기준으로 이력과 기준 정보를 연결하는 데 사용합니다.
Machbase가 해결하는 문제
Machbase의 시계열 기능은 다음 작업을 함께 수행할 때 활용할 수 있습니다.
| 작업 | 예 | 관련 기능 |
|---|---|---|
| 원본 이력 수집 | 센서 측정값과 설비 이벤트를 계속 저장 | TAG·LOG, SQL 입력과 SDK Append |
| 필요한 구간 조회 | 설비 A의 최근 1시간 온도 변화 확인 | 태그·시간 조건, 인덱스와 실행 계획 |
| 반복 통계 조회 | 긴 기간의 분·시간 단위 추이 비교 | TAG ROLLUP |
| 데이터 해석 | 센서 코드에 장비명과 위치 연결 | 기준 정보와 JOIN |
| 저장 기간 관리 | 보관 기간이 지난 원본 정리 | 지원 테이블의 Retention Policy |
| 장애에 대비한 데이터 보호 | 백업과 복구 절차 검증 | Edition별 백업·복구 기능 |
ROLLUP은 원본에서 구간 통계를 계산합니다. 압축은 저장에 필요한 공간을 줄이는 기술이고, Retention Policy는 오래된 데이터를 삭제하는 정책입니다. 세 기능의 목적은 서로 다르며, 집계가 있다는 이유만으로 원본을 삭제해도 되는 것은 아닙니다.
필요한 성능은 데이터 타입, 입력량, 동시 조회, 보관 기간과 서버 자원에 따라 달라집니다. 작은 실습으로 사용법을 익힌 뒤, 실제 데이터와 조회 조건으로 처리량과 지연 시간을 측정하십시오. 기능의 역할은 핵심 개념에서 더 자세히 설명합니다.
데이터에 맞는 테이블 선택
| 테이블 | 주 용도 | 선택할 때 확인할 점 |
|---|---|---|
| TAG | 태그 이름과 시간·거리 축을 가진 계측 이력 | 특정 태그의 구간 조회와 집계가 중심인지 확인합니다. |
| LOG | 여러 항목을 가진 이벤트·로그 이력 | 새 기록을 계속 추가하고 시간 조건이나 검색 조건으로 읽는지 확인합니다. |
| LOOKUP | 장비 코드, 매핑 같은 영속 기준 정보 | 메모리에 적재해 참조할 데이터의 크기와 변경 방식을 확인합니다. |
| TRANSACTION | 행 단위 변경과 트랜잭션이 필요한 업무 데이터 | Standard Edition에서 관계형 DML과 트랜잭션이 필요한지 확인합니다. |
| VOLATILE | 재시작 후 다시 만들 수 있는 공유 상태 | 서버 종료로 데이터가 사라져도 복원할 수 있는지 확인합니다. |
Machbase DBMS 8.7.0에서 LOG 테이블은 CREATE LOG TABLE로 명시합니다. 유형을 생략한
CREATE TABLE은 TRANSACTION 테이블을 생성하며, TRANSACTION 테이블은 Standard
Edition에서 지원합니다.
데이터의 산업 분야만으로 테이블을 결정하지는 않습니다. 변경·조인·보관 요구사항을 포함한 최종 선택은 테이블 타입 선택에서 확인합니다.
이제 10분 빠른 시작에서 이벤트 한 건을 저장하고 다시 읽어 봅니다.