Auto Loader com visão geral de eventos de arquivo
A opção cloudFiles.useManagedFileEvents com o Auto Loader permite a descoberta eficiente de arquivos.
Como funciona o Auto Loader com eventos de arquivo?
Auto Loader com eventos de arquivo utiliza a funcionalidade de notificações de eventos de arquivo fornecida por fornecedores cloud . Você pode configurar contêineres de armazenamento cloud para publicar notificações sobre eventos de arquivos, como a criação e a modificação de novos arquivos. Por exemplo, com as notificações de eventos do Amazon S3, a chegada de um novo arquivo pode acionar uma notificação em um tópico do Amazon SNS. Em seguida, você pode inscrever uma fila do Amazon SQS no tópico do SNS para processamento assíncrono do evento.

Eventos de arquivo Databricks é um serviço que configura o recurso cloud para escutar eventos de arquivo. Como alternativa, você pode configurar o recurso cloud e fornecer sua própria fila de armazenamento.
Depois de configurar o recurso cloud , o serviço escuta os eventos do arquivo e armazena em cache as informações de metadados do arquivo. Auto Loader usa este cache para descobrir arquivos quando é executado com cloudFiles.useManagedFileEvents definido como true.

Quando uma transmissão é executada pela primeira vez com cloudFiles.useManagedFileEvents definido como true, Auto Loader realiza uma listagem completa do diretório do caminho de carregamento para descobrir todos os arquivos e se atualizar com o cache de eventos de arquivo (garantir uma posição de leitura válida no cache e armazená-la no ponto de verificação da transmissão). A execução subsequente do Auto Loader descobre novos arquivos lendo diretamente do cache de eventos de arquivo, usando a posição de leitura armazenada, e não requer a listagem do diretório.
Databricks recomenda executar o Auto Loader pelo menos uma vez a cada sete dias para aproveitar a descoberta incremental de arquivos a partir do cache. Se você não executar Auto Loader pelo menos com essa frequência, a posição de leitura armazenada se tornará inválida e Auto Loader deverá realizar uma listagem completa do diretório para sincronizar com o cache de eventos de arquivo.
Quando o Auto Loader com eventos de arquivo usa a listagem de diretórios?
O Auto Loader executa uma listagem completa de diretórios quando:
- Iniciando uma nova transmissão.
- Migrar uma transmissão da listagem de diretórios ou das notificações de arquivos clássicas.
- Auto Loader com eventos de arquivo não é executado por mais de sete dias.
- Você faz atualizações no local externo que invalidam a posição de leitura do Auto Loader. Exemplos incluem quando você desativa e reativa os eventos de arquivo, quando altera o caminho do local externo ou quando fornece uma fila diferente para o local externo.
O Auto Loader sempre realiza uma listagem completa na primeira execução, mesmo quando includeExistingFiles está definido como false. Essa opção permite que você inclua todos os arquivos que foram criados após o horário de início da transmissão. Auto Loader lista todo o diretório para descobrir todos os arquivos criados após o horário de início da transmissão, estabelece uma posição de leitura no cache de eventos de arquivo e a armazena no ponto de verificação. As execuções subsequentes leem diretamente do cache de eventos do arquivo e não exigem uma listagem de diretório.
O serviço de eventos de arquivos do Databricks também realiza listagens completas de diretórios no local externo para verificar se não perdeu nenhum arquivo (por exemplo, se a fila fornecida estiver mal configurada). A primeira listagem completa do diretório começa assim que os eventos de arquivo são ativados no local externo. Cada listagem subsequente ocorre 24 horas após a última verificação completa, desde que haja pelo menos uma transmissão Auto Loader usando eventos de arquivo para ingerir dados.
Melhores práticas para o Auto Loader com eventos de arquivo
Siga estas boas práticas para otimizar o desempenho e a confiabilidade ao usar o Auto Loader com eventos de arquivo.
Use volumes para uma descoberta de arquivos otimizada.
Para um desempenho aprimorado, Databricks recomenda a criação de um volume externo para cada caminho ou subdiretório do qual Auto Loader carrega dados e o fornecimento de caminhos de volume (por exemplo, /Volumes/someCatalog/someSchema/someVolume) para Auto Loader em vez de caminhos cloud (por exemplo, s3://bucket/path/to/volume). Isso otimiza a descoberta de arquivos porque o Auto Loader pode listar o volume usando um padrão de acesso a dados otimizado.
Considere gatilhos de chegada de arquivos para pipelines orientados a eventos.
Para processamento de dados orientado a eventos, considere usar um gatilho de chegada de arquivo em vez de um pipeline contínuo. Os gatilhos de chegada de arquivos iniciam automaticamente seu pipeline quando novos arquivos chegam, proporcionando melhor utilização de recursos e eficiência de custos, pois seu cluster só é executado quando há novos arquivos para processar.
Configure intervalos apropriados com gatilhos contínuos.
A Databricks recomenda o uso de gatilhos de chegada de arquivos para processar os arquivos assim que eles chegarem. No entanto, se o seu caso de uso exigir o uso de gatilhos contínuos como Trigger.ProcessingTime, Databricks recomenda configurar os intervalos de gatilho para 1 minute ou superior (definido usando pipelines.trigger.interval ao usar o pipeline declarativo LakeFlow Spark ). Isso reduz a frequência de verificação para detectar a chegada de novos arquivos e permite a execução simultânea de um número maior de transmissões a partir do seu workspace.
Limitações do Auto Loader com eventos de arquivo
- O Auto Loader não suporta reescrita de caminhos. A reescrita de caminhos se aplica quando vários buckets ou contêineres são montados no DBFS, o que é um padrão de uso obsoleto.
Para obter uma lista geral de limitações de eventos de arquivo, consulte Limitações de eventos de arquivo.
Perguntas frequentes
Encontre respostas para perguntas frequentes sobre o Auto Loader com eventos de arquivo.
Por que o modo de eventos de arquivos é melhor do que o modo clássico de notificações de arquivos?
Este diagrama compara o modo de eventos de arquivo com o modo clássico de notificação de arquivos.

O modo de eventos de arquivo possui diversas vantagens em comparação com o modo clássico de notificação de arquivos. Basicamente, requer apenas uma fila para todas as transmissões Auto Loader em um bucket, ajudando você a evitar o limite de notificações por bucket. Para obter mais informações, consulte Modo de notificação de arquivos com e sem eventos de arquivo ativados em locais externos.
Como posso confirmar se os eventos de arquivo estão configurados corretamente?
Clique no botão Testar Conexão na página de localização externa. Se você configurar os eventos de arquivo corretamente, verá uma marca de seleção verde no item "Leitura de eventos de arquivo" . Se você acabou de criar o local externo e habilitou os eventos de arquivo no modo Automatic , o teste mostra Skipped enquanto o Databricks configura as notificações para o local externo. Aguarde alguns minutos e clique em Testar Conexão novamente. Se o Databricks não tiver as permissões necessárias para configurar ou ler eventos de arquivo, você verá um erro no item "Leitura de eventos de arquivo" .
Posso evitar a listagem completa do diretório na execução inicial?
Não. Mesmo que includeExistingFiles esteja definido como false, Auto Loader executa uma listagem de diretórios para descobrir arquivos criados após o início da transmissão e se atualizar com o cache de eventos de arquivo (protege uma posição de leitura válida no cache e a armazena no ponto de verificação da transmissão).
Preciso definir cloudFiles.backfillInterval para evitar arquivos ausentes?
Não. Anteriormente, Databricks recomendava essa configuração para o modo clássico de notificação de arquivos, pois os sistemas de notificação de armazenamento cloud podiam resultar em arquivos perdidos ou recebidos com atraso. Agora, o Databricks realiza listagens completas de diretórios no local externo. A primeira listagem completa do diretório começa assim que os eventos de arquivo são ativados no local externo. Cada listagem subsequente ocorre 24 horas após a última verificação completa, desde que haja pelo menos uma transmissão Auto Loader usando eventos de arquivo para ingerir dados.
Configurei eventos de arquivo com uma fila de armazenamento fornecida, mas a fila estava mal configurada e perdi arquivos. Como posso garantir que o Auto Loader processe os arquivos que foram perdidos devido a uma configuração incorreta da minha fila?
Primeiro, verifique se a configuração incorreta da fila fornecida foi corrigida. Para verificar, clique no botão Testar Conexão na página de localização externa. Se você configurar os eventos de arquivo corretamente, uma marca de seleção verde aparecerá no item "Leitura de eventos de arquivo" .
O Databricks realiza uma listagem completa de diretórios para locais externos com eventos de arquivo ativados. Esta listagem de diretórios descobre quaisquer arquivos que tenham sido perdidos durante o período de configuração incorreta e os armazena no cache de eventos de arquivos.
Após a correção da configuração incorreta e a conclusão da listagem de diretórios pelo Databricks, o Auto Loader continua a ler o cache de eventos de arquivos e ingere automaticamente quaisquer arquivos perdidos durante o período de configuração incorreta.
Como Databricks obtém as permissões para criar recursos cloud e ler e excluir mensagens da fila?
O Databricks usa as permissões concedidas na credencial de armazenamento associada ao local externo no qual os eventos de arquivo estão habilitados.