ROLLUP_REBUILD
ROLLUP_REBUILD는 지원되는 TAG 집계의 과거 버킷을 다시 계산하는 Standard Edition 프로시저입니다. Cluster Edition에서는 지원하지 않습니다.
문법과 인수
EXEC ROLLUP_REBUILD(source_tag, tag_name, begin_time, end_time);| 인수 | 현행 입력 |
|---|---|
| source_tag | 원본 TAG 식별자; 필요한 경우 소유자로 한정 |
| tag_name | 재구성할 한 태그 이름 문자열 |
| begin_time | 시각 문자열 또는 상수 문자열 인수의 TO_DATE |
| end_time | 같은 형식의 종료 시각; begin_time 이상 |
현재 시간 인수 처리는 일반 DATETIME 식의 평가가 아닙니다. NOW, NOW-1h, 컬럼·바인딩 매개변수 등을 예제로 쓰지 않습니다. 상대 범위가 필요하면 운영 도구에서 시각을 확정해 지원되는 상수 형식으로 전달합니다. 날짜 문자열과 형식·시간대를 명확히 합니다.
시간 범위
시작·종료가 속한 버킷을 포함하고 버킷 전체를 재계산합니다. 1분 단계의 00:00:30~00:01:00은 [00:00:00, 00:02:00) 범위입니다. 시작=종료도 그 시각의 버킷을 처리하며 시작>종료는 오류입니다. HOUR 단계는 시간 버킷 전체로 더 넓어질 수 있습니다.
단순히 원본 WHERE의 반개구간 끝을 그대로 전달하면 다음 버킷도 포함될 수 있습니다. 보정한 실제 시각과 각 집계의 버킷 경계를 기준으로 영향 범위를 정합니다.
대상과 제한
- 완전한 자동 SEC→MIN→HOUR 계층을 기본 실습 대상으로 합니다.
- 임의 이름의 수동 일반 ROLLUP, SEC가 없는 자동 계층까지 같은 경로로 처리한다고 가정하지 않습니다.
- Custom 트리는 별도 경로이며 현재 시간 경계 생성은 1 SEC·1 MIN·1 HOUR 간격을 대상으로 합니다. 10 MIN 등 생성 가능한 다른 간격과 재구성 가능 범위를 혼동하지 않습니다.
- Custom SELECT의 시간 버킷과 origin은 재구성 경계와 일치해야 합니다.
- 유효한 대상이 있는 상황에서 존재하지 않는 태그는 no-op일 수 있습니다.
- 원본 데이터가 없어졌다면 삭제 전의 통계 값을 복원할 수 없습니다.
실행 예
다음은 ch6_rebuild 실습 객체가 준비된 경우의 호출입니다.
EXEC ROLLUP_REBUILD(ch6_rebuild, 'S1',
TO_DATE('2026-01-01 00:00:30', 'YYYY-MM-DD HH24:MI:SS'),
TO_DATE('2026-01-01 00:01:00', 'YYYY-MM-DD HH24:MI:SS'));준비 SQL, 원본 정정, 기본·Custom 결과 비교와 정리는 6.10 완결 실습에 있습니다.
작업 상태와 실패
관련 집계 작업은 중지·재계산·재시작 단계를 거칩니다. 재구성 중 정상 집계가 그대로 계속 진행된다는 보장은 없습니다. 원본의 안정적인 조회를 위한 처리와 데이터 재생성의 영향을 격리 환경에서 확인합니다.
실패하면 일부 결과가 이미 변경됐을 수 있습니다. 전체 롤백이나 원래 중지 상태의 자동 복원을 전제로 하지 말고 원본·대상 버킷·V$ROLLUP·gap·최초 오류를 확인합니다. 지원되지 않는 작업을 제외하거나 절차를 보완하기 전에 같은 명령을 반복하지 않습니다.