Compartilhar via


Função com valor de tabela cloud_files_state

Aplica-se a:verificação marcada como sim SQL do Databricks marca de verificação sim Databricks Runtime 11.3 LTS e versões posteriores

Retorna o estado no nível do arquivo de um fluxo do Carregador Automático ou read_files.

Sintaxe

cloud_files_state( { TABLE ( table_name ) | checkpoint } )

Argumentos

  • table_name: o identificador da tabela de streaming que está sendo escrita por read_files. O nome não deve incluir uma especificação temporal. Disponível no Databricks Runtime 13.3 LTS e superior.
  • checkpoint: Um STRING literal. O diretório do ponto de verificação para um fluxo usando a origem do Carregador Automático. Confira O que é o Carregador Automático?.

Retornos

Retorna uma tabela com o seguinte esquema:

  • path STRING NOT NULL PRIMARY KEY

    O caminho de um arquivo.

  • size BIGINT NOT NULL

    O tamanho de um arquivo em bytes.

  • create_time TIMESTAMP NOT NULL

    A hora em que um arquivo foi criado.

  • discovery_time TIMESTAMP NOT NULL

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.4 e acima

    A hora em que um arquivo foi descoberto.

  • processed_time TIMESTAMP NOT NULL

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte as opções do Carregador Automático.

    A hora em que um arquivo foi processado. Se um lote encontrar uma falha e for repetido, um arquivo poderá ser processado várias vezes. Quando novas tentativas ocorrem, esse campo contém o tempo de processamento mais recente.

  • commit_time TIMESTAMP

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte as opções do Carregador Automático.

    A hora em que um arquivo foi confirmado no ponto de verificação após o processamento. NULL se o arquivo ainda não foi processado. Não há latência garantida para marcar um arquivo como confirmado; um arquivo pode ser processado, mas marcado como confirmado arbitrariamente mais tarde. Marcar o arquivo como confirmado significa que o Carregador Automático não exigirá que o arquivo seja processado novamente.

  • archive_time TIMESTAMP

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte as opções do Carregador Automático.

    A hora em que um arquivo foi arquivado. NULL se o arquivo não foi arquivado.

  • archive_mode STRING

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte as opções do Carregador Automático.

    MOVE se cloudFiles.cleanSource foi definido como MOVE quando o arquivo foi arquivado.

    DELETE se cloudFiles.cleanSource foi definido como DELETE quando o arquivo foi arquivado.

    NULL se cloudFiles.cleanSource foi definido como OFF (padrão).

  • move_location STRING

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte as opções do Carregador Automático.

    O caminho completo para o qual o arquivo foi movido durante a operação de arquivamento quando cloudFiles.cleanSource foi definido como MOVE.

    NULL se o arquivo não tiver sido arquivado ou cloudFiles.cleanSource for um de DELETE ou OFF.

  • source_id STRING

    A ID da origem do Carregador automático na consulta de streaming. Esse valor é '0' para fluxos que ingerem de um único local de armazenamento de objetos na nuvem.

  • flow_name STRING

    Aplica-se a:verificação marcada como sim Databricks SQL verificação marcada como sim Databricks Runtime 13.3 e superior

    Representa um fluxo de streaming específico no Lakeflow Spark Declarative Pipelines que contém uma ou mais fontes de arquivos de nuvem. NULL se nenhum nome_da_tabela tiver sido fornecido.

  • ingestion_state STRING

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte as opções do Carregador Automático.

    Se o arquivo foi ingerido, indicado por um dos seguintes estados:

    • NULL: o arquivo ainda não foi processado ou o estado do arquivo não pode ser determinado pelo Carregador Automático.
    • PROCESSING: o arquivo está sendo processado.
    • SKIPPED_CORRUPTED: o arquivo não foi ingerido porque estava corrompido.
    • SKIPPED_MISSING: o arquivo não foi ingerido porque não foi encontrado durante o processamento.
    • INGESTED: o arquivo foi processado pelo coletor, pelo menos, uma vez. Ele pode ser processado novamente por coletores não idempotentes, como foreachBatch em caso de falhas no fluxo. Somente os arquivos com um campo não nulo commit_time que estão no estado INGESTED concluíram o processamento.
    • NOT_RECOGNIZED_BY_DBR: reservado para compatibilidade com versões. Esse estado será exibido para estados introduzidos em versões posteriores do Databricks Runtime que não são reconhecidas por versões anteriores do Databricks Runtime.

Permissões

Você precisa ter:

  • Se estiver usando um identificador de tabela de streaming
    • Databricks Runtime 17.1 e abaixo: OWNER privilégios na tabela de streaming
    • Databricks SQL e Databricks Runtime 17.2 e versões posteriores: SELECT e MODIFY os privilégios na tabela de streaming
  • O READ FILES tem privilégios no local do ponto de verificação se fornecer um ponto de verificação em um local externo.

Exemplos

-- Simple example from checkpoint
> SELECT path FROM CLOUD_FILES_STATE('/some/checkpoint');
  /some/input/path
  /other/input/path

-- Simple example from source subdir
> SELECT path FROM CLOUD_FILES_STATE('/some/checkpoint/sources/0');
  /some/input/path
  /other/input/path

-- Simple example from streaming table
> SELECT path FROM CLOUD_FILES_STATE(TABLE(my_streaming_table));
  /some/input/path
  /other/input/path

Limitações

  • Os usuários cloud_files_state que leem uma exibição que faz referência a uma tabela de streaming devem ter SELECT privilégios na exibição e os privilégios necessários na tabela de streaming.