2022년 Snowpark Library for Scala and Java 릴리스 정보

이 문서에는 해당되는 경우 다음을 포함하여 Scala용 Snowpark 라이브러리Java용 Snowpark 라이브러리 의 릴리스 정보가 수록되어 있습니다.

  • 동작 변경 사항

  • 새로운 기능

  • 고객이 직면한 버그 수정

Snowflake는 Snowpark Library for Scala and Java 업데이트에 의미 체계 버전 관리를 사용합니다.

버전 1.6.2(2022년 10월 26일)

호환되는 Snowflake 릴리스: 6.35.x

개선 사항

  • Java 또는 Scala로 작성된 저장 프로시저를 내부적으로 개선했습니다.

버전 1.6.1(2022년 9월 30일)

호환되는 Snowflake 릴리스: 6.31.x

이 버전에는 임시 오브젝트가 생성되지 못하게 할 수 있는 알려진 문제가 있습니다. 대신 1.6.2를 사용하십시오.

개선 사항

  • Java 또는 Scala로 작성된 저장 프로시저를 내부적으로 개선했습니다.

버전 1.6.0(2022년 8월 12일)

호환되는 Snowflake 릴리스: 6.27.x

개선 사항

  • UDTF를 내부적으로 개선했습니다.

버전 1.5.0(2022년 7월 1일)

호환되는 Snowflake 릴리스: 6.22.x

새로운 기능

  • 스테이지의 파일에 DataFrames를 쓰기 위한 지원을 Scala APIJava API 에 추가했습니다.

개선 사항

  • Snowpark 클라이언트 라이브러리에서 생성되는 SQL 쿼리를 최적화했습니다.

  • Snowpark 라이브러리가 열 이름을 확인하지 못할 때 로그에 기록되는 오류 메시지를 개선했습니다.

  • DataFrame(예: 존재하지 않는 열에 액세스하려고 시도하는 경우)

버전 1.4.1(2022년 5월 26일)

호환되는 Snowflake 릴리스: 6.17.x

변경 사항

  • Snowpark 라이브러리가 종속된 jackson-corejackson-annotations 의 버전을 2.13.2로 업데이트했습니다.

  • Snowpark 라이브러리가 종속된 jackson-databind 의 버전을 2.13.2.2로 업데이트했습니다.

  • Snowpark JAR 파일에서 jackson-core, jackson-databind, jackson-annotations 클래스를 제거했습니다.

    .tar.gz / .zip 파일을 다운로드한 경우 이제는 Jackson 클래스의 JAR 파일(jackson-core-2.13.2.jar, jackson-databind-2.13.2.2.jar, jackson-annotations-2.13.2.jar)이 lib/ 하위 디렉터리에 별도로 제공됩니다.

    Snowpark 라이브러리를 pom.xml 파일의 종속성으로 지정하고 pom.xml에 있는 Jackson 라이브러리의 다른 버전 에 종속시키려는 경우 Snowpark 라이브러리 종속성에서 Jackson 라이브러리에 대한 종속성을 제외 할 수 있습니다.

버전 1.4.0(2022년 4월 28일)

호환되는 Snowflake 릴리스: 6.14.x

새로운 기능

  • Snowpark Java API를 AWS 및 Azure에서 일반 공급으로 제공했습니다.

  • API는 GCS에서 미리 보기 기능으로 계속 제공됩니다.

  • Azure에서 Snowpark Scala API를 일반 공급으로 제공했습니다.

    이 릴리스 이전에는 API가 AWS에서만 일반 공급으로 제공되었습니다. API는 GCS에서 미리 보기 기능으로 계속 제공됩니다.

  • UDTF를 생성하는 Java API 를 추가했습니다. 이것은 미리 보기 기능입니다.

  • 스테이지에서 데이터를 업로드하고 다운로드하기 위해 ScalaJava 에 새로운 API를 추가했습니다(FileOperation.uploadStream and FileOperation.downloadStream).

  • DataFrame의 열 값을 테이블의 열에 매핑하는 방법을 지정하기 위해 ScalaJavaDataFrameWriter.option 메서드를 추가했습니다. Option 메서드를 사용하여 DataFrameWriter 가 열 순서가 아닌 열 이름을 사용해야 함을 지정할 수 있습니다.

개선 사항

  • Java 세션에서 Closure Cleaner를 비활성화했습니다. Closure Cleaner는 Scala 프로그램에서만 작동합니다.

  • Java Row API에서 ArrayMap 지원을 개선했습니다.

버전 1.3.0(2022년 3월 18일)

호환되는 Snowflake 릴리스: 6.8.x

새로운 기능

버전 1.2.0(2022년 3월 2일)

호환되는 Snowflake 릴리스: 6.5.x

새로운 기능

  • Snowpark용 Java API 를 추가했습니다.

  • UDTF를 생성하기 위해 Scala API에 미리 보기 지원을 추가했습니다.

  • FIPS(연방 정보 처리 표준)의 보안 요구 사항을 준수하는 별도 버전의 라이브러리를 추가했습니다. 이 라이브러리는 다음 위치에서 다운로드할 수 있습니다.

    sbt 빌드 파일이나 Maven 프로젝트에서 FIPS 준수 라이브러리를 가리키려면 snowpark-fipsartifactId 로 사용하십시오.

버전 1.1.0(2022년 2월 4일)

호환되는 Snowflake 릴리스: 6.2.x

Scala로 저장 프로시저 작성하기 를 지원하는 기능이 추가되었습니다.

이 릴리스에 대한 API 참조는 Snowflake 설명서Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

버전 1.0.0(2022년 1월 26일)

호환되는 Snowflake 릴리스: 6.1.x

AWS를 통해 GA(일반 공급) 릴리스를 출시했습니다. (Azure와 GCP에서는 Snowpark가 여전히 미리 보기 기능입니다.)

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

버전 0.12.0(2022년 1월 4일)

호환되는 Snowflake 릴리스: 5.45.x

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

새로운 기능

  • functions 오브젝트에 listagg 함수를 추가했습니다.

  • 11~22개의 인자를 사용하여 UDF를 위한 지원을 추가했습니다.

  • RelationalGroupedDataFrame 클래스에 any_value 함수를 추가했습니다.

개선 사항

  • UDF에 대해 생성된 코드에서 정적 코드 블록을 오브젝트 인스턴스 함수로 바꾸었습니다.

  • 오류 메시지를 재구성했습니다.

  • Append 모드에서 새 테이블이 생성되지 않도록 saveAsTable 함수를 변경했습니다.

  • 모든 유형의 인자를 지원하도록 callUDF 함수를 개선했습니다.

  • 세션 수준이 아니라 문 수준에서 쿼리 태그를 설정하도록 라이브러리를 변경했습니다.

버전 0.11.0(2021년 11월 16일)

호환되는 Snowflake 릴리스: 5.45.x

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

새로운 기능

개선 사항

Snowflake JDBC 드라이버를 3.13.9로 업그레이드했습니다. 현재 사용하도록 선택한 데이터베이스가 없는 경우 보고되는 오류 메시지를 개선했습니다.

버전 0.10.1(2021년 10월 27일)

호환되는 Snowflake 릴리스: 5.38.x

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

버그 수정 사항

  • 잘못된 접두사가 사용된 GCP 스테이지에 파일을 업로드할 때 발생하는 문제를 수정했습니다.

  • GCP에 대해 미리 서명된 URL에 액세스할 때 403 HTTP 응답이 반환되는 문제를 수정했습니다.

버전 0.10.0(2021년 10월 18일)

호환되는 Snowflake 릴리스: 5.37.x

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

새로운 기능

  • DataFrame 클래스에 새로운 메서드 dropDuplicates 를 추가했습니다.

  • Column 클래스(in 메서드 사용)와 함수 오브젝트(in 함수 사용)에 in 식을 위한 지원을 추가했습니다.

  • 반복기에서 close 메서드를 호출할 수 있는 Closeable 인터페이스를 지원하기 위해 DataFrame.toLocalIterator 에서 반환되는 Iterator를 확장했습니다.

  • 새로운 구성 속성 snowpark_request_timeout_in_seconds 를 위한 지원을 추가했습니다. 구성 맵/파일에서 이를 설정 하여 라이브러리가 스테이지에 종속 항목을 업로드할 때 사용하는 시간 제한을 조정할 수 있습니다. 기본적으로 시간 제한은 86400(1일)입니다.

개선 사항

동작 변경 사항

  • Scala API에서 Java 전용 API를 제거했습니다.

  • 기본 로거 log4j를 SLF4J SimpleLogger로 바꾸었습니다.

버그 수정 사항

  • 메모리 사용량을 줄이기 위해 사용하지 않는 문을 자동으로 닫도록 라이브러리를 업데이트했습니다.

  • DataFrame.withColumns 메서드 결과의 열 순서를 수정했습니다.

버전 0.9.0(2021년 9월 20일)

호환되는 Snowflake 릴리스: 5.34.x

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

새로운 기능

동작 변경 사항

  • UNION ALL이 아니라 UNION을 사용하도록 DataFrame.union() 및 DataFrame.unionByName() 메서드를 변경했습니다.

버그 수정 사항

  • Snowpark 라이브러리가 임시 뷰를 생성할 때 발생할 수 있는 SQL compilation error: Missing column specification 오류를 수정했습니다.

버전 0.8.0(2021년 8월 9일)

호환되는 Snowflake 릴리스: 5.30.x

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

개선 사항

  • 종속성을 제거하려고 내부 코드를 리팩터링했습니다.

버그 수정 사항

  • 배율이 정밀도보다 클 수 있는 경우 BigDecimal 리터럴 관련 문제를 수정했습니다.

  • 여러 세트 작업(예: 합집합, 교집합 등)을 수행할 때 발생할 수 있는 문제를 수정했습니다.

버전 0.7.0(2021년 7월 23일)

호환되는 Snowflake 릴리스: 5.29.x

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

새로운 API

  • 새로운 Session.close() 메서드를 도입했습니다. 이 메서드를 호출하여 Snowpark 세션을 닫을 수 있습니다. 이는 실행 중인 모든 쿼리를 취소하고, 이후에 이 세션을 사용하여 쿼리를 실행하지 못하도록 합니다.

  • 새로운 Updatable 클래스를 도입했습니다. Updatable은 DataFrame 클래스를 확장하고, 추가적인 테이블 관련 기능(예: 값 업데이트 및 삭제 기능)을 제공합니다.

  • Session.table() 메서드는 이제 DataFrame 오브젝트가 아닌 Updatable 오브젝트를 반환합니다.

  • UDFRegistration 클래스의 registerTemporary 메서드에 대한 새 서명을 도입했습니다. 이러한 서명에는 UDF 이름에 대한 매개 변수가 없습니다. 즉, 이를 사용하여 익명의 임시 UDF를 등록할 수 있습니다.

API 변경 사항

  • 위에서 언급했듯이 Session.table() 메서드는 이제 DataFrame 을 확장하는 Updatable 오브젝트를 반환합니다.

  • Geography 클래스에서 GeoJSON 이외의 형식에 대한 지원을 제거했습니다. 이제 Geography 에서는 GeoJSON 데이터 형식만 지원합니다.

개선 사항

  • 《오브젝트가 이미 존재함》 오류 가능성을 줄이기 위해 DataFrame.cacheResult() 메서드를 개선했습니다.

  • 일부 오류 메시지를 개선했습니다.

  • 로그인 후 세션 정보를 출력하는 새로운 로그 메시지를 추가했습니다.

버그 수정 사항

  • DataFrame.show() 메서드에서 이진 데이터를 올바르게 표시하지 않는 문제를 수정했습니다.

  • 버전 번호를 가져올 때 발생하는 오류를 수정했습니다.

버전 0.6.0(2021년 6월 14일)

호환되는 Snowflake 릴리스: 5.21.x

AWS를 통해 미리 보기 출시

이 릴리스에 대한 API 참조는 Snowflake Client Repository.zip 또는 .tar.gz 파일에서 확인할 수 있습니다.

API 변경 사항

이 릴리스에서는 이제 RelationalGroupedDataFrame 의 다음 메서드에 인자가 필요합니다.

  • avg

  • max

  • 중앙값

  • min

  • 합계

이전 릴리스에서는 이러한 메서드를 인자 없이 호출한 경우, 이러한 메서드가 DataFrame의 모든 숫자 열에 적용되었습니다. 예를 들어 (a int, b string, c float) 열이 있는 DataFrame df 의 경우, df.groupBy("a").max() 를 호출하는 것은 df.groupBy("a").max(col("a"), col("c")) 를 호출하는 것과 동일합니다.

이번 릴리스에서는 인자 없이 이러한 메서드를 호출하면 SnowparkClientException 이 발생합니다.

버전 0.5.0

새로운 기능

  • DataFrame.show() 메서드에 maxWidth 매개 변수를 추가했습니다. 이 매개 변수를 사용하여 각 열의 출력에 출력되는 문자 수를 조정할 수 있습니다.

  • 이 세션에서 실행 중인 모든 작업을 취소하는 데 사용할 수 있는 Session.cancelAll() 메서드를 추가했습니다.

  • 데이터를 검색하는 데 사용할 수 있는 반복기를 행별로 반환하는 DataFrame.toLocalIterator() 메서드를 추가했습니다. 모든 데이터를 한 번에 메모리에 로딩하지 않으려면 DataFrame.collect() 대신 이를 사용할 수 있습니다.

  • RelationalGroupedDataFrame 클래스에 median 메서드를 추가했습니다.

개선 사항

  • 식별자가 유효하지 않을 때 반환되는 오류 메시지를 개선했습니다.

  • 데이터베이스 또는 스키마 이름이 지정되지 않았을 때 오류를 보고하도록 오류 검사를 향상했습니다.

  • 테이블에 많은 수의 값을 삽입할 때의 성능 향상을 추가했습니다.

  • Snowflake 오브젝트 식별자(테이블 및 뷰 이름)를 일관되게 처리하도록 라이브러리를 업데이트했습니다. 이제 테이블 또는 뷰 이름을 지정하는 모든 매개 변수는 다음 사용을 지원합니다.

    • 짧은 이름(예: table_name 및 view_name)

    • 정규화된 이름(예: database.schema.table_name)

    • 다중 부분 식별자(예: Seq(《database》, 《schema》, 《view_name》))

  • 지원되는 Scala 버전이 사용 중인지 확인하는 검사를 추가했습니다. 라이브러리는 Scala 버전이 호환되지 않을 경우 오류를 보고합니다.

버그 수정 사항

  • Microsoft Windows에서 UDF를 등록할 때 발생하는 문제를 수정했습니다.

  • DataFrame.limit()와 함께 DataFrame.sort()를 사용할 때의 결과 순서 문제를 수정했습니다.

  • 간격 없이 일련의 숫자를 생성하도록 Session.range()를 수정했습니다.

버전 0.4.1

이 버전에서는 더 이상 Snowpark 오브젝트에 대한 임시 스키마 또는 임시 데이터베이스를 지정할 필요가 없습니다(TEMP_SCHEMA 및 TEMP_DB 설정). Snowpark 라이브러리는 필요한 오브젝트의 임시 버전을 자동으로 생성합니다.

API 변경 사항

DataFrame.cache() 메서드를 DataFrame.cacheResult() 메서드로 바꾸었습니다.

새 메서드는 캐시된 결과로 새 DataFrame을 만들고 반환하며 현재 DataFrame에는 영향을 주지 않습니다. 이 변경의 결과로 DataFrame 오브젝트는 이제 변경이 불가능합니다.

새로운 API

  • RelationalGroupedDataFrame 클래스에 다음과 같은 새 메서드를 추가했습니다.

    • avg

    • max

  • DataFrame 클래스에 다음과 같은 새 메서드를 추가했습니다.

    • groupByGroupingSets

    • clone

    • createOrReplaceTempView

  • functions 오브젝트에 다음과 같은 새 함수를 추가했습니다.

    • toScalar

  • 파일 작업을 수행하기 위해 다음과 같은 새로운 메서드를 제공하는 Session.file 오브젝트를 추가했습니다.

    • get

    • put

  • Session.createDataFrame 메서드를 다음과 같이 변경했습니다.

    • 사용자 제공 스키마에 대한 지원을 추가했습니다.

    • 베리언트/지리 데이터의 배열/맵 지정에 대한 지원을 추가했습니다.

    • UDF에서 지리/베리언트 데이터 타입에 대한 지원을 추가했습니다.

  • UDFRegistration 클래스에 registerPermanent 메서드를 추가했습니다.

버그 수정 사항

  • DataFrame 열 이름에 따옴표가 포함된 문제를 수정했습니다.

  • 백슬래시, 작은따옴표, 줄 바꿈 문자가 포함된 데이터를 이스케이프할 수 없는 문제를 수정했습니다.

  • 《code too large》 오류 메시지와 함께 UDF 생성에 실패하는 문제를 수정했습니다.

  • UDF 클로저가 로컬 문자열 변수의 값을 캡처하지 못하는 문제를 수정했습니다.

  • 다음 SQL 절에 대한 결과 스키마를 추가했습니다.

    • GRANT/REVOKE

    • DESCRIBE

    • CREATE

    • USE

  • Metals 확장 프로그램과 함께 Visual Studio Code에서 Snowpark를 사용하여 UDF를 만들 때 발생하는 문제를 수정했습니다.