クエリおよびタスク履歴ビューおよび関数: 新しい列

注意

この動作変更は2023_06バンドルにあります。

バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。

Snowflakeの現在のリリースでは、クエリおよびタスク履歴のビューと関数の出力に新しい列が含まれています。影響を受けるビューと関数は以下のとおりです。

これらのビューと関数の出力には、以下の新しい列が含まれます。

列名

データ型

説明

query_hash

TEXT

SQL ステートメントの正規化されたテキストに基づいて計算されるハッシュ値。

query_hash_version

NUMBER

query_hash 列のハッシュのバージョン。

query_parameterized_hash

TEXT

リテラルをパラメーター化した後のクエリテキストのハッシュ値

query_parameterized_hash_version

NUMBER

query_parameterized_hash 列のハッシュのバージョン。

以前に でこれらのビューのいずれかからすべての列(SELECT *)を選択するように定義していると、ビューへのクエリはエラーを返します。 CREATE OR REPLACE VIEW コマンドを使用して、ビューを再作成する必要があります。

たとえば、 TASK_HISTORY ビューからすべての列を選択するビューを定義したとします。

CREATE OR REPLACE VIEW my_task_history
  AS SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY;
Copy
以前

ビュー(この例では my_task_history)をクエリすると、ビューの結果が返されます。

現在

ビュー(この例では my_task_history)をクエリすると、ビューの列数に関するエラーが返されます。

View definition for MY_DB.MY_SCHEMA.MY_TASK_HISTORY' declared 22 column(s),
but view query produces 27 column(s).

CREATE VIEW の使用上の注意 に記載されているように、ビューが基になるテーブルまたはビューからすべての列を選択する場合は、新しい列が基になるテーブルまたはビューに追加されても、ビューは自動的に更新されません。ビューをクエリすると、列に関連するエラーが返されます。

このエラーを防ぐには、ビューを再作成する必要があります。たとえば、特定の列を選択して上記の例のビューを再作成するには(列の追加に起因する将来の問題を避けるため)、

CREATE OR REPLACE VIEW my_task_history
  AS SELECT query_text, completed_time FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY;
Copy

さらに、これらのビューと同じ列を持つテーブルを作成し(例: CREATE TABLE ... LIKE SNOWFLAKE ... ACCOUNT_USAGE ... TASK_HISTORY を使用して)、そのビューからテーブルに行をコピーする場合は、テーブルに新しい列を追加する必要があります。 ALTER TABLE ... ADD COLUMN コマンドを使用して、ビューに追加したのと同じ列をテーブルに追加します。

参照: 1147