- カテゴリ:
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> ]
)
引数¶
すべての引数はオプションです。引数が提供されない場合は、アカウント内にあるすべてのCortex Search Serviceから100個のリフレッシュが返されます。
NAME => stringCortex 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 制限値も指定します。
範囲:
1~10000デフォルト:
100。
出力¶
この関数は、次の列を返します。
列名 |
データ型 |
説明 |
|---|---|---|
NAME |
TEXT |
Cortex Search Serviceの名前。 |
SCHEMA_NAME |
TEXT |
Cortex Search Serviceを含むスキーマの名前。 |
DATABASE_NAME |
TEXT |
Cortex Search Serviceを含むデータベースの名前。 |
STATE |
TEXT |
Cortex Search Serviceのリフレッシュのステータス。ステータスは、次のいずれかになります。
|
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 |
インデックス前処理のための次のプロパティが含まれています。
|
INDEXING_DURATION |
NUMBER |
インデックス作成フェーズの期間(ミリ秒単位)。 |
INDEXING_QUERY_ID |
TEXT |
インデックス作成を実行したクエリの ID。 |
REFRESH_ACTION |
TEXT |
次のいずれか:
|
REFRESH_TRIGGER |
TEXT |
次のいずれか:
|
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;
特定の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;
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;