append 명령
append 명령
append 명령은 하위 검색(subsearch)의 결과를 추가 행으로 입력 검색 결과(메인 검색)의 끝에 추가해요. 이 명령은 같은 필드 이름과 타입을 가진 열을 정렬하고, 메인 검색이나 하위 검색 중 한쪽에만 있는 열에는 해당 행의 누락된 필드에 NULL 값을 삽입해요.
출처: 문서
본문
구문(Syntax)
append 명령은 다음과 같은 구문을 가져요.
append <subsearch>
매개변수(Parameters)
append 명령은 다음 매개변수를 지원해요.
| Parameter | Required/Optional | Description |
|---|---|---|
<subsearch> |
Required | 보조 검색으로 PPL 명령을 실행해요. |
예시 1: 오류 및 경고 수를 나란히 추가하기
다음 쿼리는 서비스별 오류 수를 보여준 다음, 별도 쿼리에서 경고 수를 추가해요. 이를 통해 서비스 간 오류 및 경고 비율을 비교할 수 있어요.
source=otellogs
| where severityText = 'ERROR'
| stats count() as error_count by `resource.attributes.service.name`
| sort - error_count
| append [ source=otellogs | where severityText = 'WARN' | stats count() as warn_count by `resource.attributes.service.name` ]
| sort `resource.attributes.service.name`
| fields `resource.attributes.service.name`, error_count, warn_count
이 쿼리는 다음과 같은 결과를 반환해요.
| resource.attributes.service.name | error_count | warn_count |
|---|---|---|
| checkout | 2 | null |
| frontend-proxy | 1 | null |
| frontend-proxy | null | 2 |
| payment | 2 | null |
| product-catalog | 1 | null |
| product-catalog | null | 2 |
| recommendation | 1 | null |
예시 2: 요약 행을 상세 행에 추가하기
다음 쿼리는 심각도 수준을 개수별로 보여준 다음, 모든 수준의 총 개수를 추가해요.
source=otellogs
| stats count() as log_count by severityText
| sort - log_count
| append [ source=otellogs | stats count() as log_count | eval severityText = 'ALL' ]
| fields severityText, log_count
이 쿼리는 다음과 같은 결과를 반환해요.
| severityText | log_count |
|---|---|
| DEBUG | 3 |
| ERROR | 7 |
| INFO | 6 |
| WARN | 4 |
| ALL | 20 |
제한 사항(Limitations)
append 명령에는 다음과 같은 제한 사항이 있어요.
- 스키마 호환성(Schema compatibility): 메인 검색과 하위 검색 양쪽에 같은 이름의 필드가 존재하지만 타입이 호환되지 않으면 쿼리가 오류로 실패해요. 타입 충돌을 피하려면 같은 이름의 필드가 같은 데이터 타입을 공유하는지 확인해요. 또는 다른 필드 이름을 사용해요.
eval로 충돌하는 필드 이름을 바꾸거나fields로 충돌하지 않는 열을 선택할 수 있어요.