last_snapshot_version Función

Devuelve la versión de la instantánea más recientemente confirmada para el flujo adjunto AUTO CDC ... FROM SNAPSHOT . La instantánea comprometida puede provenir de una actualización previa del pipeline o de una iteración anterior de la actualización actual.

Esta función solo está disponible dentro de la WITH VERSION (...) cláusula de un AUTO CDC ... FROM SNAPSHOT flujo.

Syntax

last_snapshot_version()

Argumentos

Esta función no toma ningún argumento.

Devoluciones

Una relación de una sola columna con el mismo nombre de columna y tipo que la consulta de versión del flujo adjunto, que contiene 0 o 1 filas:

  • 1 fila que contiene la versión de instantánea más recientemente confirmada.
  • 0 filas si el flujo no ha confirmado una instantánea desde su creación inicial o su último refresco completo.

Después de que cada instantánea se confirme con éxito, last_snapshot_version() esa versión comprometida se expone a la siguiente evaluación de la consulta de versión, incluyendo evaluaciones dentro de la misma actualización de pipeline. Esto permite que una actualización seleccione y procese varias versiones en orden.

Examples

El siguiente flujo se usa last_snapshot_version() para encontrar el siguiente archivo a procesar después del último que se confirmó:

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 solo dentro de la WITH VERSION (...) cláusula de un AUTO CDC ... FROM SNAPSHOT flujo. En cualquier otro lugar, Spark resuelve el nombre como una función ordinaria de valor en tabla. Como no está definida tal función, eleva UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883).