current_snapshot_version Fonction

Retourne la ligne de version sélectionnée par la clause du WITH VERSION (...) flux d’enceinte pour l’instantané en cours de traitement.

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

Syntax

current_snapshot_version()

Arguments

Cette fonction ne prend pas d'arguments.

Returns

Une relation à colonne unique portant le même nom et type de colonne que la requête de version du flux d’enclos, contenant exactement 1 ligne. La ligne contient la version sélectionnée pour l’itération actuelle du traitement des instantanés.

current_snapshot_version() n’est évaluée qu’après que la requête de version a rendu 1 ligne. Si la requête de version ne retourne pas de lignes, le moteur n’exécute pas la requête instantanée et termine le traitement du flux lors de cette mise à jour du pipeline.

Examples

Le flux suivant sert current_snapshot_version() à lire le fichier sélectionné par la WITH VERSION (...) clause. La version est une colonne unique STRUCT , donc ses champs sont consultés avec la notation en points :

CREATE FLOW orders_cdc
  AS AUTO CDC INTO orders
  FROM SNAPSHOT (
    SELECT *
    FROM read_files('/Volumes/catalog/schema/landing/orders/', format => 'json')
    WHERE _metadata.file_path = (SELECT version.path FROM current_snapshot_version())
  )
  WITH VERSION (...)
  KEYS (order_id);

Errors

current_snapshot_version() est disponible uniquement à l’intérieur de la FROM SNAPSHOT (...) clause d’un AUTO CDC ... FROM SNAPSHOT flux qui déclare une WITH VERSION (...) clause. 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).