데이터 준비 매핑 함수
데이터 준비 함수를 사용하여 소스 필드에 입력된 내용을 기반으로 값을 계산하고 계산할 수 있습니다.
필드
필드 이름은 문자, 달러 기호($
) 또는 밑줄 문자(_
)로 시작하는 유니코드 문자와 숫자의 무제한 길이 시퀀스인 모든 올바른 식별자가 될 수 있습니다. 변수 이름도 대소문자를 구분합니다.
필드 이름이 이 규칙을 따르지 않으면 필드 이름은 ${}
(으)로 래핑해야 합니다. 따라서 예를 들어 필드 이름이 "First Name" 또는 "First.Name"이면 이름은 각각 ${First Name}
또는 ${First\.Name}
과 같이 래핑되어야 합니다.
.
)가 있으면 백슬래시(\
)를 사용하여 특수 문자를 이스케이프 처리해야 합니다. 자세한 내용은 특수 문자 이스케이프에 대한 안내서를 참조하십시오.필드 이름이 다음 예약된 키워드의 any 인 경우 ${}{}
(으)로 래핑해야 합니다.
new, mod, or, break, var, lt, for, false, while, eq, gt, div, not, null, continue, else, and, ne, true, le, if, ge, return, _errors, do, function, empty, size
또한 예약된 키워드에는 이 페이지에 나열된 매퍼 함수도 포함됩니다.
하위 필드 내의 데이터는 점 표기법을 사용하여 액세스할 수 있습니다. 예를 들어 name
개체가 있는 경우 firstName
필드에 액세스하려면 name.firstName
을(를) 사용합니다.
함수 목록
다음 표에는 샘플 표현식 및 결과 출력을 포함하여 지원되는 모든 매핑 함수가 나열되어 있습니다.
문자열 함수 string
- STRING: 연결할 문자열입니다.
"Hi, there!"
\
(으)로 이스케이프 처리해야 하는 구분 기호 필요: +, ?, ^, |, ., [, (, {, ), *, $, \
구분 기호로 여러 문자를 포함하는 경우 구분 기호는 여러 문자 구분 기호로 처리됩니다.- 문자열: 필수 분할해야 하는 문자열입니다.
- REGEX: 선택 사항 문자열을 분할하는 데 사용할 수 있는 정규식입니다.
["Hi,", "there"]
- 입력: 필수 검색 중인 문자열입니다.
- 하위 문자열: 필수 문자열 내에서 검색 중인 하위 문자열입니다.
- START_POSITION: 선택 사항 문자열에서 찾기 시작할 위치입니다.
- 발생 횟수: 선택 사항 시작 위치에서 찾을 n번째 발생 횟수입니다. 기본적으로 1입니다.
- 입력: 필수 입력 문자열입니다.
- TO_FIND: 필수 입력 내에서 조회할 문자열입니다.
- TO_REPLACE: 필수 "TO_FIND" 내의 값을 대체할 문자열입니다.
- 입력: 필수 입력 문자열입니다.
- START_INDEX: 필수 하위 문자열이 시작되는 입력 문자열의 인덱스입니다.
- LENGTH: 필수 하위 문자열의 길이입니다.
소문자
- 입력: 필수 소문자로 변환되는 문자열입니다.
lcase("HeLLo")
ucase
- 입력: 필수 대문자로 변환되는 문자열입니다.
ucase("HeLLo")
\
(으)로 이스케이프하려면 필요 구분 기호가 필요합니다. \
. 여러 구분 기호를 포함하면 문자열에 있는 구분 기호 중 any 에서 문자열이 분할됩니다. 참고: 이 함수는 구분 기호의 존재 여부에 관계없이 문자열에서 null이 아닌 인덱스만 반환합니다. 결과 배열에 null을 포함한 모든 인덱스가 필요한 경우에는 "explode" 함수를 대신 사용하십시오.- 입력: 필수 분할할 입력 문자열입니다.
- 구분 기호: 필수 입력을 분할하는 데 사용되는 문자열입니다.
["Hello", "world"]
- 구분 기호: 필수 개체를 연결하는 데 사용할 문자열입니다.
- 개체: 필수 조인할 문자열 배열입니다.
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- 입력: 필수 패딩될 문자열입니다. 이 문자열은 null일 수 있습니다.
- 개수: 필수 패딩할 문자열의 크기입니다.
- 패딩: 필수 입력을 패딩할 문자열입니다. null이거나 비어 있으면, 단일 공백으로 처리됩니다.
- 입력: 필수 패딩될 문자열입니다. 이 문자열은 null일 수 있습니다.
- 개수: 필수 패딩할 문자열의 크기입니다.
- 패딩: 필수 입력을 패딩할 문자열입니다. null이거나 비어 있으면, 단일 공백으로 처리됩니다.
- STRING: 필수 첫 번째 "n" 문자를 가져오는 문자열입니다.
- 개수: 필수 문자열에서 가져올 "n" 문자입니다.
- 문자열: 필수 마지막 "n"자를 가져오는 문자열입니다.
- 개수: 필수 문자열에서 가져올 "n" 문자입니다.
- 문자열: 필수 공백을 제거할 문자열입니다.
- 문자열: 필수 공백을 제거할 문자열입니다.
- 문자열: 필수 공백을 제거할 문자열입니다.
- STRING1: 필수 비교할 첫 번째 문자열입니다.
- STRING2: 필수 비교할 두 번째 문자열입니다.
- STRING1: 필수 비교할 첫 번째 문자열입니다.
- STRING2: 필수 비교할 두 번째 문자열입니다.
정규 표현식 함수
- 문자열: 필수 그룹을 추출하는 문자열입니다.
- REGEX: 필수 그룹을 일치시킬 정규식입니다.
- STRING: 필수 확인 중인 문자열이 정규식과 일치합니다.
- REGEX: 필수 비교 중인 정규식입니다.
해시 함수 hashing
- 입력: 필수 해시할 일반 텍스트입니다.
- CHARSET: 선택 사항 문자 집합의 이름입니다. 가능한 값에는 UTF-8, UTF-16, ISO-8859-1 및 US-ASCII가 포함됩니다.
- 입력: 필수 해시할 일반 텍스트입니다.
- CHARSET: 선택 사항 문자 집합의 이름입니다. 가능한 값에는 UTF-8, UTF-16, ISO-8859-1 및 US-ASCII가 포함됩니다.
- 입력: 필수 해시할 일반 텍스트입니다.
- CHARSET: 선택 사항 문자 집합의 이름입니다. 가능한 값에는 UTF-8, UTF-16, ISO-8859-1 및 US-ASCII가 포함됩니다.
- 입력: 필수 해시할 일반 텍스트입니다.
- CHARSET: 선택 사항 문자 집합의 이름입니다. 가능한 값에는 UTF-8, UTF-16, ISO-8859-1 및 US-ASCII가 포함됩니다.
- 입력: 필수 해시할 일반 텍스트입니다.
- CHARSET: 선택 사항 문자 집합의 이름입니다. 가능한 값에는 UTF-8, UTF-16, ISO-8859-1 및 US-ASCII가 포함됩니다.
URL 함수 url
- URL: 필수 프로토콜을 추출해야 하는 URL입니다.
- URL: 필수 호스트를 추출해야 하는 URL입니다.
- URL: 필수 포트를 추출해야 하는 URL입니다.
- URL: 필수 경로를 추출해야 하는 URL입니다.
- FULL_PATH: 선택 사항 전체 경로가 반환되는지 여부를 결정하는 부울 값입니다. false로 설정하면 경로의 끝만 반환됩니다.
- URL: 필수 쿼리 문자열을 가져오려는 URL입니다.
- 앵커: 필수 쿼리 문자열에서 앵커로 수행할 작업을 결정합니다. "retain", "remove" 또는 "append"의 세 가지 값 중 하나일 수 있습니다.
값이 "유지"이면 반환된 값에 앵커가 연결됩니다.
값이 "remove"이면 반환된 값에서 앵커가 제거됩니다.
값이 "append"이면 앵커가 별도의 값으로 반환됩니다.
get_url_query_str("foo://example.com:8042 /over/there?name="there?name=", "1"ferret#nose", "1"ferret#nose") "remove")_url_query_get_str("foo://example.com8/04/over?ferret2", "append")
{"name": "ferret#nose"}
{"name": "ferret"}
{"name": "ferret", "_anchor_": "nose"}
- URL: 필수 ASCII 문자로 바꾸거나 인코딩하려는 특수 문자가 있는 입력 URL입니다.
- URL: 필수 특수 문자로 디코딩할 ASCII 문자가 있는 입력 URL입니다.
날짜 및 시간 함수 date-and-time
date
함수에 대한 자세한 내용은 데이터 형식 처리 안내서의 날짜 섹션에서 찾을 수 있습니다.2021-10-26T10:10:24Z
- DATE: 필수 입력 날짜(ZonatedDateTime 개체)로서 서식을 지정할.
- 형식: 필수 날짜를 변경할 형식입니다.
yyyy-MM-dd HH:mm:ss
")2019-10-23 11:24:35
- 타임스탬프: 필수 서식을 지정할 타임스탬프입니다. 밀리초 단위로 기록됩니다.
- 형식: 필수 타임스탬프를 만들 형식입니다.
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- 날짜: 필수 날짜를 나타내는 문자열입니다.
- 형식: 필수 원본 날짜의 형식을 나타내는 문자열입니다.참고: 날짜 문자열을 변환할 형식을 그렇지 않습니다.
- DEFAULT_DATE: 필수 제공된 날짜가 null인 경우 기본 날짜가 반환됩니다.
2019-10-23T11:24:00Z
- 날짜: 필수 날짜를 나타내는 문자열입니다.
- 형식: 필수 원본 날짜의 형식을 나타내는 문자열입니다.참고: 날짜 문자열을 변환할 형식을 그렇지 않습니다.
2019-10-23T11:24:00Z
- 날짜: 필수 날짜를 나타내는 문자열입니다.
"year"
"yyyy"
"yy"
"quarter"
"qq"
"q"
"month"
"mm"
"m"
"dayofyear"
"dy"
"y"
"day"
"dd"
"d"
"week"
"ww"
"w"
"weekday"
"dw"
"w"
"hour"
"hh1 "
"분"
"mi"
"n"
"초"
"ss"
"s"
"밀리초"
"SSS"
- 구성 요소: 필수 날짜의 일부를 나타내는 문자열입니다.
- 날짜: 필수 표준 형식의 날짜입니다.
"year"
"yyyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- 구성 요소: 필수 날짜의 일부를 나타내는 문자열입니다.
- 값: 필수 지정된 날짜에 구성 요소에 대해 설정할 값입니다.
- 날짜: 필수 표준 형식의 날짜입니다.
- 연도: 필수 4자리 숫자로 작성된 연도입니다.
- 월: 필수 월 허용되는 값은 1-12입니다.
- 일: 필수 일. 허용되는 값은 1~31입니다.
- 시간: 필수 시간. 허용되는 값은 0~23입니다.
- 분: 필수 분. 허용되는 값은 0~59입니다.
- NANOSECOND: 필수 나노초 값. 허용되는 값은 0에서 999999999까지입니다.
- 시간대: 필수 날짜 시간에 대한 시간대입니다.
2019-10-17T11:55:12Z
- 날짜: 필수 변환하려는 날짜입니다.
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- 날짜: 필수 변환하려는 날짜입니다.
- 영역: 필수 날짜를 전환하려는 시간대입니다.
zone_date_to_zone(now(), "Europe/Paris")
2021-10-26T15:43:59Z
계층 - 객체 objects
- 입력: 필수 검사하려는 개체가 비어 있습니다.
is_empty([1, null, 2, 3])
- 입력: 필수 키 및 배열 쌍의 그룹입니다.
arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35])
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }]
- 입력: 필수 키/값 쌍의 단순 목록입니다.
{"firstName": "John", "lastName": "Doe"}
- STRING: 필수 개체를 만들기 위해 구문 분석 중인 문자열입니다.
- VALUE_DELIMITER: 선택 사항 필드와 값을 구분하는 구분 기호입니다. 기본 구분 기호:
:
. - FIELD_DELIMITER: 선택 사항 필드 값 쌍을 구분하는 구분 기호입니다. 기본 구분 기호:
,
.
str_to_object()
과(와) 함께 get()
함수를 사용하여 문자열의 키 값을 검색할 수 있습니다.- 예 #1: str_to_object("firstName - John ; lastName - ; - 123 345 7890", "-", ";")
- 예 #2: str_to_object("firstName - John ; lastName - ; phone - 123 456 7890", "-", ";").get("firstName")
- 예제 #1:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- 예 #2: "John"
is_set()
함수를 대체합니다.- 입력: 필수 원본 데이터 내에 경로가 있는지 확인할 경로입니다.
null
(으)로 설정합니다. 필드를 대상 스키마에 복사하지 않으려는 경우 사용해야 합니다.null
- 개체: 필수 키를 추출할 개체입니다.
["book1", "book2"]
- 문자열: 필수 구문 분석할 문자열입니다.
- 키: 필수 값을 추출할 키입니다.
- VALUE_DELIMITER: 필수 필드와 값을 구분하는 구분 기호입니다.
null
또는 빈 문자열이 제공된 경우 이 값은:
입니다. - FIELD_DELIMITER: 선택 사항 필드 쌍과 값 쌍을 구분하는 구분 기호입니다.
null
또는 빈 문자열이 제공된 경우 이 값은,
입니다.
- 맵: 필수 입력 맵 데이터입니다.
- 키: 필수 키는 단일 문자열 또는 문자열 배열일 수 있습니다. 다른 기본 유형(데이터/숫자)이 제공되면 문자열로 처리됩니다.
- 맵: 필수 입력 맵 데이터
- 키: 필수 키는 단일 문자열 또는 문자열 배열일 수 있습니다. 다른 기본 유형(데이터/숫자)이 제공되면 문자열로 처리됩니다.
- 키: 필수 키는 문자열이어야 합니다. 정수 또는 날짜와 같은 다른 기본 값이 제공되면 문자열로 자동 변환되고 문자열로 처리됩니다.
- ANY_TYPE: 필수 맵을 제외한 지원되는 모든 XDM 데이터 형식을 참조합니다.
- 개체: 필수 들어오는 개체 또는 개체 배열을 제공하고 개체 내의 특성을 키로 지정할 수 있습니다.
- 개체: 필수 들어오는 개체 또는 개체 배열을 제공하고 개체 내의 특성을 키로 지정할 수 있습니다.
개체 복사 기능에 대한 자세한 내용은 아래 섹션을 참조하십시오.
계층 - 배열 arrays
- 입력: 필수 null이 아닌 첫 번째 개체를 찾을 배열입니다.
- 입력: 필수 첫 번째 요소를 찾을 배열입니다.
- 입력: 필수 마지막 요소를 찾을 배열입니다.
- 배열: 필수 요소를 추가할 배열입니다.
- 값: 배열에 추가할 요소입니다.
- 배열: 필수 요소를 추가할 배열입니다.
- 값: 상위 배열에 추가할 배열입니다.
- INCLUDE_NULLS: 필수 응답 배열에 nulls를 포함할지 여부를 나타내는 부울 값입니다.
- 값: 필수 배열로 변환할 요소입니다.
[1, 2, 3]
- 입력: 필수 크기를 찾으려는 개체입니다.
size_of([1, 2, 3, 4])
- 배열: 필수 프로필에 배열을 추가하는 배열입니다.
upsert_array_append([123, 456])
- 배열: 필수 프로필에서 배열을 바꿀 배열입니다.
upsert_array_replace([123, 456], 1)
- 구분 기호: 필수 배열에서 요소를 연결하는 데 사용되는 구분 기호입니다.
- 배열: 필수 병합할 배열입니다(병합한 후).
array_to_string(";", ["Hello", "world"])
- 배열: 필수 필터링할 배열
- 조건자: 필수 특정 배열의 각 요소에 적용할 조건자입니다.
filterArray([5, -6, 0, 7], x -> x > 0)
- 배열: 필수 변환할 배열입니다.
- 조건자: 필수 특정 배열의 각 요소에 적용할 조건자입니다.
transformArray([5, 6, 7], x -> x + 1)
- 배열: 필수 병합할 배열입니다.
계층 - 맵 map
- 입력: 필수 null이 아닌 첫 번째 개체를 찾을 개체 배열입니다.
- 키: 필수 키는 개체 배열의 필드 이름이어야 하며 값으로 개체여야 합니다.
- 입력: 필수 null이 아닌 첫 번째 개체를 찾을 개체 배열입니다.
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"
논리 연산자 logical-operators
- 키: 필수 일치시킬 키입니다.
- OPTIONS: 필수 키/값 쌍의 병합된 배열입니다. 원할 경우 끝에 기본값을 입력할 수 있습니다.
제공된 상태 코드가 "pa", "Pennsylvania"인 경우.
stateCode가 다음과 일치하지 않으면 "N/A"입니다.
- 식: 필수 계산 중인 부울 식입니다.
- TRUE_VALUE: 필수 식이 true로 평가되는 경우 반환되는 값입니다.
- FALSE_VALUE: 필수 식이 false로 평가되는 경우 반환되는 값입니다.
집계 aggregation
- OPTIONS: 필수 서로 비교할 수 있는 하나 이상의 개체입니다.
- OPTIONS: 필수 서로 비교할 수 있는 하나 이상의 개체입니다.
유형 전환 type-conversions
- STRING: 필수 BigInteger로 변환될 문자열입니다.
- STRING: 필수 Double로 변환할 문자열입니다.
- STRING: 필수 Float로 변환할 문자열입니다.
- STRING: 필수 정수로 변환될 문자열입니다.
JSON 함수 json
- 문자열: 필수 역직렬화할 JSON 문자열입니다.
특수 작업 special-operations
guid
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- 문자열: 필수 ECID로 변환할 FPID 문자열입니다.
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"
사용자 에이전트 기능 user-agent
아래 표에 포함된 모든 사용자 에이전트 함수는 다음 값 중 하나를 반환할 수 있습니다.
- 휴대폰 - 작은 화면이 있는 모바일 디바이스(일반적으로 7" 미만)
- 모바일 - 아직 식별되지 않은 모바일 디바이스. 이 모바일 디바이스는 eReader, 태블릿, 전화기, 시계 등일 수 있다.
장치 필드 값에 대한 자세한 내용은 이 문서의 부록에 있는 장치 필드 값 목록을 참조하십시오.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
- USER_AGENT: 필수 사용자 에이전트 문자열입니다.
Analytics 함수 analytics
- EVENT_STRING: 필수 쉼표로 구분된 Analytics 이벤트 문자열입니다.
- EVENT_NAME: 필수 추출할 이벤트 이름 및 ID입니다.
- EVENT_STRING: 필수 쉼표로 구분된 Analytics 이벤트 문자열입니다.
- EVENT_NAME: 필수 값을 추출할 이벤트 이름입니다.
- PRODUCTS_STRING: 필수 Analytics 제품 문자열입니다.
- PRODUCTS_STRING: 필수 Analytics 제품 문자열입니다.
- PRODUCTS_STRING: 필수 Analytics 제품 문자열입니다.
- PRODUCTS_STRING: 필수 Analytics 제품 문자열입니다.
- PRODUCTS_STRING: 필수 Analytics 제품 문자열입니다.
- EVENT_NAME: 필수 값을 추출할 이벤트 이름입니다.
- PRODUCTS_STRING: 필수 Analytics 제품 문자열입니다.
- EVAR 이름: 필수 추출할 eVar 이름입니다.
개체 복사 object-copy
객체 복사 기능을 사용하면 매핑을 변경하지 않고 객체의 속성을 자동으로 복사할 수 있습니다. 예를 들어 소스 데이터의 구조가 다음과 같은 경우:
address{
line1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
XDM 구조:
addr{
addrLine1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
그러면 매핑은 다음과 같이 됩니다.
address -> addr
address.line1 -> addr.addrLine1
위의 예에서 address
개체가 addr
에 매핑되어 있으므로 city
및 state
특성도 런타임에 자동으로 수집됩니다. XDM 구조에서 line2
특성을 만들려고 했는데 입력 데이터에 address
개체에 line2
이(가) 포함되어 있으면 매핑을 수동으로 변경할 필요 없이 자동으로 수집됩니다.
자동 매핑이 작동하도록 하려면 다음 전제 조건을 충족해야 합니다.
- 상위 수준 개체를 매핑해야 합니다.
- 새 속성은 XDM 스키마에서 생성되어야 합니다.
- 새 속성은 소스 스키마와 XDM 스키마에서 이름이 일치해야 합니다.
전제 조건 중 어느 것이든 충족되지 않으면 데이터 준비를 사용하여 소스 스키마를 XDM 스키마에 수동으로 매핑해야 합니다.
부록
다음은 데이터 준비 매핑 기능 사용에 대한 추가 정보입니다
특수 문자 special-characters
아래 표는 예약 문자와 해당 인코딩 문자 목록을 간략하게 설명합니다.
장치 필드 값 device-field-values
아래 표에는 장치 필드 값 목록과 해당 설명이 나와 있습니다.
useragents
입니다.useragents
입니다.useragent
문자열에서 스크립팅이 검색되는 경우에 사용됩니다.코드 샘플 code-samples
map_get_values map-get-values
code language-json |
---|
|
map_has_keys map_has_keys
code language-json |
---|
|
add_to_map add_to_map
code language-json |
---|
|
object_to_map object_to_map
구문 1
code language-json |
---|
|
구문 2
code language-json |
---|
|
구문 3
code language-json |
---|
|
array_to_map array_to_map
code language-json |
---|
|