Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktion
Returnerar versionen av den senast committerade snapshoten för det omslutande AUTO CDC ... FROM SNAPSHOT flödet. Den committed snapshot kan komma från en tidigare pipelineuppdatering eller från en tidigare iteration av den aktuella uppdateringen.
Denna funktion är endast tillgänglig inuti WITH VERSION (...) satsen i ett AUTO CDC ... FROM SNAPSHOT flöde.
Syntax
last_snapshot_version()
Arguments
Den här funktionen tar inga argument.
Returns
En enkolumnsrelation med samma kolumnnamn och typ som den bifogade flödets versionsfråga, innehållande 0 eller 1 rader:
- 1 rad som innehåller den senast committerade snapshot-versionen.
- 0 rader om flödet inte har gjort en snapshot sedan dess ursprungliga skapande eller senaste fullständiga uppdatering.
Efter att varje snapshot har kommitterats framgångsrikt, last_snapshot_version() exponerar den committerade versionen för nästa utvärdering av versionsfrågan, inklusive utvärderingar inom samma pipelineuppdatering. Detta gör att en uppdatering kan välja och bearbeta flera versioner i ordning.
Examples
Följande flöde används last_snapshot_version() för att hitta nästa fil att bearbeta efter den senaste som committade:
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() är endast tillgänglig inom WITH VERSION (...) satsen i ett AUTO CDC ... FROM SNAPSHOT flöde. 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).