sonar-delete-lookup-record-batch

입력 레코드의 키 필드 값을 기준으로 지정된 룩업 테이블의 레코드를 삭제합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한관리자
라이선스 사용량해당 없음
병렬 실행미지원
분산 실행수집 노드에서 실행 (mapper)

문법

... | sonar-delete-lookup-record-batch lookup=STR

옵션

lookup=STR
레코드를 삭제할 대상 룩업 테이블의 이름

입력 필드

필드타입필수 여부설명
(룩업 스키마의 키 필드 이름)문자열필수삭제할 레코드를 식별하는 키 값. 필드 이름은 lookup 옵션으로 지정한 룩업 테이블의 첫 번째(키) 필드 이름과 같아야 합니다

출력 필드

입력 레코드의 모든 필드에 다음 필드를 추가하여 반환합니다.

필드타입설명
_error문자열레코드 삭제에 실패한 경우의 오류 메시지

오류 코드

파싱 오류
오류 코드메시지설명
300166룩업 레코드 설정은 관리자 권한이 필요합니다.관리자 권한이 없는 계정으로 실행한 경우
300167lookup 옵션을 지정하세요.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 명령어를 사용하세요.

사용 예

  1. 룩업 테이블에서 레코드 삭제

    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 이름으로 제공됩니다.