current_snapshot_version Função

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

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

Sintaxe

current_snapshot_version()

Argumentos

Essa função não utiliza argumentos.

Returns

Uma relação de coluna única com o mesmo nome e tipo de coluna da 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 somente após a consulta de versão retornar 1 linha. Se a consulta de versão devolver 0 linhas, o motor não executa a consulta snapshot e encerra o processamento do fluxo durante essa atualização do pipeline.

Examples

O fluxo seguinte é usado current_snapshot_version() para ler o arquivo selecionado pela WITH VERSION (...) cláusula. A versão é uma única STRUCT coluna, então seus campos são acessados 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);

Erros

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 comum de valor de tabela. Como tal função não está definida, ela aumenta UNRESOLVABLE_TABLE_VALUED_FUNCTION (SQLSTATE 42883).