Catégories :

Information Schema , Fonctions de table

CORTEX_SEARCH_REFRESH_HISTORY

Cette fonction de table renvoie des informations sur chaque actualisation (terminée et en cours) des Cortex Search Services.

Cette fonction de table renvoie toutes les actualisations en cours ainsi que toutes les actualisations pour lesquelles DATA_TIMESTAMP se situe dans un délai de 7 jours par rapport à l’heure actuelle.

Syntaxe

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

Arguments

Tous les arguments sont facultatifs. Si aucun argument n’est fourni, alors 100 actualisations de tous les Cortex Search Services du compte seront renvoyées.

NAME => string

Le nom d’un service Cortex Search.

Les noms doivent être mis entre guillemets simples et ne sont pas sensibles à la casse.

Vous pouvez spécifier le nom incomplet (service_name), le nom partiellement complet (schema_name.service_name) ou le nom complet (database_name.schema_name.service_name).

Pour plus d’informations sur la résolution des noms d’objets, reportez-vous à Résolution de nom d’objet.

La fonction renvoie les actualisations pour ce service.

DATA_TIMESTAMP_START => constant_expr , . DATA_TIMESTAMP_END => constant_expr

Plage de temps (au format TIMESTAMP_LTZ) pendant laquelle les actualisations ont eu lieu.

  • Si aucune heure de début ni de fin n’est spécifiée, la plage par défaut correspondra aux dernières 24 heures.

  • Si aucune heure de fin n’est spécifiée, CURRENT_TIMESTAMP est utilisée comme fin de plage.

  • Si aucune heure de début n’est spécifiée, la plage commence 1 jour avant le début de DATA_TIMESTAMP_END.

RESULT_LIMIT => integer

Un nombre spécifiant le nombre maximum de lignes renvoyé par la fonction. Si le nombre de lignes correspondantes est supérieur à cette limite, les actualisations avec l’heure de fin la plus récente (ou celles qui sont toujours en cours d’exécution) sont renvoyées, jusqu’à la limite spécifiée.

Pour appliquer un filtre aux résultats, vous devez également spécifier une valeur limite RESULT_LIMIT assez grande pour le filtre à appliquer sur tous les Cortex Search Services.

Plage : de 1 à 10000

Par défaut : 100.

Sortie

La fonction renvoie les colonnes suivantes.

Nom de la colonne

Type de données

Description

NAME

TEXT

Nom du Cortex Search Service.

SCHEMA_NAME

TEXT

Le nom du schéma contenant le Cortex Search Service.

DATABASE_NAME

TEXT

Le nom de la base de données qui contient le Cortex Search Service.

STATE

TEXT

Statut de l’actualisation du service Cortex Search Service. Le statut peut être sous la forme suivante :

  • EXECUTING : actualisation en cours.

  • SUCCEEDED : actualisation exécutée avec succès.

  • FAILED : échec de l’actualisation lors de l’exécution.

  • CANCELLED : l’actualisation a été annulée avant l’exécution.

DATA_TIMESTAMP

TIMESTAMP_LTZ

Horodatage transactionnel de l’évaluation de l’actualisation. (Il se peut que cette date soit légèrement antérieure à l’heure réelle de l’actualisation.) Toutes les données, dans les objets de base, qui sont arrivées avant cet horodatage sont actuellement incluses dans le service Cortex Search Service.

REFRESH_START_TIME

TIMESTAMP_LTZ

Heure à laquelle la tâche d’actualisation a commencé.

REFRESH_END_TIME

TIMESTAMP_LTZ

Heure à laquelle l’actualisation s’est achevée.

INDEX_PREPROCESSING_DURATION

NUMBER

Durée de la phase de prétraitement de l’index en millisecondes.

INDEX_PREPROCESSING_QUERY_ID

TEXT

ID de la requête qui a effectué le prétraitement de l’index.

INDEX_PREPROCESSING_STATISTICS

OBJECT

Contient les propriétés suivantes pour le prétraitement de l’index :

  • compilationTimeMs : Temps passé à compiler la requête en millisecondes.

  • executionTimeMs : Temps passé à exécuter la requête en millisecondes.

  • queuedTimeMs : Temps passé dans la file d’attente avant l’exécution en millisecondes.

  • numInsertedRows : le nombre de lignes insérées.

  • numDeletedRows : le nombre de lignes qui ont été supprimées.

  • numCopiedRows : le nombre de lignes qui ont été copiées sans modification.

  • numAddedPartitions : le nombre de partitions ajoutées.

  • numRemovedPartitions : Le nombre de partitions supprimées.

INDEXING_DURATION

NUMBER

Durée de la phase d’indexation en millisecondes.

INDEXING_QUERY_ID

TEXT

ID de la requête qui a effectué l’indexation.

REFRESH_ACTION

TEXT

Une des options :

  • NO_DATA - pas de nouvelles données dans les tables de base.

  • FULL - actualisation complète du Cortex Search Service.

  • INCREMENTAL - actualisation incrémentielle du Cortex Search Service.

REFRESH_TRIGGER

TEXT

Une des options :

  • SCHEDULED - actualisation normale en arrière-plan pour maintenir le service à jour.

  • MANUAL - actualisation déclenchée manuellement par l’utilisateur à l’aide de ALTER CORTEX SEARCH SERVICE.

  • CREATION - actualisation effectuée lors de la création de l’instruction DDL.

TARGET_LAG_SEC

NUMBER

Décrit la valeur de latence cible du service Cortex Search Service au moment de l’actualisation.

WAREHOUSE

TEXT

Nom de l’entrepôt utilisé pour l’opération d’actualisation.

ERROR

TEXT

Message d’erreur si l’actualisation a échoué, sinon NULL.

Notes sur l’utilisation

  • Lors de l’appel d’une fonction de la table de schémas d’informations, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou le nom de la fonction doit être complètement qualifié. Pour plus de détails, voir Schéma d’information de Snowflake.

Exemples

Rechercher les actualisations du service Cortex Search Service ayant échoué au cours de la semaine écoulée :

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

Rechercher les actualisations manuelles récentes d’un service Cortex Search Service spécifique :

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

Analyser les performances d’actualisation d’un service 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