2022_05バンドル¶
このトピックでは、その月における次の動作の変更(ある場合)について説明します。
廃止された機能。
有効になったバンドルされた変更。
その他、実装されたバンドルされていない変更。
これらの変更について質問がある場合は、 Snowflakeサポート にお問い合わせください。
今月導入された新機能、拡張機能、および修正の詳細については、 2022年8月 をご参照ください。
重要
特に明記されていない限り、これらの変更は2022_05バンドルにあり、6.29リリースにおいてデフォルトで有効化されています。
このトピックの内容:
セキュリティの変更¶
キーペア認証: 発行時刻は1日以内にすることが必須¶
JSON Webトークン(JWT)を使用したキーペア認証は、次のように変更されました。
- 以前:
JWT トークンは秒単位の発行時刻と有効期限で送信可能。これらの値がミリ秒単位で送信された場合、Snowflakeはミリ秒の値を秒のように扱いました。
将来の発行時刻を使用した JWT トークンが使用可能。
- 現在:
JWT トークンでミリ秒単位または秒単位の発行時間と有効期限が使用できるようになりました。
将来の発行時刻を使用した JWT トークンは使用できなくなりました。必要に応じて、トークン生成プロセスを更新して、発行時刻の値が将来でないことを確認してください。
SQL 変更点 --- 一般¶
トランザクション IDs とタイムスタンプの変更¶
トランザクション IDs のサイズが大きくなり、選択したシステム関数によって返されるタイムスタンプの精度が向上しました。
- 以前:
トランザクション ID の値は、およそ13桁の長さでした。
タイムスタンプの精度はミリ秒でした。
- 現在:
トランザクション ID は、符号付き64ビット(ロング)整数になりました。値の範囲は
-9,223,372,036,854,775,808 (-263)
から9,223,372,036,854,775,807 (263 – 1)
です。タイムスタンプはナノ秒の精度に変換されます。
この変更には次の影響があります:
次のコマンドと関数のトランザクション IDs は、以前の値の約100万倍大きくなっています。
SHOW TRANSACTIONS (
id
列)DESCRIBE TRANSACTION (
id
列)CURRENT_TRANSACTION (関数の出力)
LAST_TRANSACTION (関数の出力)
SHOW LOCKS (
transaction
列)
次のシステム関数のタイムスタンプ出力は、ミリ秒からナノ秒の精度に変換されました。
SYSTEM$LAST_CHANGE_COMMIT_TIME (関数の出力)
SQL の変更 --- コマンドおよび関数¶
GET_DDL 関数: 二重引用符とピリオドを含む識別子の出力の変更¶
GET_DDL 関数の出力は、次のように変更されました。
- 以前:
GET_DDL は、文字列に二重引用符が含まれている場合、オブジェクトまたは列の名前を正しく返しませんでした。名前に二重引用符が含まれている場合は、二重引用符の前に別の二重引用符を付ける必要があります。その結果、文字列には二重引用符のペアが含まれます。しかし、関数は二重引用符を1つだけ返しました。
たとえば、テーブルの名前が
"foo""one"
だったとします。テーブルで GET_DDL を実行すると、テーブルの名前として"foo"one"
が誤って返されました。その結果、関数の出力を使用してテーブルを再作成できませんでした。さらに、ピリオドが名前の先頭または文字列内の二重引用符の直後にある場合、 GET_DDL (および完全修飾オブジェクト名を文字列として受け入れるその他の関数)は、指定された名前を解析できませんでした。
たとえば、次の文字列はオブジェクト名としてサポートされていませんでした。
".foo"
("
はスキーマ名として解析され、FOO"
はオブジェクト名として解析されます)"public"".foo"
(public"
はスキーマ名として解析され、FOO"
はオブジェクト名として解析されます)
- 現在:
GET_DDL は二重引用符を含むオブジェクト名と列名を正しく正常に返します。
さらに、 GET_DDL (および完全修飾オブジェクト名を受け入れるその他の関数)は、ピリオドが名前の先頭または文字列内の二重引用符の直後にある、指定されたオブジェクト名を解析できます。
SQL の変更 --- 使用状況ビューおよびInformation Schemaビュー/テーブル関数¶
FUNCTIONS ビュー(Information Schema): ビューの新しい列¶
Information Schema FUNCTIONS ビューの出力に、次の新しい列が含まれるようになりました。
列名 |
データ型 |
説明 |
---|---|---|
PACKAGES |
STRING |
関数によってリクエストされるパッケージを指定します。 |
RUNTIME_VERSION |
STRING |
関数のランタイムバージョンを指定します。関数が SQL またはJavaScriptの場合は NULL。 |
INSTALLED_PACKAGES |
STRING |
関数によってインストールされるすべてのパッケージをリストします。Python 関数のみの出力。 |
データパイプラインの変更¶
DESCRIBE STREAM / SHOW STREAMS コマンド: 出力の新しい INVALID_REASON 列¶
DESCRIBE STREAM および SHOW STREAMS コマンドの出力には、次の列が含まれるようになりました。
列名 |
データ型 |
説明 |
---|---|---|
INVALID_REASON |
STRING |
ストリームの内容を正常にクエリできない理由を指定します。この列は、将来の機能をサポートするために導入されました。列が導入されると、返される値はN/Aのみになります。 |
この変更の影響を限定するために、列は出力の最後の列として追加されています。
データレイクの変更¶
SHOW EXTERNAL TABLES コマンド: LOCATION 列は、データコンシューマーに対して NULL を返す¶
プロバイダーは、他のデータベースオブジェクトに加えて、Snowflake Secure Data Sharingを介してコンシューマーアカウントへの共有に外部テーブルを含めることができます。
コンシューマーアカウントのユーザーが SHOW EXTERNAL TABLES コマンドを実行すると、共有外部テーブルの出力が次のように変更されます。
- 以前:
LOCATION 列は、インポートされた共有内にある外部テーブルに対する外部テーブル定義の外部ステージとフォルダーパスを示しました(つまり、コンシューマーアカウントの外部テーブルに対して同じ情報が返されました)。
- 現在:
LOCATION 列には、インポートされた共有の外部テーブルの NULL が表示されます。
Snowflake CLI、コネクタ、ドライバー、および SQL API の変更¶
Snowflake SQL API: 古いエンドポイントの削除¶
Snowflake SQL API の廃止された古いエンドポイントは使用できなくなりました。これには、次のエンドポイントが含まれます。
/api/statements/
/api/statements/<statementHandle>
/api/statements/<statementHandle>/cancel
これらのエンドポイントを呼び出すと、 HTTP 404エラーコードが返されるようになりました。
SQL API の新しいバージョンを使用していることを確認する必要があります。詳細については、 SQL API エンドポイントについてをご参照ください。