sonar-delete-lookup-record-batch
입력 레코드의 키 필드 값을 기준으로 지정된 룩업 테이블의 레코드를 삭제합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 관리자 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
옵션
lookup=STR- 레코드를 삭제할 대상 룩업 테이블의 이름
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| (룩업 스키마의 키 필드 이름) | 문자열 | 필수 | 삭제할 레코드를 식별하는 키 값. 필드 이름은 lookup 옵션으로 지정한 룩업 테이블의 첫 번째(키) 필드 이름과 같아야 합니다 |
출력 필드
입력 레코드의 모든 필드에 다음 필드를 추가하여 반환합니다.
| 필드 | 타입 | 설명 |
|---|---|---|
| _error | 문자열 | 레코드 삭제에 실패한 경우의 오류 메시지 |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 300166 | 룩업 레코드 설정은 관리자 권한이 필요합니다. | 관리자 권한이 없는 계정으로 실행한 경우 |
| 300167 | lookup 옵션을 지정하세요. | lookup 옵션이 지정되지 않은 경우 |
| 300168 | 지정된 룩업이 존재하지 않습니다. | lookup 옵션에 지정한 이름의 룩업 테이블이 없는 경우 |
런타임 오류
해당 사항 없음
설명
sonar-delete-lookup-record-batch 명령어는 입력 레코드마다 룩업 테이블의 키 필드와 이름이 같은 필드 값을 읽어 해당 키의 레코드를 삭제합니다. 키 필드 이름은 룩업 스키마에 정의된 필드 중 첫 번째 필드 이름과 동일합니다.
키 필드 값이 없거나(_error: key is null.) 문자열 타입이 아니면(_error: invalid key type.) 해당 레코드는 처리하지 않고 건너뜁니다. 키에 해당하는 레코드가 룩업 테이블에 없으면 _error 필드에 key not found.가 기록됩니다. 이 메시지들은 로케일과 무관하게 항상 영어로 기록됩니다.
레코드 삭제가 데이터베이스 처리 단계에서 실패하는 경우(예: SQL 오류)에는 이 실패가 _error 필드에 기록되지 않습니다. 명령어는 이 단계의 실패를 반환값으로만 전달받을 뿐 출력 레코드에 반영하지 않으므로, _error 필드가 비어 있어도 실제로는 삭제되지 않았을 수 있습니다. 정확한 삭제 여부는 룩업 테이블을 직접 조회해 확인해야 합니다.
레코드를 새로 입력하려면 sonar-insert-lookup-record-batch 명령어를 사용하세요.
사용 예
-
룩업 테이블에서 레코드 삭제
json "[{'ip': '192.0.2.10'}, {'ip': '192.0.2.99'}]" | sonar-delete-lookup-record-batch lookup="asset-ip-map"asset-ip-map룩업 테이블에서ip필드 값과 일치하는 키의 레코드를 삭제합니다. 존재하지 않는 키는_error필드에key not found.가 기록됩니다.
변경 이력
sonar-delete-lookup-record-batch 명령어는 소나 4.0.2609.0 버전부터 사용 가능합니다.
이 명령어는 실험실(Lab) 앱이 제공하던 것을 소나 코어에 내장한 것입니다(SNR#3463). 내장되지 않은 버전에서는 실험실 앱을 설치해 사용할 수 있습니다. 실험실 앱에서는 sonar-delete-lookup-records 이름으로 제공됩니다.