カテゴリ:

Information Schemaテーブル関数

CORTEX_SEARCH_REFRESH_HISTORY

このテーブル関数は、 Cortex Search Service の各リフレッシュ(完了および実行中)に関する情報を返します。

このテーブル関数は、現在進行中のすべてのリフレッシュと、現時刻から7日以内に DATA_TIMESTAMP のあるすべてのリフレッシュを返します。

構文

CORTEX_SEARCH_REFRESH_HISTORY(
  [ NAME => '<string>' ]
  [ , DATA_TIMESTAMP_START => <constant_expr> ]
  [ , DATA_TIMESTAMP_END => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
)
Copy

引数

すべての引数はオプションです。引数が提供されない場合は、アカウント内にあるすべてのCortex Search Serviceから100個のリフレッシュが返されます。

NAME => string

Cortex Search Serviceの名前。

名前は一重引用符で囲む必要があり、大文字と小文字は区別されません。

非修飾名(service_name)、部分修飾名(schema_name.service_name)、または完全修飾名(database_name.schema_name.service_name)を指定できます。

オブジェクト名解決の詳細については、 オブジェクト名の解決 をご参照ください。

関数は、このサービスのリフレッシュを返します。

DATA_TIMESTAMP_START => constant_expr. DATA_TIMESTAMP_END => constant_expr

リフレッシュが発生した時間範囲(TIMESTAMP_LTZ形式)。

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

  • 終了時間が指定されていない場合は、 CURRENT_TIMESTAMP が範囲の終了として使用されます。

  • 開始時間が指定されていない場合、範囲は DATA_TIMESTAMP_END の開始1日前から始まります。

RESULT_LIMIT => integer

関数によって返される行の最大数を指定する数です。一致する行の数がこの制限よりも大きい場合は、指定された制限まで、最新(およびまだ実行中)のリフレッシュが返されます。

結果にフィルターを適用するには、すべてのCortex Search Serviceにフィルターを適用できる十分な大きさの RESULT_LIMIT 制限値も指定します。

範囲: 110000

デフォルト: 100

出力

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

列名

データ型

説明

NAME

TEXT

Cortex Search Serviceの名前。

SCHEMA_NAME

TEXT

Cortex Search Serviceを含むスキーマの名前。

DATABASE_NAME

TEXT

Cortex Search Serviceを含むデータベースの名前。

STATE

TEXT

Cortex Search Serviceのリフレッシュのステータス。ステータスは、次のいずれかになります。

  • EXECUTING: リフレッシュが進行中です。

  • SUCCEEDED: リフレッシュは正常に完了しました。

  • FAILED :実行中にリフレッシュに失敗しました。

  • CANCELLED: 実行前にリフレッシュがキャンセルされました。

DATA_TIMESTAMP

TIMESTAMP_LTZ

リフレッシュが評価されたトランザクションのタイムスタンプ。(実際のリフレッシュの時間より少し前になる可能性があります。)このタイムスタンプより前に到着した、ベースオブジェクト内のすべてのデータが、現在Cortex Search Serviceに含まれています。

REFRESH_START_TIME

TIMESTAMP_LTZ

リフレッシュジョブの開始時刻。

REFRESH_END_TIME

TIMESTAMP_LTZ

リフレッシュの完了時刻。

INDEX_PREPROCESSING_DURATION

NUMBER

インデックス前処理フェーズの期間(ミリ秒単位)。

INDEX_PREPROCESSING_QUERY_ID

TEXT

インデックス前処理を実行したクエリの ID。

INDEX_PREPROCESSING_STATISTICS

OBJECT

インデックス前処理のための次のプロパティが含まれています。

  • compilationTimeMs:クエリのコンパイルにかかった時間(ミリ秒単位)

  • executionTimeMs:クエリの実行にかかった時間(ミリ秒単位)

  • queuedTimeMs:実行前にキューに入れられた時間(ミリ秒単位)

  • numInsertedRows: 挿入された行の数。

  • numDeletedRows: 削除された行の数。

  • numCopiedRows: 変更されずにコピーされた行の数。

  • numAddedPartitions: 追加されたパーティションの数。

  • numRemovedPartitions:削除されたパーティションの数。

INDEXING_DURATION

NUMBER

インデックス作成フェーズの期間(ミリ秒単位)。

INDEXING_QUERY_ID

TEXT

インデックス作成を実行したクエリの ID。

REFRESH_ACTION

TEXT

次のいずれか:

  • NO_DATA - ベーステーブルに新しいデータはありません。

  • FULL:Cortex Search Serviceのフルリフレッシュ。

  • INCREMENTAL:Cortex Search Serviceの増分リフレッシュ。

REFRESH_TRIGGER

TEXT

次のいずれか:

  • SCHEDULED:サービスを最新の状態に保つための通常のバックグラウンドリフレッシュ。

  • MANUAL:ALTERCORTEXSEARCHSERVICE を使用して、ユーザーが手動でトリガーされたリフレッシュ。

  • CREATION:DDL ステートメント作成中に実行されたリフレッシュ。

TARGET_LAG_SEC

NUMBER

リフレッシュが発生した時点のCortex Search Serviceのターゲットラグ値を説明します。

WAREHOUSE

TEXT

リフレッシュ操作に使用されるウェアハウスの名前。

ERROR

TEXT

リフレッシュに失敗した場合はエラーメッセージ、それ以外の場合は NULL。

使用上の注意

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

過去1週間に失敗したCortex Search Serviceのリフレッシュを検索します。

SELECT
  data_timestamp,
  database_name,
  schema_name,
  name,
  state,
  error,
  refresh_trigger
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      DATA_TIMESTAMP_START => DATEADD(WEEK, -1, CURRENT_TIMESTAMP())
    )
  )
ORDER BY
  data_timestamp DESC
LIMIT 10;
Copy

特定のCortex Search Serviceの最近の手動リフレッシュを検索します。

SELECT
  data_timestamp,
  refresh_start_time,
  refresh_end_time,
  refresh_action,
  state
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      NAME => 'MYSVC',
      DATA_TIMESTAMP_START => DATEADD(DAY, -7, CURRENT_TIMESTAMP()),
      RESULT_LIMIT => 20
    )
  )
WHERE
  refresh_trigger = 'MANUAL'
ORDER BY
  data_timestamp DESC;
Copy

Cortex Search Serviceのリフレッシュパフォーマンスを分析します。

SELECT
  name,
  data_timestamp,
  index_preprocessing_duration,
  indexing_duration,
  TIMEDIFF(SECOND, refresh_start_time, refresh_end_time) AS total_refresh_duration_sec,
  index_preprocessing_statistics:numInsertedRows AS rows_processed
FROM
  TABLE (
    INFORMATION_SCHEMA.CORTEX_SEARCH_REFRESH_HISTORY (
      NAME => 'MYSVC',
      DATA_TIMESTAMP_START => DATEADD(DAY, -30, CURRENT_TIMESTAMP())
    )
  )
WHERE
  state = 'SUCCEEDED'
ORDER BY
  data_timestamp DESC;
Copy