2.3 주요 기능과 용어 구분
Machbase DBMS의 장기 데이터 운영에 필요한 ROLLUP, Retention Policy, Backup·Restore·Mount의 역할과 선택 기준을 설명합니다. 생성 구문과 운영 절차는 각 기능의 상세 문서에서 다룹니다.
원본은 개별 사건이나 측정값을 다시 분석하는 데 사용하고, 집계는 많은 원본을 요약해 반복 조회에 사용합니다. 보관 정책은 무엇을 언제 삭제할지 정하고, 백업은 장애가 발생했을 때 복구할 자료를 준비합니다. 이 목적들을 구분해야 집계가 남아 있다는 이유로 필요한 원본을 삭제하거나, 복제가 있다는 이유로 백업을 생략하는 일을 피할 수 있습니다.
- ROLLUP 통계의 역할 – 반복 집계의 조회 비용을 줄이는 방법
- Retention Policy의 역할 – 기간에 따라 데이터를 자동 정리하는 방법
- Backup·Restore·Mount의 관계 – 보호, 복구, 조회 목적의 구분
ROLLUP 통계의 역할
TAG 테이블의 장기간 데이터를 매번 원시 행에서 집계하면 조회 범위가 커질수록 처리 비용도 증가합니다. ROLLUP은 시간축 TAG의 지정한 숫자 컬럼 등을 구간별로 집계해 반복 조회에 사용하는 기능입니다. 집계할 컬럼과 집계 방식은 ROLLUP 정의에 따라 결정됩니다.
기본 ROLLUP은 초(SEC), 분(MIN), 시간(HOUR) 계층을 구성합니다. 테이블을 만들 때
WITH ROLLUP을 지정하거나, 일반 CREATE ROLLUP으로 필요한 주기와 조건을 지정할 수 있습니다.
생성되는 객체의 이름이나 저장 구조에 의존하지 말고 공개된 ROLLUP SQL로 관리하십시오.
선택 기준
| 조회 패턴 | 선택 |
|---|---|
| 장기간의 분·시간 단위 통계를 반복 조회 | 기본 ROLLUP 검토 |
| 집계 주기나 필터 조건을 직접 지정 | 주기·조건을 지정한 일반 ROLLUP 검토 |
| 직접 작성한 집계 SELECT의 결과를 별도 TAG에 저장 | Standard Edition의 Custom ROLLUP 검토 |
| 첫 값·마지막 값이 필요 | 확장 ROLLUP 검토 |
| 원시 값 조회가 대부분이거나 집계 빈도가 낮음 | ROLLUP 없이 시작하고 실행 시간을 측정 |
ROLLUP은 원시 데이터를 대신하는 보관 정책이 아닙니다. 원시 데이터의 보관 기간은 Retention Policy로 별도 설계하고, TAG 데이터를 수정했다면 해당 범위의 ROLLUP 재구성 여부도 확인합니다.
집계 결과를 해석할 때
집계는 정보의 해상도를 낮춥니다. 1분 평균만 남기면 그 1분 안에 있었던 순간적인 이상값이나 개별 측정 순서를 복원할 수 없습니다. 최대·최소값을 함께 보관하면 범위를 알 수 있지만, 이 역시 원본의 모든 정보를 보존하는 것은 아닙니다.
여러 구간의 평균을 다시 평균 내면 전체 평균과 달라질 수 있습니다. 예를 들어 2건의
평균이 10이고 8건의 평균이 20이면 전체 평균은 (2 × 10 + 8 × 20) / 10 = 18이며,
두 평균을 단순히 평균 낸 15가 아닙니다. 재집계에는 합계와 유효 건수 등 필요한 통계를
함께 사용하고, ROLLUP의 지원 조회 함수를 따릅니다.
ROLLUP 처리는 원본 입력과 별도로 진행되므로 최신 원본과 집계의 반영 시점이 다를 수 있습니다. 지연 도착이나 값 보정이 있다면 원본 범위, 집계 진행 상태와 재구성 필요성을 함께 확인합니다.
자세한 생성 구문, 조회 함수, 재구성 절차는 TAG·ROLLUP 활용을 참고하십시오.
Retention Policy의 역할
Retention Policy는 LOG 또는 TAG 테이블에서 보관 기간을 넘긴 데이터를 정해진 주기로 정리합니다. 데이터가 계속 유입되는 테이블의 저장 공간을 운영자가 반복적인 삭제 작업 없이 관리할 때 사용합니다.
| 요구사항 | 선택 |
|---|---|
| 일정 기간이 지난 데이터를 계속 자동 정리 | Retention Policy |
| 잘못 입력한 특정 범위를 즉시 제거 | 테이블 유형이 지원하는 DELETE |
| 지원 테이블의 전체 데이터를 비움 | TRUNCATE TABLE |
Retention은 적용 즉시 모든 오래된 데이터가 사라진다는 의미가 아닙니다. 정책의 실행 주기, 대상 테이블 지원 범위와 실제 삭제 상태를 함께 확인해야 합니다. LOOKUP, VOLATILE, TRANSACTION 테이블의 수명 관리는 해당 테이블이 지원하는 명시적 DML로 처리합니다.
보관 기간은 입력량과 함께 저장 용량을 결정합니다. 초당 입력 건수에 보관 초 수를 곱하면 원본 행 수의 대략적인 규모를 예상할 수 있지만, 실제 디스크 용량에는 타입·압축·인덱스· 복제·백업이 영향을 줍니다. 원본을 지우기 전에 집계의 범위와 보관 기간, 감사·재분석에 필요한 해상도를 확인합니다. ROLLUP을 생성했다고 원본의 보관 기간이 자동 변경되지는 않습니다.
정책 생성·적용·해제 구문과 운영 점검은 데이터 보존 정책을 참고하십시오.
Backup·Restore·Mount의 관계
세 기능은 모두 백업 데이터와 관련되지만 결과가 다릅니다.
| 기능 | 목적 | 운영 서버 | 결과 |
|---|---|---|---|
| Backup | 복구에 사용할 복사본 생성 | 실행 중 수행 가능 | 별도 경로에 백업 생성 |
| 인스턴스 Restore | 백업으로 인스턴스 복구 | 오프라인 절차 필요 | 운영 데이터베이스를 복구 |
| Mount | 백업 내용을 읽기 전용으로 확인 | 실행 중 수행 가능 | 백업을 별도 이름으로 조회 |
인스턴스 복원과 별개로, 논리 데이터베이스를 복원하는 RESTORE DATABASE SQL도 있습니다.
이 명령은 실행 중인 서버에서 수행하므로 오프라인 인스턴스 복원과 대상·절차를 구분합니다.
Backup이 성공했다는 사실만으로 복구 절차까지 검증된 것은 아닙니다. 지원하는 Edition에서 Mount로 내용을 조회하거나 격리 환경에서 Restore를 수행해 백업을 검증합니다. 백업 경로의 권한과 보존 주기도 함께 관리하십시오. Mount는 백업을 운영 데이터로 되돌리지 않으며, 마운트한 데이터에는 쓸 수 없습니다. Restore와 Mount는 Standard Edition 기능이므로 Cluster 환경에서는 해당 Edition의 백업·장애 복구 절차를 확인합니다.
운영 계획에서는 허용 가능한 데이터 손실 구간(RPO)과 서비스 복구에 허용되는 시간(RTO)을 정합니다. 전자는 백업·복제 간격을, 후자는 복구할 데이터 규모와 실제 복원 시간을 검토하는 기준입니다. 특정 Edition이나 백업 주기만으로 두 목표가 자동 보장되지는 않습니다. 복제본에도 잘못된 삭제가 반영될 수 있으므로 복제와 백업의 목적을 구분합니다.
명령, 권한, Edition별 지원 범위와 복구 순서는 백업·복원·마운트를 참고하십시오. 여러 logical database를 운용한다면 다중 데이터베이스 운영도 함께 확인하십시오.
입력 경로 비교
작은 SQL 실습에는 INSERT, 애플리케이션의 연속 수집에는 지원 SDK의 Append, 파일 적재에는
machloader 같은 도구를 검토합니다. 도구마다 지원 테이블, 입력 형식과 실패 확인 방법이
다르므로 이름이 비슷하다는 이유로 서로 바꿔 사용할 수는 없습니다.
SQL 입력, SDK, 파일 적재 도구의 선택 기준은 데이터 입력과 반출을 참고하십시오.