Scala UDF 소개

Scala에서 UDF(사용자 정의 함수)의 처리기를 작성할 수 있습니다. 처리기는 SQL에서 호출될 때 함수의 논리로 실행됩니다.

Snowflake는 현재 다음 Scala 버전에서 UDF 작성을 지원합니다.

  • 2.12

처리기가 있으면 SQL로 UDF를 생성합니다. SQL을 사용하여 UDF을 만들거나 호출하는 방법에 대한 자세한 내용은 UDF 만들기 또는 UDF 호출하기 섹션을 참조하십시오.

UDF 처리기를 작성할 수 있는 언어 목록을 포함하여, UDF에 대한 소개는 사용자 정의 함수 개요 섹션을 참조하십시오.

참고

Scala 처리기와 관련된 제한 사항은 Scala UDF 제한 사항 섹션을 참조하십시오.

Snowpark API를 사용할 때 Scala를 사용하여 UDF를 작성할 수도 있습니다. 자세한 내용은 Scala에서 DataFrame용 사용자 정의 함수(UDF) 만들기 섹션을 참조하십시오.

처리기 작동 방식

사용자는 UDF를 호출할 때 UDF의 이름과 인자를 Snowflake에 전달합니다. Snowflake는 UDF와 연결된 처리기 메서드를 호출하여 UDF의 논리를 실행합니다. 그런 다음 핸들러 메서드는 출력을 Snowflake로 반환하고 Snowflake는 이를 다시 클라이언트로 전달합니다.

스칼라 함수(단일 값을 반환하는 함수)의 경우 UDF는 UDF에 전달되는 각 행에 대해 단일 값을 반환합니다.

처리기의 논리를 지원하기 위해 코드는 처리기 외부에 있는 라이브러리를 호출할 수 있습니다. 예를 들어 Scala에 데이터 분석 코드가 이미 있는 경우 처리기 코드에서 이 코드를 사용할 수 있을 것입니다.

Scala에서 처리기 작성에 대한 일반적인 정보는 일반 Scala UDF 처리기 코딩 지침 섹션을 참조하십시오. 스칼라 함수 작성에 대한 자세한 내용은 Scala로 스칼라 UDF 작성하기 섹션을 참조하십시오.

다음 예제의 코드는 처리기 메서드 TestFunc.echoVarchar 를 사용하여 echo_varchar 이라는 UDF를 생성합니다. Snowflake는 SQL-Scala 데이터 타입 매핑 에 설명된 매핑에 따라 Scala 인자 및 반환 유형을 SQL로 변환하거나 그 반대로 변환합니다.

CREATE OR REPLACE FUNCTION echo_varchar(x VARCHAR)
RETURNS VARCHAR
LANGUAGE SCALA
RUNTIME_VERSION = 2.12
HANDLER='TestFunc.echoVarchar'
AS
$$
class TestFunc {
  def echoVarchar(x : String): String = {
    return x
  }
}
$$;
Copy

UDF 호출하기

SELECT echo_varchar('Hello');
Copy

설계 고려 사항

유용한 처리기를 설계하려면 다음 사항을 염두에 두십시오.

처리기 코딩

기본 사항부터 자세한 예제까지, 다음 항목에서는 UDF 처리기를 Scala로 작성하는 방법을 설명합니다.