2022_07バンドル¶
このトピックでは、その月における次の動作の変更(ある場合)について説明します。
廃止された機能。
有効になったバンドルされた変更。
その他、実装されたバンドルされていない変更。
これらの変更について質問がある場合は、 Snowflakeサポート にお問い合わせください。
今月導入された新機能、拡張機能、および修正の詳細については、 2022年10月 をご参照ください。
重要
特に明記されていない限り、これらは2022_07バンドルで変更されており、6.35リリースにおいてデフォルトで有効になっています。
このトピックの内容:
SQL の変更 --- コマンドおよび関数¶
CREATE MATERIALIZED VIEW コマンド: Time Travel句が不許可に¶
マテリアライズドビューの制限の1つは、Time Travelがサポートされていないことです。ただし、 CREATE MATERIALIZED VIEW コマンドを実行すると、ビューのベーステーブルにTime Travel句(例: AT
)を指定できました。
現在は、 CREATE MATERIALIZED VIEW でTime Travel句を指定すると、エラーが発生するようになりました。
- 以前:
CREATE MATERIALIZED VIEW にTime Travel句を指定してもエラーにはなりませんでした。
たとえば、次のステートメントはエラーなしで正常に実行されました。
例1:
create or replace materialized view mv as select * from basetbl at(offset => -2);
例2:
create or replace materialized view mv as select * from basetbl at(timestamp => $ts);
例3:
create or replace materialized view mv as select * from basetbl at(statement => $uuid_dml);
- 現在:
現在は、 CREATE MATERIALIZED VIEW でTime Travel句を指定すると、次のエラーが発生するようになりました。
002274 (42601): SQL compilation error: Invalid materialized view: Time travel on base table in line X at position Y.
SQL の変更 --- 使用状況ビューおよびInformation Schemaビュー/テーブル関数¶
GRANT_TO_ROLES ビュー(Account Usage): ビューの変更¶
次の変更が ACCOUNT_USAGE.GRANTS_TO_ROLES ビューに導入されました。
- 以前:
ビューの出力には、仮テーブルのロールへの権限付与が含まれていました。
- 現在:
ビューの出力には、仮テーブルのロールへの権限付与は含まれません。
データレイクの変更¶
CREATE EXTERNAL TABLE コマンド: ユーザー指定のパーティションと自動的に更新されるメタデータ¶
外部テーブルのパーティションをユーザー指定として定義するということは、式に一致する外部ストレージの場所にあるすべての新しいファイルのパーティションを自動的に追加するのではなく、パーティションを選択的に追加および削除することを意味します。このパーティション型は、外部テーブルを作成するときに PARTITION_TYPE = USER_SPECIFIED
パラメーターを含めることで指定されます。ユーザー指定のパーティション分割では、外部テーブルメタデータの自動更新はサポートされていません。
PARTITION_TYPE = USER_SPECIFIED
と AUTO_REFRESH = TRUE
の両方のパラメーターを設定して CREATE EXTERNAL TABLE ステートメントを実行する場合の動作は、次のように変更されました。
- 以前:
CREATE EXTERNAL TABLE ステートメントは成功しました。ただし、外部テーブルのクラウドストレージから受信したイベント通知(例: 「新しいオブジェクト」メッセージ)はエラーを生成しました。
- 現在:
CREATE EXTERNAL TABLE ステートメントはユーザーエラーを返します。
GET_DDL 関数: Delta Lakeの外部テーブルの TABLE_FORMAT パラメーターを返す¶
GET_DDL 関数の入力がDelta Lakeテーブルを参照する外部テーブルである場合、関数によって返される CREATE EXTERNAL TABLE ステートメントは次のように変更されました。
- 以前:
このステートメントでは、Delta Lakeテーブルを参照しているものとして外部テーブルを識別する
TABLE_FORMAT = DELTA
パラメーターが省略されました。- 現在:
ステートメントには
TABLE_FORMAT = DELTA
パラメーターが含まれます。
拡張性の変更¶
Python用Snowpark: エラーの発生時期が、無効なパッケージを追加するときに早まる¶
PythonパッケージをPython Snowparkセッションに追加するときに、パッケージまたはその指定されたバージョンがSnowflakeでサポートされていない場合、ユーザーはエラーメッセージを受け取ります。
エラーメッセージを受信する時期が早くなるように変更されました。
- 以前:
このエラーは、ユーザーが UDF またはストアドプロシージャを登録しようとしたそのときに発生しました。
- 現在:
エラーの発生時期が、add_packagesを使用してPythonパッケージを追加するときに早まりました。
たとえば、パッケージバージョンが無効であるため、
"session.add_packages('numpy==21.21.21')"
を呼び出すと"ValueError"
になります。
ScalaおよびJava用Snowpark: DeleteResult、 MergeResult、および UpdateResult のメンバーの型に対する変更¶
Snowpark ScalaおよびJava の APIs では、 DeleteResult
、 MergeResult
、および UpdateResult
クラスが、値メンバーと、挿入、更新、および削除された行数を返すgetterメソッドを提供します。
Snowpark Scala API では、これらの値メンバーの名前は次のとおりです。
rowsInserted
multiJoinedRowsUpdated
rowsUpdated
rowsDeleted
Snowpark Java API では、これらのgetterメソッドの名前は次のとおりです。
getRowsInserted
getMultiJoinedRowsUpdated
getRowsUpdated
getRowsDeleted
ScalaおよびJava用Snowparkライブラリの1.7.0リリースでは、これらの値メンバーの型とこれらのgetterメソッドの戻り型が次のように変更されました。
- 1.7.0より前:
Scala API では、型は
Int
です。Java API では、型は
int
です。
- 1.7.0以降:
Scala API では、型は
Long
です。Java API では、型は
long
です。