カテゴリ:

Information Schemaテーブル関数

AUTOMATIC_CLUSTERING_HISTORY

このテーブル関数は、指定された日付範囲内の特定のテーブルの 自動クラスタリング 履歴をクエリするために使用されます。関数によって返される情報には、消費されたクレジット、更新されたバイト、テーブルが再クラスター化されるたびに更新された行が含まれます。

構文

AUTOMATIC_CLUSTERING_HISTORY(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ]
      [ , TABLE_NAME => '<string>' ] )
Copy

引数

すべての引数はオプションです。

DATE_RANGE_START => constant_expr. DATE_RANGE_END => constant_expr

自動クラスタリング履歴を表示する日付/時刻範囲です。たとえば、開始日を2019-04-03、終了日を2019-04-05と指定すると、4月3日、4月4日、4月5日のデータが取得されます。(エンドポイントを含む。)

  • 開始日も終了日も指定されていない場合、過去12時間がデフォルトです。

  • 終了日は指定されていないが、開始日は指定されている場合は、 CURRENT_DATE の午前0時が範囲の終了として使用されます。

  • 開始日は指定されていないが、終了日は指定されている場合、範囲は DATE_RANGE_END の開始12時間前に開始します。

TABLE_NAME => string

テーブル名です。指定した場合、指定したテーブルの履歴のみを表示します。テーブル名には、スキーマ名とデータベース名を含めることができます。

テーブル名が指定されていない場合、結果には、指定された時刻範囲内で自動クラスタリングサービスによって維持される各テーブルの履歴が含まれます。

使用上の注意

  • ACCOUNTADMIN ロールまたは MONITOR USAGE グローバル権限が明示的に付与されているロールの結果のみを返します。

    注釈

    MONITOR USAGE 権限を持つロールは、オブジェクトごとのクレジット使用状況を表示できますが、オブジェクト名は表示できません。この関数によって名前が返されるようにするには、オブジェクトのロールに SELECT も付与する必要があります。ロールにオブジェクト名を表示するための十分な権限がない場合、オブジェクト名は「unknown_#」などの代替名で表示される場合があります。「#」は1桁以上を表します。

  • 情報スキーマテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。

  • 履歴は1時間単位で表示されます。

出力

この関数は、次の列を返します。

列名

データ型

説明

START_TIME

TIMESTAMP_LTZ

指定された時間範囲の開始です。

END_TIME

TIMESTAMP_LTZ

指定された時間範囲の終了です。

TABLE_NAME

TEXT

テーブルの名前。関数にテーブル名が指定されていない場合は NULL を表示します。この場合、いずれかの行には、時間範囲内で使用中のすべてのテーブルの合計が含まれます。

CREDITS_USED

NUMBER

START_TIME から END_TIME の期間に自動クラスタリングに対して請求されたクレジットの数です。

NUM_BYTES_RECLUSTERED

NUMBER

START_TIME から END_TIME の期間に再クラスター化されたバイト数です。

NUM_ROWS_RECLUSTERED

NUMBER

START_TIME からEND_TIME の期間に再クラスター化されロードされた行の数です。

アカウントの1時間範囲の自動クラスタリング履歴を取得します。

select *
  from table(information_schema.automatic_clustering_history(
    date_range_start=>'2018-04-10 13:00:00.000 -0700',
    date_range_end=>'2018-04-10 14:00:00.000 -0700'));
Copy

アカウントの過去12時間の自動クラスタリング履歴を1時間周期で取得します。

select *
  from table(information_schema.automatic_clustering_history(
    date_range_start=>dateadd(H, -12, current_timestamp)));
Copy

アカウントの過去1週間の自動クラスタリング履歴を取得します。

select *
  from table(information_schema.automatic_clustering_history(
    date_range_start=>dateadd(D, -7, current_date),
    date_range_end=>current_date));
Copy

アカウント内の指定されたテーブルの過去1週間の自動クラスタリング履歴を取得します。

select *
  from table(information_schema.automatic_clustering_history(
    date_range_start=>dateadd(D, -7, current_date),
    date_range_end=>current_date,
    table_name=>'mydb.myschema.mytable'));
Copy