Tag 데이터 삭제
개요
Machbase는 성능 유지를 위해 설계된 특정 제약 조건과 함께 Tag 데이터에 대한 효율적인 삭제 작업을 제공합니다. 이러한 제약 조건을 이해하는 것은 효과적인 데이터 수명 주기 관리의 핵심입니다.
Tag 데이터 삭제 제약 조건
Machbase는 특정 시간 이전의 데이터 삭제만 지원합니다.
지원되지 않는 Tag 데이터 삭제 조건
- 특정 시간 범위의 데이터 삭제
지원되는 Tag 데이터 삭제 조건
- 특정 태그 데이터 삭제
- 특정 태그의 특정 시간 이전 데이터 삭제
- 특정 태그의 특정 시간 범위 데이터 삭제
- 특정 시간 이전의 모든 태그 삭제
- 모든 데이터 삭제
DELETE 문 실행
특정 태그 데이터 삭제
특정 태그를 지정하면 해당 태그와 관련된 모든 데이터가 삭제됩니다.
DELETE FROM TAG WHERE NAME = 'TAG-ID';## Original Data
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2024-01-01 10:00:00 000:000:000 1
TAG_0001 2024-01-01 10:00:01 000:000:000 1
TAG_0001 2024-01-01 10:00:04 000:000:000 1
TAG_0001 2024-01-01 10:00:06 000:000:000 1
TAG_0001 2024-01-01 10:00:09 000:000:000 1
TAG_0001 2024-01-01 10:00:10 000:000:000 1
TAG_0002 2024-01-01 10:00:02 000:000:000 1
TAG_0002 2024-01-01 10:00:03 000:000:000 1
TAG_0002 2024-01-01 10:00:05 000:000:000 1
TAG_0002 2024-01-01 10:00:07 000:000:000 1
TAG_0002 2024-01-01 10:00:08 000:000:000 1
[11] row(s) selected.
Mach> delete from tag where name = 'TAG_0002';
5 row(s) deleted.
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2024-01-01 10:00:00 000:000:000 1
TAG_0001 2024-01-01 10:00:01 000:000:000 1
TAG_0001 2024-01-01 10:00:04 000:000:000 1
TAG_0001 2024-01-01 10:00:06 000:000:000 1
TAG_0001 2024-01-01 10:00:09 000:000:000 1
TAG_0001 2024-01-01 10:00:10 000:000:000 1
[6] row(s) selected.특정 태그의 특정 시간 이전 데이터 삭제
특정 태그와 시간을 지정하면 해당 태그와 관련된 지정된 시간 이전의 데이터가 삭제됩니다.
DELETE FROM TAG WHERE NAME = 'TAG-ID' AND TIME <= 'Time-string';## Original Data
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2024-01-01 10:00:00 000:000:000 1
TAG_0001 2024-01-01 10:00:01 000:000:000 1
TAG_0001 2024-01-01 10:00:04 000:000:000 1
TAG_0001 2024-01-01 10:00:06 000:000:000 1
TAG_0001 2024-01-01 10:00:09 000:000:000 1
TAG_0001 2024-01-01 10:00:10 000:000:000 1
TAG_0002 2024-01-01 10:00:02 000:000:000 1
TAG_0002 2024-01-01 10:00:03 000:000:000 1
TAG_0002 2024-01-01 10:00:05 000:000:000 1
TAG_0002 2024-01-01 10:00:07 000:000:000 1
TAG_0002 2024-01-01 10:00:08 000:000:000 1
[11] row(s) selected.
Mach> delete from tag where name = 'TAG_0002' and time <= '2024-01-01 10:00:05';
3 row(s) deleted.
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2024-01-01 10:00:00 000:000:000 1
TAG_0001 2024-01-01 10:00:01 000:000:000 1
TAG_0001 2024-01-01 10:00:04 000:000:000 1
TAG_0001 2024-01-01 10:00:06 000:000:000 1
TAG_0001 2024-01-01 10:00:09 000:000:000 1
TAG_0001 2024-01-01 10:00:10 000:000:000 1
TAG_0002 2024-01-01 10:00:07 000:000:000 1
TAG_0002 2024-01-01 10:00:08 000:000:000 1
[8] row(s) selected.특정 태그의 특정 시간 범위 데이터 삭제
특정 태그와 시간 범위를 지정하면 해당 태그와 관련된 지정된 시간 범위 내의 데이터가 삭제됩니다.
DELETE FROM TAG WHERE NAME = 'TAG-ID' AND TIME >= 'Time-string' AND TIME <= 'Time-string';## Original Data
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2024-01-01 10:00:00 000:000:000 1
TAG_0001 2024-01-01 10:00:01 000:000:000 1
TAG_0001 2024-01-01 10:00:04 000:000:000 1
TAG_0001 2024-01-01 10:00:06 000:000:000 1
TAG_0001 2024-01-01 10:00:09 000:000:000 1
TAG_0001 2024-01-01 10:00:10 000:000:000 1
TAG_0002 2024-01-01 10:00:02 000:000:000 1
TAG_0002 2024-01-01 10:00:03 000:000:000 1
TAG_0002 2024-01-01 10:00:05 000:000:000 1
TAG_0002 2024-01-01 10:00:07 000:000:000 1
TAG_0002 2024-01-01 10:00:08 000:000:000 1
[11] row(s) selected.
Mach> delete from tag where name = 'TAG_0002' and time >= '2024-01-01 10:00:04' and time <= '2024-01-01 10:00:08';
3 row(s) deleted.
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2024-01-01 10:00:00 000:000:000 1
TAG_0001 2024-01-01 10:00:01 000:000:000 1
TAG_0001 2024-01-01 10:00:04 000:000:000 1
TAG_0001 2024-01-01 10:00:06 000:000:000 1
TAG_0001 2024-01-01 10:00:09 000:000:000 1
TAG_0001 2024-01-01 10:00:10 000:000:000 1
TAG_0002 2024-01-01 10:00:02 000:000:000 1
TAG_0002 2024-01-01 10:00:03 000:000:000 1
[8] row(s) selected.특정 시간 이전의 모든 태그 삭제
버전 8.0.50부터 Machbase는 태그 이름을 지정하지 않고 시간 기반 조건으로 향상된 DELETE 구문을 지원합니다.
BEFORE 절 사용 (레거시 구문)
DELETE FROM TAG BEFORE TO_DATE('Time-string');WHERE 절과 시간 조건 사용 (향상된 구문)
참고: 다음 향상된 구문은 Machbase 버전 8.0.50 이상에서 지원됩니다.
-- 정확한 시간의 데이터 삭제
DELETE FROM TAG WHERE time_column = 'time_string';
-- 특정 시간 이전 데이터 삭제
DELETE FROM TAG WHERE time_column < 'time_string';
-- 특정 시간 이전 또는 해당 시간의 데이터 삭제
DELETE FROM TAG WHERE time_column <= 'time_string';
-- 시간 범위 내의 데이터 삭제
DELETE FROM TAG WHERE time_column BETWEEN 'time_string1' AND 'time_string2';BEFORE 절 사용 예제:
## Original Data
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2018-01-01 01:00:00 000:000:000 1
TAG_0001 2018-01-02 02:00:00 000:000:000 2
TAG_0001 2018-01-03 03:00:00 000:000:000 3
TAG_0001 2018-01-04 04:00:00 000:000:000 4
TAG_0001 2018-01-05 05:00:00 000:000:000 5
TAG_0001 2018-01-06 06:00:00 000:000:000 6
TAG_0001 2018-01-07 07:00:00 000:000:000 7
TAG_0001 2018-01-08 08:00:00 000:000:000 8
TAG_0001 2018-01-09 09:00:00 000:000:000 9
TAG_0001 2018-01-10 10:00:00 000:000:000 10
TAG_0002 2018-02-01 01:00:00 000:000:000 11
TAG_0002 2018-02-02 02:00:00 000:000:000 12
TAG_0002 2018-02-03 03:00:00 000:000:000 13
TAG_0002 2018-02-04 04:00:00 000:000:000 14
TAG_0002 2018-02-05 05:00:00 000:000:000 15
TAG_0002 2018-02-06 06:00:00 000:000:000 16
TAG_0002 2018-02-07 07:00:00 000:000:000 17
TAG_0002 2018-02-08 08:00:00 000:000:000 18
TAG_0002 2018-02-09 09:00:00 000:000:000 19
TAG_0002 2018-02-10 10:00:00 000:000:000 20
[20] row(s) selected.
Mach> delete from tag before to_date('2018-02-01');
10 row(s) deleted.
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0002 2018-02-01 01:00:00 000:000:000 11
TAG_0002 2018-02-02 02:00:00 000:000:000 12
TAG_0002 2018-02-03 03:00:00 000:000:000 13
TAG_0002 2018-02-04 04:00:00 000:000:000 14
TAG_0002 2018-02-05 05:00:00 000:000:000 15
TAG_0002 2018-02-06 06:00:00 000:000:000 16
TAG_0002 2018-02-07 07:00:00 000:000:000 17
TAG_0002 2018-02-08 08:00:00 000:000:000 18
TAG_0002 2018-02-09 09:00:00 000:000:000 19
TAG_0002 2018-02-10 10:00:00 000:000:000 20
[10] row(s) selected.향상된 WHERE 절 사용 예제:
-- 2018-02-01 이전의 모든 데이터 삭제 (BEFORE 절과 동일)
Mach> delete from tag where time < '2018-02-01';
10 row(s) deleted.
-- 특정 시간의 모든 데이터 삭제
Mach> delete from tag where time = '2018-02-01 01:00:00';
2 row(s) deleted.
-- 특정 시간 범위의 모든 데이터 삭제
Mach> delete from tag where time between '2018-01-05' and '2018-01-07';
6 row(s) deleted.모든 데이터 삭제
조건이 없으면 모든 데이터가 삭제됩니다.
## Original Data
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
TAG_0001 2018-01-01 01:00:00 000:000:000 1
TAG_0001 2018-01-02 02:00:00 000:000:000 2
TAG_0001 2018-01-03 03:00:00 000:000:000 3
TAG_0001 2018-01-04 04:00:00 000:000:000 4
TAG_0001 2018-01-05 05:00:00 000:000:000 5
TAG_0001 2018-01-06 06:00:00 000:000:000 6
TAG_0001 2018-01-07 07:00:00 000:000:000 7
TAG_0001 2018-01-08 08:00:00 000:000:000 8
TAG_0001 2018-01-09 09:00:00 000:000:000 9
TAG_0001 2018-01-10 10:00:00 000:000:000 10
TAG_0002 2018-02-01 01:00:00 000:000:000 11
TAG_0002 2018-02-02 02:00:00 000:000:000 12
TAG_0002 2018-02-03 03:00:00 000:000:000 13
TAG_0002 2018-02-04 04:00:00 000:000:000 14
TAG_0002 2018-02-05 05:00:00 000:000:000 15
TAG_0002 2018-02-06 06:00:00 000:000:000 16
TAG_0002 2018-02-07 07:00:00 000:000:000 17
TAG_0002 2018-02-08 08:00:00 000:000:000 18
TAG_0002 2018-02-09 09:00:00 000:000:000 19
TAG_0002 2018-02-10 10:00:00 000:000:000 20
[20] row(s) selected.
Mach> delete from tag;
20 row(s) deleted.
Mach> select * from tag;
NAME TIME VALUE
--------------------------------------------------------------------------------------
[0] row(s) selected.ROLLUP 데이터 삭제
Machbase는 Tag 테이블과 연관된 롤업 데이터의 삭제를 지원합니다.
BEFORE 절 사용 (레거시 구문)
-- 특정 시간 이전의 모든 롤업 데이터 삭제
DELETE FROM TAG ROLLUP BEFORE TO_DATE('Time-string');
-- 모든 롤업 데이터 삭제
DELETE FROM TAG ROLLUP;BEFORE 문에서 시간을 지정하면 해당 시간 이전의 모든 롤업 데이터가 삭제됩니다. 시간을 지정하지 않으면 모든 롤업 데이터가 삭제됩니다.
WHERE 절과 시간 조건 사용 (향상된 구문)
참고: 다음 향상된 구문은 Machbase 버전 8.0.50 이상에서 지원됩니다.
-- 정확한 시간의 롤업 데이터 삭제
DELETE FROM TAG ROLLUP WHERE time_column = 'time_string';
-- 특정 시간 이전 롤업 데이터 삭제
DELETE FROM TAG ROLLUP WHERE time_column < 'time_string';
-- 특정 시간 이전 또는 해당 시간의 롤업 데이터 삭제
DELETE FROM TAG ROLLUP WHERE time_column <= 'time_string';
-- 시간 범위 내의 롤업 데이터 삭제
DELETE FROM TAG ROLLUP WHERE time_column BETWEEN 'time_string1' AND 'time_string2';예제:
-- 2018-01-15 이전의 롤업 데이터 삭제
Mach> delete from tag rollup where time < '2018-01-15';
14 row(s) deleted.
-- 특정 시간의 롤업 데이터 삭제
Mach> delete from tag rollup where time = '2018-01-15 00:00:00';
1 row(s) deleted.
-- 시간 범위 내의 롤업 데이터 삭제
Mach> delete from tag rollup where time between '2018-01-10' and '2018-01-20';
10 row(s) deleted.최근 업데이트