2023년 Python용 Snowpark 라이브러리 릴리스 정보¶
이 문서에는 Snowpark Library for Python 에 대한 릴리스 정보가 있는데, 해당되는 경우 다음을 포함합니다.
동작 변경 사항
새로운 기능
고객이 직면한 버그 수정
Snowflake는 Snowpark Library for Python 업데이트에 의미 체계 버전 관리를 사용합니다.
설명서는 Python용 Snowpark 개발자 가이드 섹션을 참조하십시오.
버전 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리터럴에 대해PythonObjJSONEncoderJSON 직렬화 가능 오브젝트를 지원합니다.
종속성 업데이트¶
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_sortsort_arrayarray_minarray_maxexplode_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_rangearray_unique_aggcollect_setsequenceTABLE반환 유형으로 저장 프로시저를 등록하고 호출하기 위한 지원을 추가했습니다.열에서 저장할 수 있는 최대 문자 개수를 지정하도록
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지원을 추가했습니다.ddaydiffdexplodedarray_distinctdregexp_extractdstructdformat_numberdbrounddsubstring_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을 생성하는 데 도움이 되므로 이 기능을 사용하는 것이 좋습니다.