

# 사용자 정의 함수 API
<a name="aws-glue-api-catalog-functions"></a>

사용자 지정 함수 API는 함수로 작업할 때 사용되는 AWS Glue 데이터 유형 및 작업에 대해 설명합니다.

## 데이터 타입
<a name="aws-glue-api-catalog-functions-objects"></a>
+ [UserDefinedFunction 구조](#aws-glue-api-catalog-functions-UserDefinedFunction)
+ [UserDefinedFunctionInput 구조](#aws-glue-api-catalog-functions-UserDefinedFunctionInput)

## UserDefinedFunction 구조
<a name="aws-glue-api-catalog-functions-UserDefinedFunction"></a>

Hive 사용자 정의 함수(`UDF`) 정의와 동등한 수준을 보여줍니다.

**필드**
+ `FunctionName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수의 이름입니다.
+ `DatabaseName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수를 포함하는 카탈로그 데이터베이스의 이름입니다.
+ `ClassName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수 코드가 포함된 Java 클래스입니다.
+ `OwnerName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수의 소유자입니다.
+ `OwnerType` – UTF-8 문자열입니다(유효 값: `USER` \$1 `ROLE` \$1 `GROUP`).

  소유자 유형입니다.
+ `CreateTime` – 타임스탬프입니다.

  함수가 생성된 시간.
+ `ResourceUris` – [ResourceUri](aws-glue-api-common.md#aws-glue-api-common-ResourceUri) 객체의 배열이며 구조는 1,000개 이하입니다.

  함수 리소스 URI
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  함수가 있는 Data Catalog의 ID입니다.

## UserDefinedFunctionInput 구조
<a name="aws-glue-api-catalog-functions-UserDefinedFunctionInput"></a>

사용자 정의 함수를 생성하거나 업데이트할 때 사용되는 구조입니다.

**필드**
+ `FunctionName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수의 이름입니다.
+ `ClassName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수 코드가 포함된 Java 클래스입니다.
+ `OwnerName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수의 소유자입니다.
+ `OwnerType` – UTF-8 문자열입니다(유효 값: `USER` \$1 `ROLE` \$1 `GROUP`).

  소유자 유형입니다.
+ `ResourceUris` – [ResourceUri](aws-glue-api-common.md#aws-glue-api-common-ResourceUri) 객체의 배열이며 구조는 1,000개 이하입니다.

  함수 리소스 URI

## 운영
<a name="aws-glue-api-catalog-functions-actions"></a>
+ [CreateUserDefinedFunction 작업(Python: create\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-CreateUserDefinedFunction)
+ [UpdateUserDefinedFunction 작업 (Python: update\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-UpdateUserDefinedFunction)
+ [DeleteUserDefinedFunction 작업 (Python: delete\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-DeleteUserDefinedFunction)
+ [GetUserDefinedFunction 작업 (Python: get\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-GetUserDefinedFunction)
+ [GetUserDefinedFunctions 작업 (Python: get\$1user\$1defined\$1functions)](#aws-glue-api-catalog-functions-GetUserDefinedFunctions)

## CreateUserDefinedFunction 작업(Python: create\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-CreateUserDefinedFunction"></a>

데이터 카탈로그에서 새로운 함수 정의를 생성합니다.

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  함수를 생성할 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `DatabaseName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수가 생성되는 카탈로그 데이터베이스의 이름입니다.
+ `FunctionInput` – *필수(Required):* [UserDefinedFunctionInput](#aws-glue-api-catalog-functions-UserDefinedFunctionInput) 객체입니다.

  `FunctionInput` 객체는 데이터 카탈로그에 생성할 함수를 정의합니다.

**응답**
+ *무응답 파라미터.*

**오류**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `GlueEncryptionException`

## UpdateUserDefinedFunction 작업 (Python: update\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-UpdateUserDefinedFunction"></a>

데이터 카탈로그에서 기존 함수를 업데이트합니다.

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  업데이트되는 함수가 존재하는 데이터 카탈로그 ID. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `DatabaseName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  업데이트되는 함수가 존재하는 카탈로그 데이터베이스 이름
+ `FunctionName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수의 이름입니다.
+ `FunctionInput` – *필수(Required):* [UserDefinedFunctionInput](#aws-glue-api-catalog-functions-UserDefinedFunctionInput) 객체입니다.

  `FunctionInput` 객체는 데이터 카탈로그의 함수를 재정의합니다.

**응답**
+ *무응답 파라미터.*

**오류**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## DeleteUserDefinedFunction 작업 (Python: delete\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-DeleteUserDefinedFunction"></a>

데이터 카탈로그에서 기존 함수를 삭제합니다.

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  삭제되는 함수가 존재하는 데이터 카탈로그 ID. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `DatabaseName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수가 존재하는 카탈로그 데이터베이스 이름
+ `FunctionName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  삭제된 함수 정의 이름입니다.

**응답**
+ *무응답 파라미터.*

**오류**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetUserDefinedFunction 작업 (Python: get\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-GetUserDefinedFunction"></a>

데이터 카탈로그에서 지정된 함수를 가져옵니다.

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  가져올 함수가 존재하는 데이터 카탈로그 ID. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `DatabaseName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수가 존재하는 카탈로그 데이터베이스 이름
+ `FunctionName` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수의 이름입니다.

**응답**
+ `UserDefinedFunction` – [UserDefinedFunction](#aws-glue-api-catalog-functions-UserDefinedFunction) 객체입니다.

  요청한 함수 정의입니다.

**오류**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## GetUserDefinedFunctions 작업 (Python: get\$1user\$1defined\$1functions)
<a name="aws-glue-api-catalog-functions-GetUserDefinedFunctions"></a>

데이터 카탈로그에서 다양한 함수 정의를 가져옵니다.

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  가져올 함수가 존재하는 데이터 카탈로그 ID. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `DatabaseName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  함수가 존재하는 카탈로그 데이터베이스 이름 아무 것도 제공되지 않으면 카탈로그에 있는 모든 데이터베이스의 함수가 반환됩니다.
+ `Pattern` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  반환된 함수 정의를 필터링하는 조건부 함수 이름 패턴 문자열입니다.
+ `NextToken` – UTF-8 문자열입니다.

  이것이 지속적으로 호출되면 지속적인 토큰입니다.
+ `MaxResults` – 1\$1100의 숫자(정수)입니다.

  한 번의 응답으로 반환될 최대 함수 수입니다.

**응답**
+ `UserDefinedFunctions` – [UserDefinedFunction](#aws-glue-api-catalog-functions-UserDefinedFunction) 객체의 배열입니다.

  요청한 함수 정의의 목록입니다.
+ `NextToken` – UTF-8 문자열입니다.

  반환된 함수 목록이 마지막으로 요청된 함수가 아닌 경우의 연속 토큰입니다.

**오류**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `GlueEncryptionException`