funktion current_snapshot_version

Returnerar versionsraden som valts av den bifogande flödesklausulen WITH VERSION (...) för den snapshot som bearbetas.

Denna funktion är endast tillgänglig inuti FROM SNAPSHOT (...) satsen i ett AUTO CDC ... FROM SNAPSHOT flöde.

Syntax

current_snapshot_version()

Arguments

Den här funktionen tar inga argument.

Returns

En enkolumnsrelation med samma kolumnnamn och typ som den bifogande flödets versionsfråga, som innehåller exakt 1 rad. Raden innehåller versionen som valts för den aktuella snapshot-bearbetningsiterationen.

current_snapshot_version() utvärderas endast efter att versionsfrågan returnerar 1 rad. Om versionsfrågan returnerar 0 rader kör inte motorn snapshot-frågan, och den avslutar bearbetningen av flödet under pipelineuppdateringen.

Examples

Följande flöde används current_snapshot_version() för att läsa filen som valts av klausulen WITH VERSION (...) . Versionen är en enda STRUCT kolumn, så dess fält nås med punktnotation:

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() är endast tillgänglig inuti klausulen FROM SNAPSHOT (...) i ett AUTO CDC ... FROM SNAPSHOT flöde som deklarerar en WITH VERSION (...) klausul. Var som helst annars löser Spark namnet som en vanlig tabellvärd funktion. Eftersom ingen sådan funktion är definierad, höjer UNRESOLVABLE_TABLE_VALUED_FUNCTION den (SQLSTATE 42883).