Funzione last_snapshot_version

Restituisce la versione dello snapshot più recentemente confermato per il flusso che contene AUTO CDC ... FROM SNAPSHOT . L'istantaneo commesso può provenire da un aggiornamento precedente della pipeline o da un'iterazione precedente dell'aggiornamento corrente.

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

Syntax

last_snapshot_version()

Argomenti

Questa funzione non accetta argomenti.

Returns

Una relazione a colonna singola con lo stesso nome e tipo di colonna della query di versione del flusso che lo allega, contenente 0 o 1 righe:

  • 1 riga contenente la versione snapshot più recentemente confermata.
  • 0 righe se il flusso non ha effettuato un acquisto di snapshot dalla sua creazione iniziale o dall'ultimo aggiornamento completo.

Dopo che ogni snapshot effettua un commit con successo, last_snapshot_version() quella versione di commit viene esposta alla valutazione successiva della query di versione, incluse le valutazioni all'interno della stessa pipeline update. Questo permette a un aggiornamento di selezionare ed elaborare più versioni in ordine.

Esempi

Il seguente flusso viene utilizzato last_snapshot_version() per trovare il file successivo da elaborare dopo l'ultimo che ha effettuato il commit:

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() è disponibile solo all'interno della WITH VERSION (...) clausola di un AUTO CDC ... FROM SNAPSHOT flusso. 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).