last_snapshot_version Fonction

Retourne la version de l’instantané le plus récemment confirmé pour le flux d’enceinte AUTO CDC ... FROM SNAPSHOT . L’instantané engagé peut provenir d’une mise à jour précédente du pipeline ou d’une itération antérieure de la mise à jour en cours.

Cette fonction n’est disponible qu’à l’intérieur de la WITH VERSION (...) clause d’un AUTO CDC ... FROM SNAPSHOT flux.

Syntax

last_snapshot_version()

Arguments

Cette fonction ne prend pas d'arguments.

Returns

Une relation à colonne unique avec le même nom et type de colonne que la requête de version du flux d’enclos, contenant 0 ou 1 ligne :

  • 1 ligne contenant la version d’instantané la plus récente confirmée.
  • 0 ligne si le flux n’a pas validé d’instantané depuis sa création initiale ou son dernier rafraîchissement complet.

Après chaque validation réussie de chaque snapshot, last_snapshot_version() cette version engagée est exposée à la prochaine évaluation de la requête de version, incluant les évaluations au sein de la même mise à jour du pipeline. Cela permet à une seule mise à jour de sélectionner et traiter plusieurs versions dans l’ordre.

Examples

Le flux suivant sert last_snapshot_version() à trouver le fichier suivant à traiter après le dernier qui a été validé :

CREATE FLOW orders_cdc
  AS AUTO CDC INTO orders
  FROM SNAPSHOT (...)
  WITH VERSION (
    SELECT struct(modification_time, path) AS version
    FROM list_files('/Volumes/catalog/schema/landing/orders/')
    WHERE (
      NOT EXISTS (SELECT 1 FROM last_snapshot_version())
      OR struct(modification_time, path) > (SELECT version FROM last_snapshot_version())
    )
    ORDER BY modification_time, path
    LIMIT 1
  )
  KEYS (order_id);

Errors

last_snapshot_version() est disponible uniquement à l’intérieur de la WITH VERSION (...) clause d’un AUTO CDC ... FROM SNAPSHOT flux. Partout ailleurs, Spark résout le nom comme une fonction ordinaire à valeurs de table. Comme aucune fonction de ce type n’est définie, elle augmente UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883).