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
改善¶
UDTFs の内部を改善しました。
バージョン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 ファイルは、lib/
サブディレクトリ(jackson-core-2.13.2.jar
、jackson-databind-2.13.2.2.jar
、およびjackson-annotations-2.13.2.jar
)で個別に提供されます。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 のプレビュー機能として利用可能です。
Snowpark Scala API がAzureで一般公開されました。
このリリース以前、 API は AWS に対してのみ一般公開されていました。API は引き続き GCS のプレビュー機能として利用可能です。
UDTFsを作成するためのJava API を追加しました。これはプレビュー機能であることに注意してください。
Scala と Java に、ステージからデータをアップロードしたりダウンロードしたりするための新しい APIs を追加しました(
FileOperation.uploadStream and FileOperation.downloadStream
)。Scala および Java に、 DataFrame の列にある値をテーブルの列にマッピングする方法を指定するための
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 を追加しました。
Scala API で、 UDTFs を作成 するためのプレビューサポートを追加しました。
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)リリース。(Snowparkは引き続きAzureと GCP ではプレビュー機能です。)
このリリースの API リファレンスは、 Snowflake Client Repository の .zip
または .tar.gz
ファイルで入手できます。
バージョン0.12.0(2022年1月4日)¶
互換性のあるSnowflakeリリース: 5.45.x
このリリースの API リファレンスは、 Snowflake Client Repository の .zip
または .tar.gz
ファイルで入手できます。
新機能¶
改善¶
UDFs の生成コードでは、静的コードブロックをオブジェクトインスタンス関数に置き換えています。
エラーメッセージを再編成しました。
saveAsTable
関数を変更し、Appendモードで新しいテーブルが作成されないようにしました。callUDF
関数を改善し、あらゆる型の引数をサポートするようにしました。クエリタグをセッションレベルではなくステートメントレベルで設定するようにライブラリを変更しました。
バージョン0.11.0(2021年11月16日)¶
互換性のあるSnowflakeリリース: 5.45.x
このリリースの API リファレンスは、 Snowflake Client Repository の .zip
または .tar.gz
ファイルで入手できます。
新機能¶
Session
クラスに generator メソッドを、functionsオブジェクトに seq1、 seq2、 seq4、 seq8、および uniform 関数を追加しました。Sessionクラスに getSessionInfo メソッドを追加しました。
DataFrames に対して同期にアクションを実行する ための APIs を追加しました。
改善¶
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 メソッドと合わせて)とfunctionsオブジェクト(in関数と合わせて)に、in式のサポートを追加しました。
DataFrame.toLocalIterator が返すIteratorを拡張して、反復子のcloseメソッドの呼び出しを許可する
Closeable
インターフェイスをサポートするようにしました。新しい構成プロパティ
snowpark_request_timeout_in_seconds
のサポートを追加しました。 これを構成マップ/ファイルで設定 して、ライブラリが依存関係をステージにアップロードする際に使用するタイムアウトを調整することができます。デフォルトでは、タイムアウトは86400(1日)です。
改善¶
DataFrame.withColumns メソッドに、入力列名が重複して指定されていないことを確認するロジックを追加しました。
Copyable
およびUpdatable
クラスのclone
メソッドが正しい DataFrame 型を返すように更新されました。アプリケーション ID の指定に対するサポートを
構成マップ/ファイルで、アプリケーション JDBC プロパティを設定 することによって追加しました。
動作の変更¶
Scala APIからJava専用の APIs を削除しました。
デフォルトのロガー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 <table> コマンドと同等です。
新しいメソッド DataFrame.rename() を追加し、 DataFrame の列名を変更できるようにしました。
if-then-else式を指定するための新しい関数 functions.iff() を追加しました。これは、 IFF 関数と同等です
DecimalType クラスに新しいコンストラクターを追加しました。
動作の変更¶
DataFrame.union()メソッドおよび DataFrame.unionByName()メソッドを変更して、 UNION ALL ではなく UNION を使用するように変更しました 。
バグ修正¶
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 リテラルに関する問題を修正しました。
複数のセット操作(union、intersectなど)を実行したときに発生する場合がある問題を修正しました。
バージョン0.7.0(2021年7月23日)¶
互換性のあるSnowflakeリリース: 5.29.x
このリリースの API リファレンスは、 Snowflake Client Repository の .zip
または .tar.gz
ファイルで入手できます。
新しい APIs¶
新しい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
median
min
sum
以前のリリースでは、引数なしでこれらのメソッドを呼び出した場合、これらのメソッドは 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()ではなくこれを使用します。
medianメソッドを RelationalGroupedDataFrame クラスに追加しました。
改善¶
識別子が無効な場合に返されるエラーメッセージを改善しました。
データベースまたはスキーマ名が指定されていない場合に、エラーを報告するようにエラーチェックを拡張しました。
テーブルに多数の値を挿入するときのパフォーマンスが向上しました。
Snowflakeオブジェクト識別子(テーブル名とビュー名)を一貫して処理するようにライブラリを更新しました。現在、テーブル名またはビュー名を指定するパラメーターすべては、以下の使用をサポートしています。
短い名前(例: table_nameやview_name)
完全修飾名(例: database.schema.table_name)
マルチパート識別子(例: Seq("database", "schema", "view_name"))
サポートされているバージョンのScalaが使用されていることを確認するためのチェックを追加しました。Scalaバージョンに互換性がない場合、ライブラリはエラーを報告します。
バグ修正¶
Microsoft Windowsでの UDFs の登録に関する問題を修正しました。
DataFrame.sort()を DataFrame.limit()で使用した場合の結果の順序に関する問題を修正しました。
ギャップのない一連の数値を生成するようにSession.range()を修正しました。
バージョン0.4.1¶
このバージョンでは、Snowparkオブジェクトの仮スキーマまたは仮データベース(TEMP_SCHEMA および TEMP_DB 設定)を指定する必要がなくなりました。Snowparkライブラリは、必要なオブジェクトの仮バージョンを自動的に作成します。
API の変更¶
DataFrame.cache()メソッドを DataFrame.cacheResult()メソッドに置き換えました。
新しいメソッドは、キャッシュされた結果を含む新しい DataFrame を作成して返し、現在の DataFrame には影響しません。この変更の結果、 DataFrame オブジェクトは不変になりました。
新しい APIs¶
次の新しいメソッドを RelationalGroupedDataFrame クラスに追加しました。
avg
max
次の新しいメソッドを DataFrame クラスに追加しました。
groupByGroupingSets
clone
createOrReplaceTempView
次の新しい関数をfunctionオブジェクトに追加しました。
toScalar
Session.fileオブジェクトを追加しました。これは、ファイル操作を実行するための次の新しいメソッドを提供します。
get
put
Session.createDataFrame メソッドに次の変更を加えました。
ユーザー提供のスキーマのサポートが追加されました。
バリアントと地理データのマップと配列を指定するためのサポートが追加されました。
UDFs に地理/バリアントデータ型のサポートが追加されました。
registerPermanentメソッドを UDFRegistration クラスに追加しました。
バグ修正¶
DataFrame 列名に引用符が含まれている場合の問題を修正しました。
バックスラッシュ、一重引用符、および改行文字を含むデータをエスケープできない問題を修正しました。
UDF の作成が、「code too large」というエラーメッセージをともない失敗する問題を修正しました。
UDF クロージャがローカル文字列変数の値をキャプチャできなかった問題を修正しました。
次の SQL 句の結果スキーマを追加しました。
GRANT/REVOKE
DESCRIBE
CREATE
USE
Visual Studio CodeでMetals拡張機能と合わせてSnowparkを使用して UDF を作成する際の問題を修正しました。