MVEXPAND 명령어

MVEXPAND 명령어

mvexpand 명령어는 다중값(배열) 필드의 각 값을 별도의 행으로 확장해요.

출처: 문서

본문

mvexpand 명령어는 다중값(배열) 필드의 각 값을 별도의 행으로 확장해요. 각 문서에 대해 지정된 배열 필드의 모든 요소가 각각의 행으로 반환돼요.

구문 (Syntax)

mvexpand 명령어의 구문은 다음과 같아요:

mvexpand <field> [limit=<int>]

매개변수 (Parameters)

mvexpand 명령어는 다음 매개변수를 지원해요.

매개변수 필수/선택 설명
<field> 필수 확장할 다중값(배열) 필드예요.
limit 선택 문서당 확장할 최대 값 수예요. 지정하지 않으면 모든 배열 요소가 확장돼요.

예제 1: 기본 확장 사용하기

다음 쿼리는 배열을 만들고 별도의 행으로 확장해요:

source=people
| eval tags = array('error', 'warning', 'info')
| fields tags
| head 1
| mvexpand tags
| fields tags

쿼리는 다음과 같은 결과를 반환해요:

tags
error
warning
info

예제 2: 확장 행 수 제한하기

다음 쿼리는 확장 행 수를 제한하면서 배열을 확장해요:

source=people
| eval ids = array(1, 2, 3, 4, 5)
| fields ids
| head 1
| mvexpand ids limit=3
| fields ids

쿼리는 다음과 같은 결과를 반환해요:

ids
1
2
3

예제 3: 중첩 필드 확장하기

다음 쿼리는 다중값 projects 필드를 프로젝트당 하나의 행으로 확장해요:

source=people
| head 1
| fields projects
| mvexpand projects
| fields projects.name

쿼리는 다음과 같은 결과를 반환해요:

projects.name
AWS Redshift Spectrum querying
AWS Redshift security
AWS Aurora security

예제 4: 단일값 배열

단일 요소 배열은 하나의 행으로 확장돼요:

source=people
| eval tags = array('error')
| fields tags
| head 1
| mvexpand tags
| fields tags

쿼리는 다음과 같은 결과를 반환해요:

tags
error

예제 5: 없는 필드

다음 쿼리는 입력 스키마에 존재하지 않는 필드를 확장하려고 시도해요:

source=people
| eval some_field = 'x'
| fields some_field
| head 1
| mvexpand tags
| fields tags

쿼리는 다음과 같은 시맨틱 검사 예외(semantic check exception)를 발생시켜요:

{'reason': 'Invalid Query', 'details': "Field 'tags' not found in the schema", 'type': 'SemanticCheckException'}
  • nomv – 다중값 필드를 단일값 문자열로 변환해요.
  • mvcombine – 여러 행을 다중값 필드가 있는 단일 행으로 결합해요.

더 알아보기 (Learn more)