Copy values processor
출처: 문서
본문
Copy values processor
copy_values 프로세서는 이벤트 내에서 값을 복사하며, mutate event 프로세서예요.
구성
copy_values 프로세서는 다음 옵션으로 구성할 수 있어요.
| 옵션 | 필수 | 유형 | 설명 |
|---|---|---|---|
entries |
예 | entry | 이벤트에서 복사할 항목 목록입니다. 자세한 내용은 entry를 참조하세요. |
from_list |
아니요 | String | 복사할 객체 목록의 키입니다. |
to_list |
아니요 | String | 추가할 새 목록의 키입니다. |
overwrite_if_to_list_exists |
아니요 | Boolean | true로 설정하면 to_list로 지정된 key가 이벤트에 이미 있을 때 기존 값을 덮어씁니다. 기본값은 false입니다. |
entry
각 항목에 대해 다음 옵션을 구성할 수 있어요.
| 옵션 | 필수 | 유형 | 설명 |
|---|---|---|---|
from_key |
예 | String | 복사할 항목의 키입니다. |
to_key |
예 | String | 추가할 새 항목의 키입니다. |
overwrite_if_to_key_exists |
아니요 | Boolean | true로 설정하면 key가 이벤트에 이미 있을 때 기존 값을 덮어씁니다. 기본값은 false입니다. |
copy_when |
아니요 | String | copy_values 작업을 수행하기 위한 조건을 Data Prepper 표현식을 사용하여 지정합니다. 지정하면 표현식이 true로 평가될 때만 copy_values 작업이 실행됩니다. |
사용법
다음 예제는 copy_values 프로세서를 사용하는 방법을 보여줘요.
예: 값 복사 및 기존 필드 건너뛰기
다음 예제는 기존 필드를 건너뛰면서 값을 복사하도록 프로세서를 구성하는 방법을 보여줘요.
...
processor:
- copy_values:
entries:
- from_key: "message1"
to_key: "message2"
- from_key: "message1"
to_key: "message3"
...
{% include copy.html %}
입력 이벤트에 다음 데이터가 포함된 경우:
{"message1": "hello", "message2": "bye"}
프로세서는 "message1"을 "message3"에 복사하지만 "message2"는 이미 존재하므로 복사하지 않아요. 처리된 이벤트에는 다음 데이터가 포함돼요:
{"message1": "hello", "message2": "bye", "message3": "hello"}
예: 덮어쓰기를 사용한 값 복사
다음 예제는 값을 복사하도록 프로세서를 구성하는 방법을 보여줘요.
...
processor:
- copy_values:
entries:
- from_key: "message1"
to_key: "message2"
overwrite_if_to_key_exists: true
- from_key: "message1"
to_key: "message3"
...
{% include copy.html %}
입력 이벤트에 다음 데이터가 포함된 경우:
{"message1": "hello", "message2": "bye"}
프로세서는 "message1"을 "message2"와 "message3" 모두에 복사하고 "message2"의 기존 값을 덮어써요. 처리된 이벤트에는 다음 데이터가 포함돼요:
{"message1": "hello", "message2": "hello", "message3": "hello"}
예: 두 객체 목록 간 선택적 값 복사
다음 예제는 목록 간에 값을 복사하도록 프로세서를 구성하는 방법을 보여줘요.
...
processor:
- copy_values:
from_list: mylist
to_list: newlist
entries:
- from_key: name
to_key: fruit_name
...
{% include copy.html %}
입력 이벤트에 다음 데이터가 포함된 경우:
{
"mylist": [
{"name": "apple", "color": "red"},
{"name": "orange", "color": "orange"}
]
}
처리된 이벤트에는 선택적으로 복사된 필드가 있는 newlist가 포함돼요:
{
"newlist": [
{"fruit_name": "apple"},
{"fruit_name": "orange"}
],
"mylist": [
{"name": "apple", "color": "red"},
{"name": "orange", "color": "orange"}
]
}