2023년 Python용 Snowpark 라이브러리 릴리스 정보¶
이 문서에는 Snowpark Library for Python 에 대한 릴리스 정보가 있는데, 해당되는 경우 다음을 포함합니다.
동작 변경 사항
새로운 기능
고객이 직면한 버그 수정
Snowflake는 Snowpark Library for Python 업데이트에 의미 체계 버전 관리를 사용합니다.
버전 1.11.1(2023-12-07)¶
Snowpark 라이브러리 버전 1.11.1에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
snowflake-connector-python
에서 전체 기본 예외를 저장하도록conn_error
속성을SnowflakeSQLException
에 추가했습니다.Dataframe.group_by(...).pivot(...)
패턴으로pivot
에 액세스하도록RelationalGroupedDataframe.pivot()
에 대한 지원을 추가했습니다.Snowflake 계정에 연결하지 않고도 Snowpark Python DataFrames에서 로컬에 생성하고 작동할 수 있는 실험적 기능인 로컬 테스트 모드를 추가했습니다. 코드 변경 사항을 계정에 배포하기 전에 로컬 테스트 프레임워크를 사용하여 개발 시스템 또는 CI(지속적 통합) 파이프라인에서 로컬로 DataFrame 작업을 테스트할 수 있습니다.
snowflake.snowpark.functions
에서 새로운arrays_to_object
함수에 대한 지원을 추가했습니다.벡터 데이터 타입을 위한 지원을 추가했습니다.
종속성 업데이트¶
cloudpickle==2.2.1
에서 작동하도록 cloudpickle 종속성을 증가시켰습니다.snowflake-connector-python
을 버전3.4.0
으로 업데이트했습니다.
버그 수정 사항¶
DataFrame 열 이름 인용 검사에서 이제 줄 바꿈 문자를 지원합니다.
df.write.save_as_table
을 수행할 때session.read.with_metadata
에 의해 생성된 DataFrame이 일관되지 않은 테이블을 생성하는 버그를 수정했습니다.
버전 1.10.0(2023-11-03)¶
Snowpark 라이브러리 버전 1.10.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
DataFrame.to_local_iterator()
에서 대/소문자 구분 관리를 위한 지원 기능을 추가했습니다.UDTFRegistration.register
,UDTFRegistration.register_file
,functions.pandas_udtf
에서 선택적 매개 변수input_names
를 사용하여 벡터화된 UDTF의 입력 열 이름을 지정하기 위한 지원을 추가했습니다. 기본적으로RelationalGroupedDataFrame.applyInPandas
는 현재 DataFrame 스키마에서 열 이름을 유추합니다.SQL 예외로 인해 발생한 경우
SnowflakeSQLException
에sql_error_code
및raw_message
특성을 추가했습니다.
버그 수정 사항¶
Snowpark DataFrames를 Pandas DataFrames로 변환하면 19자리보다 많은 정수에 대한 정밀도가 손실되는
DataFrame.to_pandas()
의 버그를 수정했습니다.밑줄과 버전이 있는 프로젝트 이름이 포함된 요구 사항 지정자를 처리할 수 없는
session.add_packages
의 버그를 수정했습니다.offset
이 사용되고 상위DataFrame
이limit
를 사용할 때DataFrame.limit()
의 버그를 수정했습니다. 이제offset
은 상위 DataFrame의limit
에 영향을 미치지 않습니다.유효하지 않은 열 이름
$1
로 인해 읽기 API에서 생성된 DataFrames가 Snowflake에 데이터를 저장할 수 없는DataFrame.write.save_as_table
의 버그를 수정했습니다.
동작 변경 사항¶
date_format
의 동작을 변경했습니다.format
인자가 선택 사항에서 필수 사항으로 변경되었습니다.반환된 결과가 날짜 오브젝트에서 날짜 형식의 문자열로 변경되었습니다.
윈도우 함수 또는 시퀀스 종속 데이터 생성기(
normal
,zipf
,uniform
,seq1
,seq2
,seq4
,seq8
) 함수를 사용하면 쿼리 생성 시 정렬 및 필터 작업이 더 이상 평면화되지 않습니다.
버전 1.9.0(2023-10-16)¶
Snowpark 라이브러리 버전 1.9.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
Python 3.11 런타임 환경에 대한 지원을 추가했습니다.
ARRAY
및OBJECT
리터럴에 대해PythonObjJSONEncoder
JSON 직렬화 가능 오브젝트를 지원합니다.
종속성 업데이트¶
typing-extensions
의 종속성을 다시 추가했습니다.
버그 수정 사항¶
임시 저장 프로시저, UDTF, UDF, UDAF에 대해 영구 스테이지 위치에서 가져오기가 무시되는 버그를 수정했습니다.
테이블 쓰기에 삽입 권한이 필요하지 않은
DataFrameWriter.save_as_table
에 대해 CTAS(CREATE TABLE AS SELECT) 문을 사용하도록 되돌립니다.
버전 1.8.0(2023-09-14)¶
Snowpark 라이브러리 버전 1.8.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
UDF 등록 시
VOLATILE
및IMMUTABLE
키워드에 대한 지원을 추가했습니다.DataFrame.save_as_table
을 사용하여 데이터 프레임을 저장할 때 클러스터링 키를 지정하기 위한 지원을 추가했습니다.Session.create_dataframe
을 사용하여 데이터 프레임을 생성할 때schema
에 대한Iterable
오브젝트 입력을 허용합니다.Session
오브젝트를 반환하는DataFrame.session
속성을 추가했습니다.세션 ID를 나타내는 정수를 반환하는
Session.session_id
속성을 추가했습니다.SnowflakeConnection
오브젝트를 반환하는Session.connection
속성을 추가했습니다.구성 파일 또는 환경 변수에서 Snowpark 세션을 생성하기 위한 지원을 추가했습니다.
종속성 업데이트¶
snowflake-connector-python
을 3.2.0으로 업데이트했습니다.
버그 수정 사항¶
호환되는 패키지 버전이
session.add_packages
에 추가된 경우에도 자동 패키지 업로드가ValueError
를 발생시키는 버그를 수정했습니다.register_from_file
사용 시 테이블 저장 프로시저가 올바르게 등록되지 않는 버그를 수정했습니다.invalid_identifier
오류로 인해 데이터 프레임 조인이 실패하는 버그를 수정했습니다.반환된 복사본에 대해
DataFrame.copy
가 SQL 단순화 기능을 비활성화하는 버그를 수정했습니다.session.sql()
에 매개 변수가 지정된 경우session.sql().select()
가 실패하는 버그를 수정했습니다.
버전 1.7.0(2023-08-28)¶
Snowpark 라이브러리 버전 1.7.0에는 몇 가지 새로운 기능이 도입되었습니다.
동작 변경 사항¶
매개 변수
is_permanent=False
로 저장 프로시저 UDF, UDTF, UDAF를 생성하면stage_name
이 제공될 때도 임시 오브젝트가 생성됩니다.is_permanent
의 기본값은False
인데, 그 이유는 영구 오브젝트에 대해 이 값을 명시적으로True
로 설정하지 않으면 사용자가 동작의 변화를 알아차리게 되기 때문입니다.types.StructField
는 이제 기본적으로 열 식별자를 따옴표로 묶습니다.
새로운 기능¶
외부 액세스와의 통합을 허용하려고 Snowpark Python에서 UDF, UDTF 또는 저장 프로시저를 생성할 때 사용할 수 있는 매개 변수
external_access_integrations
및secrets
를 추가했습니다.snowflake.snowpark.functions
에서 새 함수array_flatten
및flatten
을 위한 지원을 추가했습니다.snowflake.snowpark.relational_grouped_dataframe
에서apply_in_pandas
에 대한 지원을 추가했습니다.Session.replicate_local_environment
를 통해 Snowflake에서 로컬 Python 환경을 복제하기 위한 지원을 추가했습니다.
버그 수정 사항¶
Null 허용 여부가 순서 또는 데이터 제공 시점에 영향을 받는 경우
session.create_dataframe
이 null 허용 열을 올바르게 설정하지 못하는 버그를 수정했습니다.테이블 함수의 출력 열이 DataFrame의 열과 겹칠 때 테이블 함수를 사용하면
DataFrame.select
가 열을 식별하여 별칭을 지정할 수 없는 버그를 수정했습니다.
버전 1.6.1(2023-08-02)¶
동작 변경 사항¶
DataFrameWriter.save_as_table
은 이제 사용자가 제공하는 스키마의 null 허용 필드 또는 사용자가 입력한 데이터를 기반으로 유추된 스키마를 따릅니다.
새로운 기능¶
snowflake.snowpark.functions
의 새 함수에 대해array_sort
sort_array
array_min
array_max
explode_outer
Session.add_requirements
또는Session.add_packages
를 통해 지정된 순수 Python 패키지를 위한 지원을 추가했습니다. 이제 Snowflake Anaconda 채널에 패키지가 없더라도 저장 프로시저와 UDF에서 사용할 수 있습니다.위에 언급된 순수 Python 패키지 기능에 대한 지원을 활성화하기 위해 Session 매개 변수
custom_packages_upload_enabled
및custom_packages_force_upload_enabled
를 추가했습니다. 두 매개 변수 모두 기본값은False
입니다.Conda 환경 YAML 파일을
Session.add_requirements
에 전달하여 패키지 요구 사항을 지정하기 위한 지원을 추가했습니다.바인딩 변수가 포함된 다중 쿼리 데이터 프레임의 비동기 실행을 위한 지원을 추가했습니다.
DataFrame.rename
에서 여러 열의 이름을 바꾸기 위한 지원을 추가했습니다.기하학 데이터 타입을 위한 지원을 추가했습니다.
저장 프로시저의
session.sql()
에서 params를 위한 지원을 추가했습니다.UDAF(사용자 정의 집계 함수)를 위한 지원을 추가했습니다. 이 기능은 현재 비공개 미리 보기로 제공됩니다.
벡터화된 UDTF(벡터화된 사용자 정의 테이블 함수)를 위한 지원을 추가했습니다. 이 기능은 현재 공개 미리 보기로 제공됩니다.
Snowflake 타임스탬프 베리언트(즉,
TIMESTAMP_NTZ
,TIMESTAMP_LTZ
,TIMESTAMP_TZ
)를 위한 지원을 추가했습니다.TimestampType
생성자의 인자로 TimestampTimezone 을 추가했습니다.UDF 등록 시 함수에 주석을 추가하기 위해 유형 힌트(
NTZ
,LTZ
,TZ
, Timestamp)를 추가했습니다.
개선 사항¶
중복된 종속성 typing-extensions를 제거했습니다.
DataFrame.cache_result
는 이제 현재 데이터베이스와 스키마 아래에 정규화된 이름의 임시 테이블을 생성합니다.
버그 수정 사항¶
Pandas를 가져오기 전에 그에 대한 유형 검사가 발생하는 버그를 수정했습니다.
numpy.ufunc
에서 UDF를 생성할 때의 버그를 수정했습니다.SQL 단순화 기능이 활성화된 경우
DataFrame.union
이 올바른Selectable.schema_query
를 생성하지 못하는 버그를 수정했습니다.
종속성 업데이트¶
snowflake-connector-python
을 버전 3.0.4로 업데이트했습니다.
버전 1.5.1(2023-06-20)¶
새로운 기능과 업데이트¶
Python 3.10 런타임 환경에 대한 지원을 추가했습니다.
버전 1.5.0(2023-06-13)¶
동작 변경 사항¶
DataFrame.agg
및DataFrame.describe
와 같은 함수의 집계 결과가 인쇄되지 않는 문자를 더 이상 열 이름에서 제거하지 않습니다.
새로운 기능과 업데이트¶
Python 3.9 런타임 환경에 대한 지원을 추가했습니다.
snowflake.snowpark.functions
의 새 함수에 대해array_generate_range
array_unique_agg
collect_set
sequence
TABLE
반환 유형으로 저장 프로시저를 등록하고 호출하기 위한 지원을 추가했습니다.열에서 저장할 수 있는 최대 문자 개수를 지정하도록
StringType()
에서 매개 변수 length를 위한 지원을 추가했습니다.functions.get()
에 대해 별칭functions.element_at()
을 추가했습니다.functions.contains
에 대해 별칭Column.contains
를 추가했습니다.실험적 기능
DataFrame.alias
를 추가했습니다.DataFrameReader
를 사용하여DataFrame
을 생성할 때 스테이지에서 메타데이터 열을 쿼리하기 위한 지원을 추가했습니다.기존
StructType
오브젝트에 더 많은 필드를 추가할 수 있도록StructType.add
를 위한 지원을 추가했습니다.저장 프로시저 호출자 권한을 지정할 수 있도록
StoredProcedureRegistration.register_from_file()
에서 매개 변수execute_as
를 위한 지원을 추가했습니다.
버그 수정 사항¶
SQL 단순화 도구가 활성화되었을 때
Dataframe.join_table_function
이 조인 테이블 함수를 설정하는 데 필요한 모든 쿼리를 실행하지 않는 버그를 수정했습니다.사용자 지정 형식에 대한 고정 형식 힌트 선언:
mypy
검사를 중단시킨ColumnOrName
,ColumnOrLiteralStr
,ColumnOrSqlExpr
,LiteralType
,ColumnOrLiteral
.DataFrameWriter.save_as_table
및DataFrame.copy_into_table
이 정규화된 테이블 이름을 구문 분석하지 못하는 버그를 수정했습니다.
버전 1.4.0(2023-04-24)¶
새로운 기능¶
session.getOrCreate
를 지원하는 기능이 추가되었습니다.별칭
Column.getField
를 지원하는 기능을 추가했습니다.snowflake.snowpark.functions
의 새 함수에 대해더하기 연산과 빼기 연산을 더 쉽게 수행하기 위한
date_add
및date_sub
지원을 추가했습니다.ddaydiff
dexplode
darray_distinct
dregexp_extract
dstruct
dformat_number
dbround
dsubstring_index
같은 버전의 파일이 이미 스테이지에 있는 경우 스테이지에 파일을 업로드하는 과정을 건너뛸 수 있도록
register_from_file
을 사용하여 UDF, UDTF, 저장 프로시저를 생성할 때 매개 변수skip_upload_on_content_match
를 추가했습니다.점을 포함하는 테이블 이름을 가져오는
DataFrame.save_as_table
메서드에 대한 지원을 추가했습니다.DataFrame.filter()
또는DataFrame.order_by()
다음에 프로젝션 문(예:DataFrame.select()
,DataFrame.with_column()
)이 올 때 생성되는 SQL을 평면화했습니다.Dataframe.create_or_replace_dynamic_table
을 사용하여 (비공개 미리 보기에서) 동적 테이블을 생성하기 위한 지원을 추가했습니다.바인딩 변수를 지원하기 위해
session.sql()
에 선택적 인자params
를 추가했습니다. 이 인자는 저장 프로시저에서 아직 지원되지 않습니다.
버그 수정 사항¶
구분 기호 전달 시 예외가 발생하는
strtok_to_array
의 버그를 수정했습니다.모듈이 다른 종속성과 동일한 네임스페이스를 갖는
session.add_import
의 버그를 수정했습니다.
버전 1.3.0(2023-03-28)¶
새로운 기능¶
functions.initcap()
에서 delimiters 매개 변수를 위한 지원을 추가했습니다.가변적인 개수의 입력 식을 허용하도록
functions.hash()
에 대한 지원을 추가했습니다.런타임 구성의 가변성을 가져오거나 설정하거나 확인하기 위해 API
Session.conf
를 추가했습니다.case_sensitive
매개 변수를 사용하여DataFrame.collect
의Row
결과에서 대소문자 구분 관리를 위한 지원 기능을 추가했습니다.snowflake.snowpark.types.StructType
에 대한 인덱서 지원을 추가했습니다.SQL 예외에 대한 오류 로깅을 선택적으로 비활성화하기 위해 키워드 인자
log_on_exception
을Dataframe.collect
및Dataframe.collect_no_wait
에 추가했습니다.
버그 수정 사항¶
다른 DataFrame 세트 작업 후에 DataFrame 세트 작업(
DataFrame.subtract
,DataFrame.union
등)이 호출되고DataFrame.select
또는DataFrame.with_column
에서 예외가 발생하는 버그를 수정했습니다.SQL 단순화 기능이 연결된 정렬 문을 덮어쓰는 버그를 수정했습니다.
개선 사항¶
기본적으로 상수 하위 쿼리 별칭(
SNOWPARK_LEFT
,SNOWPARK_RIGHT
)을 사용하도록 JOIN 쿼리를 단순화했습니다. 사용자는session.conf.set('use_constant_subquery_alias', False)
를 사용하여 런타임 시 이를 비활성화하여 무작위로 생성된 별칭 이름을 대신 사용할 수 있습니다.session.call()
에서 문 매개 변수를 지정할 수 있도록 허용했습니다.100,000행의 청크 크기를 기본값으로 설정하여 저장 프로시저에서 대형 판다 DataFrames의 업로드를 활성화했습니다.
버전 1.2.0(2023-03-02)¶
새로운 기능과 업데이트¶
저장 프로시저를 등록할 때 생성된 스크립트에서 소스 코드를 주석으로 표시하기 위한 지원을 추가했습니다. 이 기능은 기본적으로 활성화되어 있으며 등록 시
source_code_display=False
를 지정하여 비활성화합니다.지정된 함수 또는 프로시저가 이미 존재하는 경우 생성을 무시하도록 Snowpark Python에서 UDF, UDTF 또는 저장 프로시저를 생성할 때 매개 변수
if_not_exists
를 추가했습니다.snowflake.snowpark.functions.get
을 호출하여 배열에서 값을 추출할 때 정수를 허용합니다.Snowflake 기본 제공 함수 REVERSE 에 대한 액세스를 여는 함수에
functions.reverse
를 추가했습니다.사용 중단으로 표시된
is_owner_file
을 대체하려고 (비공개 미리 보기에서)snowflake.snowflake.files.SnowflakeFile.open()
에require_scoped_url
매개 변수를 추가했습니다.
버그 수정 사항¶
Snowpark 세션을 생성할 때
paramstyle
을qmark
로 덮어쓰는 버그를 수정했습니다.SnowparkJoinException: (1112): Unsupported using join type 'Cross'
오류 메시지가 표시되며df.join(..., how="cross")
가 실패하는 버그를 수정했습니다.연결된 함수 호출에서 생성된
DataFrame
열을 쿼리할 때 잘못된 열 이름이 사용되는 버그를 수정했습니다.
버전 1.1.0(2023-01-26)¶
새로운 기능과 업데이트¶
함수에
asc
,asc_nulls_first
,asc_nulls_last
,desc
,desc_nulls_first
,desc_nulls_last
,date_part
,unix_timestamp
를 추가했습니다.열 이름과 데이터 타입 쌍의 목록을 반환하는
DataFrame.dtypes
속성을 추가했습니다.다음 별칭을 추가했습니다.
functions.expr() for functions.sql_expr()
.functions.date_format() for functions.to_date()
.functions.monotonically_increasing_id() for functions.seq8()
.functions.from_unixtime() for functions.to_timestamp()
.
버그 수정 사항¶
경우에 따라 열 별칭과 조인을 제대로 처리하지 못하는 SQL 단순화 기능의 버그를 수정했습니다. 자세한 내용은 https://github.com/snowflakedb/snowpark-python/issues/658을 참조하십시오.
함수 호출 NaN 및 INF 에 대해 잘못된 열 이름을 생성하는 SQL 단순화 기능의 버그를 수정했습니다.
개선 사항¶
세션 매개 변수
PYTHON_SNOWPARK_USE_SQL_SIMPLIFIER
는 Snowflake 7.3이 출시된 후True
가 될 것입니다. snowpark-python에서session.sql_simplifier_enabled
는 기본적으로PYTHON_SNOWPARK_USE_SQL_SIMPLIFIER
의 값을 읽는데, 이는 Snowflake 7.3 출시 이후 기본적으로 SQL 단순화 기능이 활성화된다는 뜻입니다. 이 기능을 끄려면 Snowflake의PYTHON_SNOWPARK_USE_SQL_SIMPLIFIER
를 False로 설정하거나 Snowpark에서session.sql_simplifier_enabled = False
를 실행하십시오. SQL 단순화 기능은 더 간결한 SQL을 생성하는 데 도움이 되므로 이 기능을 사용하는 것이 좋습니다.