개념: Prism 표현식 언어
Prism Analytics에는 함수와 연산자로 구성된 자체 표현식 언어가 포함되어 있습니다. Prism 표현식 언어를 사용하여
표현식을
생성합니다. 이 표현식을 사용하여 신규 값을 생성하거나 기존 값을 필터링할 수 있습니다.표현식은 필드, 상수 값, 연산자 및 함수를 결합하여 값을 계산하거나 생성합니다. 표현식은 숫자 또는 텍스트 값과 같은 특정 필드 유형의 값을 출력합니다. 단순 표현식은 단일 상수 값, 지정된 필드의 값 또는 함수일 수 있습니다. 연산자를 사용하여 둘 이상의 간단한 표현식을 하나의 복잡한 표현식으로 조인할 수 있습니다.
데이터세트에서 표현식을 사용할 수 있습니다.
- 계산 필드표현식을 사용하여 소스 데이터에서 작동하는 계산 필드를 정의합니다. 계산 필드 표현식은 계산 또는 조건에 따라 값을 생성하고 각 입력 행의 값을 반환합니다. 계산 필드 표현식에는 다른 필드의 값, 상수, 수학 연산자, 비교 연산자 또는 기본제공 행 함수가 포함될 수 있습니다.
- 단계 필터링필터 단계에서 표현식을 사용하여 데이터세트의 소스 데이터 범위를 제한합니다.
표현식 작성기를 사용하면 데이터세트에서 계산 필드 표현식을 생성할 수 있습니다. 데이터세트에서 사용가능한 필드와 Prism 함수 목록이 표시됩니다. 올바른 구문, 입력 필드 유형 등에 대해 표현식을 검증합니다.
함수 입력 및 출력
함수는 하나 이상의 입력 값을 가져와서 출력 값을 반환합니다. 입력 값은 리터럴 값이거나 값이 포함된 필드명일 수 있습니다. 두 경우 모두 함수는 입력 값이 텍스트 또는 정수와 같은 특정 필드 유형일 것으로 예상합니다. 예: CONCAT() 함수는 Text 입력값을 결합하고 새 Text를 출력합니다.
이 예에서는 CONCAT() 함수를 사용하여 리터럴 슬래시 문자로 구분된
month
,day
및year
필드의 값을 연결하는 방법을 보여줍니다.CONCAT([month],"/",[day],"/",[year])
함수 반환 값은 입력 유형과 동일하거나 완전히 새로운 필드 유형일 수 있습니다. 예를 들어 TO_DATE() 함수는 텍스트를 입력으로 받지만 날짜 값을 출력합니다. 함수에 텍스트가 있어야 하지만 다른 필드 유형이 입력으로 전달되면 오류가 반환됩니다.
일반적으로 함수는 필드 유형 또는 용도에 따라 분류됩니다. 예를 들어 CONCAT()은 텍스트 함수이고 TO_DATE()는 필드 유형 변환 함수입니다.
중첩 함수
함수는 다른 함수를 인수로 사용할 수 있습니다. 예를 들어 CONCAT 함수를 TO_DATE() 함수에 대한 인수로 사용할 수 있습니다. 최종 결과는 10/31/2014 형식의 날짜 값입니다.
TO_DATE(CONCAT([month],"/",[day],"/",[year]),"MM/dd/yyyy")
중첩 함수는 올바른 필드 유형을 반환해야 합니다. 따라서 TO_DATE()는 텍스트 입력을 예상하고 CONCAT()은 텍스트를 반환하므로 중첩이 성공합니다.
현재 데이터세트의 필드 참조
모든 필드명을 대괄호()로 묶는 것이 좋습니다.
[]
) 예를 들어 다음과 같습니다.TO_INT([sales])
TO_INT([Sale Amount])
TO_INT([2013_data])
TO_INT([count])
필드명에 닫는 대괄호 ]가 포함된 경우 닫는 대괄호를 두 번 ]]로 이스케이프해야 합니다. 다음과 같은 필드명이 있다고 가정합니다.
[Total Sales]
전체 필드명을 대괄호로 묶고 실제 필드명의 일부인 닫는 괄호를 이스케이프합니다.
[[Total Sales]]]
리터럴 텍스트 값
리터럴 또는 실제 텍스트 값을 지정하려면 값을 큰따옴표(
"
) 예: 다음 표현식은성별
필드의 값을남성
,여성
또는미상
의 리터럴 값으로 변환합니다.
CASE WHEN [gender]="M"THEN"male"WHEN [gender]="F"THEN"female"ELSE"unknown"END
리터럴 값 자체 내에서 리터럴 따옴표를 이스케이프하려면 리터럴 따옴표 문자를 두 배로 늘리십시오. 예를 들어 다음과 같습니다.
CASE WHEN [height]="60""" THEN "5 feet" WHEN [height]="72""" THEN "6 feet" ELSE "other" END
REGEX() 함수는 특별한 경우입니다. REGEX() 함수에서 Text 표현식도 따옴표로 묶습니다. Text 표현식에 리터럴 따옴표가 포함된 경우 리터럴 따옴표 문자를 두 배로 늘립니다. 예를 들어 다음과 같습니다.
REGEX([height], "\d\'(\d)+""")
실제 날짜 값
필터 단계 표현식에서 날짜 값을 참조하려면 다음 형식(또는 해당 형식의 축약형 버전)을 사용해야 합니다.
yyyy-MM-ddTHH:mm:ss:SSSZ
예를 들어 다음과 같습니다.
[Order Date] BETWEEN 2016-06-01T00:00:00.000Z AND 2016-07-31T00:00:00.000Z
필터 표현식이 전체 형식의 축약 버전인 경우 Prism은 포함되지 않은 모든 값을 영(0) 값으로 지정합니다. 예를 들어 이 표현식은 다음과 같습니다.
[Order Date] >= 2017-01-01
다음과 같습니다.
[Order Date] >= 2017-01-01T00:00:00.000Z
계산 필드 표현식에서 리터럴 날짜 값을 참조하려면 TO_DATE를 사용하여 날짜 및 시간 구성요소의 형식을 지정해야 합니다. TO_DATE는 Text 리터럴 인수와 형식 문자열을 사용합니다. 예를 들어 다음과 같습니다.
CASE WHEN [Order Date]=TO_DATE("2013-01-01 00:00:59 PST","yyyy-MM-dd HH:mm:ss z") THEN "free shipping" ELSE "standard shipping" DONE
리터럴 숫자 값
리터럴 숫자 값의 경우 특별한 이스케이프 또는 서식 없이 숫자 자체를 지정할 수 있습니다. 예를 들어 다음과 같습니다.
CASE WHEN [is married]=1THEN "married" WHEN [is married]=0THEN "not_married" ELSE NULL END