ALTER FUNCTION(Snowpark Container Service)¶
기존 서비스 함수 의 속성을 수정합니다.
서비스 함수에 다른 변경 사항을 적용하려면 (DROP FUNCTION(Snowpark Container Services) 사용) 함수를 삭제한 다음 다시 만들어야 합니다.
- 참고 항목:
구문¶
ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
RENAME TO <new_name>
ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
SET CONTEXT_HEADERS = ( <context_function_1> [ , <context_function_2> ...] )
ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
SET MAX_BATCH_ROWS = <integer>
ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
SET COMMENT = '<string_literal>'
ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
SET SERVICE = '<service_name>' ENDPOINT = '<endpoint_name>'
ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] )
UNSET { CONTEXT_HEADERS | MAX_BATCH_ROWS | COMMENT }
매개 변수¶
name
변경할 서비스 함수의 식별자를 지정합니다. 이 식별자에는 함수 이름뿐 아니라 스키마 이름과 데이터베이스 이름도 포함될 수 있습니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
arg_data_type [ , ... ]
서비스 함수에 대한 인자/입력 데이터 타입을 지정합니다.
함수는 이름 오버로딩을 지원하므로 이 함수가 인자를 허용하는 경우에는 ALTER 명령이 인자 유형을 지정해야 하며(즉, 같은 스키마에 있는 두 함수는 같은 이름을 가질 수 있음) 인자 유형은 함수를 식별하는 데 사용됩니다.
RENAME TO new_name
서비스 함수에 대해 새 식별자를 지정하는데, 식별자와 기존 인자 데이터 타입의 조합은 스키마에 대해 고유해야 합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
참고
서비스 함수에 대한 새 이름을 지정할 때 인자 데이터 타입이나 괄호를 지정하지 말고, 새 이름만 지정하십시오.
선택적으로 오브젝트의 이름을 바꾸는 동안 오브젝트를 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 그러려면 각각
db_name.schema_name.object_name
또는schema_name.object_name
형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된new_name
값을 지정하십시오.참고
대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.
오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한이 있는 역할) 역시 대상 스키마를 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동하는 것은 금지됩니다.
오브젝트의 이름이 바뀌면 그 오브젝트를 참조하는 다른 오브젝트도 새 이름으로 업데이트해야 합니다.
SET ...
함수에 대해 설정할 속성을 지정합니다.
COMMENT = 'string_literal'
SHOW FUNCTIONS 및 SHOW USER FUNCTIONS 출력의 DESCRIPTION 열에 표시되는 함수에 대한 설명을 지정합니다.
SERVICE = '<service_name>' ENDPOINT = '<endpoint_name>'
서비스 사양에 정의된 서비스 이름과 엔드포인트 이름을 지정합니다.
CONTEXT_HEADERS = ( context_function_1 [ , context_function_2 ... ] )
Snowflake 컨텍스트 함수 결과를 HTTP 헤더에 바인딩할 수 있습니다.
각각의 값은 컨텍스트 함수의 이름이어야 합니다. 이름 주위에 따옴표를 넣지 마십시오.
이 매개 변수에 대한 자세한 내용은 CREATE FUNCTION(Snowpark Container Services) 에 나와 있습니다.
MAX_BATCH_ROWS = integer
동시성 증대를 위해 서비스에 데이터를 전송할 때 배치 크기 를 지정합니다.
UNSET ...
함수에 대해 설정 해제할 속성을 지정하여 기본값으로 재설정합니다. 서비스 엔드포인트를 설정 해제할 수 없습니다.
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
OWNERSHIP |
함수 |
|
USAGE |
서비스 엔드포인트 |
서비스 엔드포인트에서의 사용은 서비스 사양에 정의된 서비스 역할에 부여됩니다. 그런 다음 서비스 함수를 변경하는 역할에 서비스 역할을 부여합니다. 서비스 엔드포인트를 변경하는 경우 이 권한이 필요합니다. |
스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
서비스 함수 이름 바꾸기:
ALTER FUNCTION my_echo_udf(VARCHAR) RENAME TO my_echo_udf_temp;
서비스 함수에 대한 주석 설정:
ALTER FUNCTION my_echo_udf(VARCHAR) SET COMMENT = 'some comment';
서비스 함수에 대한 배치당 최대 행 수 설정:
ALTER FUNCTION my_echo_udf(number) SET MAX_BATCH_ROWS = 100;
서비스 함수에 대한 CURRENT_USER 컨텍스트 헤더 설정:
ALTER FUNCTION my_echo_udf(VARCHAR) SET CONTEXT_HEADER = (CURRENT_USER);
서비스 함수에 대한 MAX_BATCH_ROWS 설정 해제:
ALTER FUNCTION my_echo_udf(VARCHAR) UNSET MAX_BATCH_ROWS;