Snowpark

Snowpark 라이브러리는 데이터 파이프라인에서 데이터를 쿼리하고 처리하기 위한 직관적인 API를 제공합니다. 이 라이브러리를 사용하면 사용자는 애플리케이션 코드가 실행되는 시스템으로 데이터를 옮기지 않고도 Snowflake에서 데이터를 처리하는 애플리케이션을 빌드할 수 있습니다. Snowpark에는 다른 클라이언트 라이브러리와 구별되는 다음 몇 가지 기능이 있습니다.

  • Snowpark API는 SQL 문을 빌드하기 위한 프로그래밍 언어 구문을 제공합니다. 예를 들어 API는 'select column_name' 을 문자열로 작성하는 대신, 반환할 열 이름을 지정하는 데 사용할 수 있는 select 메서드를 제공합니다.

    실행할 SQL 문을 지정하는 데 여전히 문자열을 사용할 수 있지만, Snowpark에서 제공하는 기본 언어 구문을 사용하면 지능형 코드 완성 및 형식 검사와 같은 기능의 이점을 누릴 수 있습니다.

  • Snowpark 작업은 서버에서 느리게 실행되므로 클라이언트와 Snowflake 데이터베이스 간에 전송되는 데이터 양이 줄어듭니다.

    Snowpark의 핵심 추상화는 데이터 세트를 나타내는 DataFrame으로, 해당 데이터에서 작동하는 메서드를 제공합니다. 클라이언트 코드에서 DataFrame 오브젝트를 구성하고, 사용하려는 데이터(예: 데이터가 포함된 열, 행에 적용할 필터 등)를 검색하도록 설정합니다.

    DataFrame 오브젝트를 구성할 때 데이터는 검색되지 않습니다. 대신, 데이터를 검색할 준비가 되면 DataFrame 오브젝트를 평가하고 실행을 위해 해당 SQL 문을 Snowflake 데이터베이스로 보내는 작업을 수행할 수 있습니다.

  • 코드에서 사용자 정의 함수(UDF)를 만들 수 있으며, Snowpark는 코드가 데이터에서 작동할 수 있는 서버로 코드를 푸시할 수 있습니다.

    클라이언트 코드를 작성하는 데 사용하는 것과 동일한 언어로 함수를 작성할 수 있습니다(예: Scala에서 익명 함수를 사용하거나 Python에서 람다 함수를 사용). 이러한 함수를 사용하여 Snowflake 데이터베이스의 데이터를 처리하려면 사용자 지정 코드에서 사용자 정의 함수(UDF)를 정의하고 호출합니다.

    Snowpark는 UDF에 대한 사용자 지정 코드를 Snowflake 데이터베이스에 자동으로 푸시합니다. 클라이언트 코드에서 UDF를 호출하면 사용자 지정 코드가 서버(데이터가 있는 곳)에서 실행됩니다. 데이터에 대한 함수를 실행하기 위해 데이터를 클라이언트로 전송할 필요가 없습니다.

Spark용 Snowflake 커넥터 에 비해 Snowpark는 다음과 같은 이점을 제공합니다.

  • Snowpark는 Snowflake UDF를 포함한 모든 작업에 대해 푸시다운을 지원합니다.

  • Snowpark는 계산을 위해 Snowflake 외부에 별도의 클러스터가 필요하지 않습니다. 모든 계산은 Snowflake 내에서 수행됩니다.

다음 항목:

맨 위로 이동