Partilhar via


cloud_files_state função que retorna um valor de tabela

Aplica-se a:Sim marcado Databricks SQL Sim marcado Databricks Runtime 11.3 LTS e superior

Retorna o estado no nível de arquivo de um Auto Loader ou read_files fluxo de dados.

Sintaxe

cloud_files_state( { TABLE ( table_name ) | checkpoint } )

Argumentos

  • table_name: O identificador da tabela de streaming que está sendo gravada pelo read_files. O nome não deve incluir uma especificação temporal. Disponível em Databricks Runtime 13.3 LTS e superior.
  • checkpoint: Um STRING literal. O diretório de ponto de verificação para um fluxo usando a fonte Auto Loader. Consulte O que é Auto Loader?.

Devoluções

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 superior

    A hora em que um arquivo foi descoberto.

  • processed_time TIMESTAMP NOT NULL

    Aplica-se a:marque marcado sim Databricks SQL check marcado sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte Opções do carregador automático.

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

  • commit_time TIMESTAMP

    Aplica-se a:marque marcado sim Databricks SQL check marcado sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte Opções do carregador automático.

    O tempo que um arquivo foi confirmado no ponto de verificação após o processamento. NULL se o ficheiro ainda não estiver processado. Não há latência garantida para marcar um arquivo como confirmado; Um arquivo pode ser processado, mas marcado como comprometido arbitrariamente mais tarde. Marcar o arquivo como confirmado significa que o Auto Loader não requer o arquivo para processamento novamente.

  • archive_time TIMESTAMP

    Aplica-se a:marque marcado sim Databricks SQL check marcado sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte Opções do carregador automático.

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

  • archive_mode STRING

    Aplica-se a:marque marcado sim Databricks SQL check marcado sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte 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:marque marcado sim Databricks SQL check marcado sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte Opções do carregador automático.

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

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

  • source_id STRING

    O identificador da origem do Auto Loader 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:assinalado sim Databricks SQL assinalado 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 na nuvem. NULO se não tiver sido dada table_name.

  • ingestion_state STRING

    Aplica-se a:marque marcado sim Databricks SQL check marcado sim Databricks Runtime 16.4 e superior quando cloudFiles.cleanSource está habilitado. Consulte Opções do carregador automático.

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

    • NULL: O ficheiro ainda não foi processado ou o estado do ficheiro não pode ser determinado pelo Carregador Automático.
    • PROCESSING: O ficheiro está a ser processado.
    • SKIPPED_CORRUPTED: O arquivo não foi ingerido porque estava corrompido.
    • SKIPPED_MISSING: O ficheiro não foi ingerido porque não foi encontrado durante o processamento.
    • INGESTED: O arquivo foi processado pelo coletor pelo menos uma vez. Pode ser processado novamente por sumidouros 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 concluíram o INGESTED processamento.
    • NOT_RECOGNIZED_BY_DBR: Reservado para compatibilidade de versão. 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 inferior: OWNER privilégios na tabela de streaming
    • Databricks SQL e Databricks Runtime 17.2 ou superior: privilégios SELECT e MODIFY na tabela de streaming.
  • READ FILES privilégios de acesso no local do ponto de verificação ao fornecer um ponto de verificação num 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 que leem um modo de exibição que faz referência cloud_files_state em uma tabela de streaming devem ter SELECT privilégios na exibição e os privilégios necessários na tabela de streaming.