Funzione current_snapshot_version

Restituisce la riga di versione selezionata dalla clausola del WITH VERSION (...) flusso di contenimento per lo snapshot in processione.

Questa funzione è disponibile solo all'interno della FROM SNAPSHOT (...) clausola di un AUTO CDC ... FROM SNAPSHOT flow.

Syntax

current_snapshot_version()

Argomenti

Questa funzione non accetta argomenti.

Returns

Una relazione a colonna singola con lo stesso nome e tipo della query di versione del flusso che lo allega, contenente esattamente 1 riga. La riga contiene la versione selezionata per l'iterazione attuale di elaborazione degli snapshot.

current_snapshot_version() viene valutata solo dopo che la query versione restituisce 1 riga. Se la query versione restituisce 0 righe, il motore non esegue la query snapshot e termina l'elaborazione del flusso durante quell'aggiornamento della pipeline.

Esempi

Il flusso successivo viene utilizzato current_snapshot_version() per leggere il file selezionato dalla WITH VERSION (...) clausola. La versione è una singola STRUCT colonna, quindi i suoi campi sono accessibili con la notazione a punti:

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() è disponibile solo all'interno della FROM SNAPSHOT (...) clausola di un AUTO CDC ... FROM SNAPSHOT flusso che dichiara una WITH VERSION (...) clausola. Ovunque altrove, Spark risolve il nome come una funzione ordinaria a valori di tabella. Poiché nessuna funzione del genere è definita, essa aumenta UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883).