current_snapshot_version Função

Devolve a linha de versão selecionada pela cláusula do WITH VERSION (...) fluxo anexo para o snapshot que está a ser processado.

Esta função está disponível apenas dentro da FROM SNAPSHOT (...) cláusula de um AUTO CDC ... FROM SNAPSHOT fluxo.

Sintaxe

current_snapshot_version()

Arguments

Esta função não aceita argumentos.

Returns

Uma relação de coluna única com o mesmo nome e tipo de coluna que a consulta de versão do fluxo anexo, contendo exatamente 1 linha. A linha contém a versão selecionada para a iteração atual de processamento de snapshots.

current_snapshot_version() é avaliada apenas depois de a consulta de versão devolver 1 linha. Se a consulta de versão devolver 0 linhas, o motor não executa a consulta snapshot e termina o processamento do fluxo durante essa atualização do pipeline.

Examples

O fluxo seguinte é usado current_snapshot_version() para ler o ficheiro selecionado pela WITH VERSION (...) cláusula. A versão é uma única STRUCT coluna, pelo que os seus campos são acedidos com notação pontual:

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() está disponível apenas dentro da FROM SNAPSHOT (...) cláusula de um AUTO CDC ... FROM SNAPSHOT fluxo que declara uma WITH VERSION (...) cláusula. Em qualquer outro lugar, o Spark resolve o nome como uma função ordinária de valores de tabela. Como tal função não está definida, ela aumenta UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883).