Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
cloudFiles.cleanSource está disponível no Databricks Runtime 16.4 e superiores.
cloudFiles.cleanSource Use para mover ou excluir arquivos do diretório de origem após o processamento. Remover arquivos processados reduz os custos de armazenamento e reduz a duração das futuras operações de listagem.
| Modo | Description |
|---|---|
OFF (predefinição) |
Os arquivos no diretório de origem não são movidos nem deletados. |
MOVE |
Os arquivos no diretório de origem são movidos para o caminho especificado por cloudFiles.cleanSource.moveDestination após a duração de retenção (padrão de 30 dias) definida pelos cloudFiles.cleanSource.retentionDuration decorridos. |
DELETE |
Os arquivos no diretório de origem são excluídos após o período de retenção (padrão de 30 dias) definido pelos cloudFiles.cleanSource.retentionDuration períodos decorridos. |
| Opção adicional | Default | Valores válidos | Description |
|---|---|---|---|
cloudFiles.cleanSource.retentionDuration |
30 days |
Uma cadeia de caracteres CalendarInterval , como 14 days, 2 weeksou 1 month |
Tempo de espera antes que arquivos processados se tornem candidatos à limpeza com Clean Source. Deve ser superior a 7 dias para DELETE. Nenhuma restrição mínima para MOVE. |
cloudFiles.cleanSource.waitForCompletion |
false |
true, false |
Essa opção está disponível no Databricks Runtime 19 e superiores. O código limpo é, por padrão, uma operação de melhor esforço. Se o fluxo concluir o processamento dos arquivos antes que a fonte limpa termine de mover ou excluir arquivos, a operação da fonte limpa é encerrada. Configurar cloudFiles.cleanSource.waitForCompletion força a transmissão a permanecer ativa até que a fonte limpa termine de mover ou deletar arquivos. Isso pode aumentar o tempo de execução do stream se houver muitos arquivos para deletar.Isso só se aplica quando o fluxo se completa sozinho (por exemplo, um availableNow gatilho drenando todos os arquivos). Parar ou cancelar manualmente o fluxo encerra imediatamente a operação de fonte limpa, mesmo quando essa opção está definida. |
cloudFiles.cleanSource.moveDestination |
Nenhum | Um caminho de volume de armazenamento em nuvem ou catálogo do Unity | Caminho para arquivar arquivos processados quando cloudFiles.cleanSource estiver definido como MOVE. Pode ser um caminho de armazenamento em nuvem ou um caminho de volume do Catálogo do Unity (por exemplo, /Volumes/my_catalog/my_schema/my_volume/archive/).O local de movimentação deve:
O Carregador Automático deve ter permissões de gravação nesse diretório. |
Considerações antes de habilitar cloudFiles.cleanSource
- O Azure Databricks não recomenda usar essa opção quando múltiplos fluxos consomem dados do mesmo diretório de origem. O stream mais rápido limpa os arquivos, então os streams mais lentos nunca os ingerem.
- Habilitar esse recurso requer que o Carregador Automático mantenha o estado adicional em seu ponto de verificação, o que incorre na sobrecarga de desempenho, mas permite uma melhor observabilidade por meio da
cloud_files_statefunção com valor de tabela. Consulte TVFcloud_files_state. - O código limpo usa a configuração atual para decidir se é ou
MOVEDELETEum determinado arquivo. Por exemplo, suponha que a configuração foiMOVEquando o arquivo foi originalmente processado, mas foi alterado paraDELETEquando o arquivo se tornou um candidato para limpeza 30 dias depois. Nesse caso, o código fonte limpo exclui o arquivo. - Não há garantia de que os arquivos sejam limpos assim que a
cloudFiles.cleanSource.retentionDurationexpiração. Para manter os custos baixos, o Auto Loader limpa arquivos simultaneamente ao processamento do fluxo e termina assim que o processamento do fluxo é concluído ou é encerrado. Arquivos que eram candidatos à limpeza, mas não puderam ser limpos durante o processamento do fluxo, são retirados na próxima vez que o Auto Loader rodar.
Notas sobre fonte limpa
O código fonte limpo só roda se houver um lote de arquivos para processar. Não é um processo em segundo plano que roda independentemente da ingestão. Se não houver novos arquivos para ingerir no diretório de origem, o código limpo não inicia para a execução atual do fluxo. Como resultado, se um fluxo para de receber novos arquivos, arquivos que já passaram pelo tempo de retenção não são limpos até que uma execução posterior processe um novo lote.
Esse requisito de lote se aplica independentemente de
cloudFiles.cleanSource.waitForCompletion. Essa opção só mantém a transmissão viva tempo suficiente para terminar uma limpeza em andamento dentro de uma run. Ele não inicia fonte limpa quando não há lote para processar.Se um arquivo for ingerido na enésima execução de fluxo, o
commit_timepara o arquivo é definido na execução de fluxo N+1.commit_timedeve ser definido antes que a fonte limpa possa determinar se um arquivo é elegível para mover ou excluir, de modo que o mais cedo que um arquivo pode se tornar candidato à limpeza é a execução do fluxo N+2.O cenário
commit_timeé necessário, mas não suficiente. Um arquivo só é limpo quando sua duração de retenção terminar, medida a partir de seucommit_timearquivo . Por exemplo, com o padrãocloudFiles.cleanSource.retentionDurationde 30 dias, um arquivo processado hoje não é elegível para limpeza até 30 dias após suacommit_timedefinição. Isso vale independentemente de quantos cursos de riachos ocorram entre eles. Ambas as condições devem ser atendidas antes que o arquivo seja movido ou excluído.