Python UDF 데이터 형식
Python UDF는 입력 인수와 함수의 반환 값으로 표준 Amazon Redshift 데이터 형식을 모두 사용할 수 있습니다. 표준 데이터 형식 외에도 ANYELEMENT 데이터 형식을 지원합니다. Amazon Redshift는 이 데이터 형식을 런타임에 입력되는 인수에 따라 표준 데이터 형식으로 자동 변환합니다. 스칼라 UDF는 ANYELEMENT 데이터 형식을 반환할 수 있습니다. 자세한 내용은 ANYELEMENT 데이터 형식 단원을 참조하십시오.
실행 중 Amazon Redshift는 처리를 위해 Amazon Redshift 데이터 형식의 인수를 Python 데이터 형식으로 변환합니다. 그런 다음 Python 데이터 형식의 반환 값을 해당 Amazon Redshift 데이터 형식으로 변환합니다. Amazon Redshift 데이터 형식에 대한 자세한 내용은 데이터 타입 섹션을 참조하세요.
다음 표는 Amazon Redshift 데이터 형식을 Python 데이터 형식으로 매핑한 것입니다.
Amazon Redshift 데이터 형식 | Python 데이터 형식 |
---|---|
smallint 정수 bigint bigint long |
int |
decimal 또는 numeric |
decimal |
double real |
float |
boolean |
bool |
char varchar |
문자열 |
타임스탬프 |
datetime |
ANYELEMENT 데이터 형식
ANYELEMENT는 다형성 데이터 형식입니다. 이 말은 함수가 인수의 데이터 형식으로 ANYELEMENT를 사용하도록 선언되면 함수를 호출하여 해당 인수를 입력할 때 모든 표준 Amazon Redshift 데이터 형식이 허용된다는 것을 의미합니다. ANYELEMENT 인수는 함수 호출 시 실제로 전달되는 데이터 형식으로 설정됩니다.
함수가 ANYELEMENT 데이터 형식을 다수 사용하면 함수 호출 시 모두 동일한 실제 데이터 형식으로 확인되어야 합니다. ANYELEMENT 인수 데이터 형식은 모두 ANYELEMENT로 전달되는 첫 번째 인수의 실제 데이터 형식으로 설정됩니다. 예를 들어 f_equal(anyelement, anyelement)
로 선언된 함수는 데이터 형식이 동일할 경우에 한해 입력 값을 2개 갖습니다.
함수의 반환 값이 ANYELEMENT로 선언되면 입력 인수는 1개 이상이 ANYELEMENT이어야 합니다. 반환 값의 실제 데이터 형식은 ANYELEMENT 입력 인수로 입력되는 실제 데이터 형식과 동일합니다.