クエリおよびタスク履歴ビューおよび関数: 新しい列¶
Snowflakeの現在のリリースでは、クエリおよびタスク履歴のビューと関数の出力に新しい列が含まれています。影響を受けるビューと関数は以下のとおりです。
次のAccount Usageビュー:
次のInformation Schemaテーブル関数:
これらのビューと関数の出力には、以下の新しい列が含まれます。
列名 |
データ型 |
説明 |
---|---|---|
|
TEXT |
SQL ステートメントの正規化されたテキストに基づいて計算されるハッシュ値。 |
|
NUMBER |
|
|
TEXT |
リテラルをパラメーター化した後のクエリテキストのハッシュ値 |
|
NUMBER |
|
以前に でこれらのビューのいずれかからすべての列(SELECT *)を選択するように定義していると、ビューへのクエリはエラーを返します。 CREATE OR REPLACE VIEW コマンドを使用して、ビューを再作成する必要があります。
たとえば、 TASK_HISTORY ビューからすべての列を選択するビューを定義したとします。
CREATE OR REPLACE VIEW my_task_history
AS SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY;
- 以前:
ビュー(この例では
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;
さらに、これらのビューと同じ列を持つテーブルを作成し(例: CREATE TABLE ... LIKE SNOWFLAKE ... ACCOUNT_USAGE ... TASK_HISTORY を使用して)、そのビューからテーブルに行をコピーする場合は、テーブルに新しい列を追加する必要があります。 ALTER TABLE ... ADD COLUMN コマンドを使用して、ビューに追加したのと同じ列をテーブルに追加します。
参照: 1147