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
새로운 기능¶
개선 사항¶
Snowpark 클라이언트 라이브러리에서 생성되는 SQL 쿼리를 최적화했습니다.
Snowpark 라이브러리가 열 이름을 확인하지 못할 때 로그에 기록되는 오류 메시지를 개선했습니다.
DataFrame(예: 존재하지 않는 열에 액세스하려고 시도하는 경우)
버전 1.4.1(2022년 5월 26일)¶
호환되는 Snowflake 릴리스: 6.17.x
변경 사항¶
Snowpark 라이브러리가 종속된
jackson-core
및jackson-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 를 추가했습니다. 이것은 미리 보기 기능입니다.
스테이지에서 데이터를 업로드하고 다운로드하기 위해 Scala 및 Java 에 새로운 API를 추가했습니다(
FileOperation.uploadStream and FileOperation.downloadStream
).DataFrame의 열 값을 테이블의 열에 매핑하는 방법을 지정하기 위해 Scala 및 Java 에
DataFrameWriter.option
메서드를 추가했습니다. Option 메서드를 사용하여DataFrameWriter
가 열 순서가 아닌 열 이름을 사용해야 함을 지정할 수 있습니다.
개선 사항¶
Java 세션에서 Closure Cleaner를 비활성화했습니다. Closure Cleaner는 Scala 프로그램에서만 작동합니다.
Java Row API에서
Array
및Map
지원을 개선했습니다.
버전 1.3.0(2022년 3월 18일)¶
호환되는 Snowflake 릴리스: 6.8.x
새로운 기능¶
Java로 저장 프로시저를 작성하기 위한 지원을 추가했습니다.
Scala에서 행을 테이블에 비동기적으로 병합하기 위한 지원을 추가했습니다.
버전 1.2.0(2022년 3월 2일)¶
호환되는 Snowflake 릴리스: 6.5.x
새로운 기능¶
Snowpark용 Java API 를 추가했습니다.
UDTF를 생성하기 위해 Scala API에 미리 보기 지원을 추가했습니다.
FIPS(연방 정보 처리 표준)의 보안 요구 사항을 준수하는 별도 버전의 라이브러리를 추가했습니다. 이 라이브러리는 다음 위치에서 다운로드할 수 있습니다.
sbt 빌드 파일이나 Maven 프로젝트에서 FIPS 준수 라이브러리를 가리키려면
snowpark-fips
를artifactId
로 사용하십시오.
버전 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
파일에서 확인할 수 있습니다.
새로운 기능¶
개선 사항¶
UDF에 대해 생성된 코드에서 정적 코드 블록을 오브젝트 인스턴스 함수로 바꾸었습니다.
오류 메시지를 재구성했습니다.
Append 모드에서 새 테이블이 생성되지 않도록
saveAsTable
함수를 변경했습니다.모든 유형의 인자를 지원하도록
callUDF
함수를 개선했습니다.세션 수준이 아니라 문 수준에서 쿼리 태그를 설정하도록 라이브러리를 변경했습니다.
버전 0.11.0(2021년 11월 16일)¶
호환되는 Snowflake 릴리스: 5.45.x
이 릴리스에 대한 API 참조는 Snowflake Client Repository 의 .zip
또는 .tar.gz
파일에서 확인할 수 있습니다.
새로운 기능¶
Session
클래스에 generator 메서드를 추가하고 함수 오브젝트에 seq1, seq2, seq4, seq8, uniform 함수를 추가했습니다.Session 클래스에 getSessionInfo 메서드를 추가했습니다.
DataFrames에서 작업을 비동기로 수행 하기 위한 API를 추가했습니다.
개선 사항¶
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일)입니다.
개선 사항¶
DataFrame.withColumns 메서드에 중복된 입력 열 이름이 지정되지 않았는지 확인하는 논리를 추가했습니다.
Copyable
및Updatable
클래스의clone
메서드가 올바른 DataFrame 유형을 반환하도록 업데이트했습니다.애플리케이션 ID를 지정하기 위한 지원을 추가했습니다.
동작 변경 사항¶
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
파일에서 확인할 수 있습니다.
새로운 기능¶
스테이징된 파일의 데이터를 테이블에 복사 하는 데 사용할 수 있는 새로운 DataFrame 하위 클래스 CopyableDataFrame 을 추가했습니다. 이는 COPY INTO <테이블> 명령과 동일합니다.
DataFrame에서 열 이름을 바꾸기 위한 새로운 메서드 DataFrame.rename() 를 추가했습니다.
if-then-else 식을 지정하기 위한 새 함수 functions.iff() 를 추가했습니다. 이는 IFF 함수와 동일합니다.
DecimalType 클래스의 새 생성자를 추가했습니다.
동작 변경 사항¶
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를 만들 때 발생하는 문제를 수정했습니다.