Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Saiba mais sobre a opção cloudFiles.useManagedFileEvents com o Auto Loader, que fornece descoberta eficiente de ficheiros.
Como funciona o Auto Loader com eventos de ficheiros?
O Auto Loader com eventos de arquivo usa a funcionalidade de notificações de eventos de arquivo fornecida por fornecedores de nuvem. Você pode configurar contêineres de armazenamento em nuvem para publicar notificações sobre eventos de arquivo, como criação e modificação de novos arquivos. Por exemplo, com notificações de eventos do Amazon S3, uma nova chegada de arquivo pode disparar uma notificação para um tópico do Amazon SNS. Uma fila do Amazon SQS pode ser inscrita no tópico SNS para processamento assíncrono do evento.
O diagrama a seguir mostra esse padrão:
Databricks File Events é um serviço que configura recursos de nuvem para monitorizar eventos de ficheiro. Como alternativa, você mesmo pode configurar os recursos da nuvem e fornecer sua própria fila de armazenamento.
Depois que os recursos de nuvem são configurados, o serviço escuta eventos de arquivo e armazena em cache informações de metadados de arquivo. O Auto Loader usa esse cache para descobrir arquivos quando ele é executado com cloudFiles.useManagedFileEvents definido como true.
O diagrama a seguir mostra essas interações:
Quando um fluxo é executado pela primeira vez com cloudFiles.useManagedFileEvents definido como true, o Auto Loader faz 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 (garanta uma posição de leitura válida no cache e armazene-o no ponto de verificação do fluxo). As execuções subsequentes do Auto Loader descobrem novos arquivos lendo diretamente do cache de eventos de arquivo usando a posição de leitura armazenada e não exigem listagem de diretórios.
Recomendamos executar seus fluxos do Auto Loader pelo menos uma vez a cada 7 dias para aproveitar a descoberta incremental de arquivos do cache. Se você não executar o Auto Loader pelo menos com frequência, a posição de leitura armazenada se tornará inválida e o Auto Loader deverá executar uma listagem completa de diretórios para se atualizar com o cache de eventos de arquivo.
Quando o Auto Loader com eventos de arquivo usa a listagem de diretórios?
Auto Loader executa uma listagem de diretório completo quando:
- Iniciando um novo fluxo
- Migrando um fluxo da listagem de diretórios ou notificações de arquivos herdados
- O caminho de carga de um fluxo é alterado
- Auto Loader com eventos de arquivo não é executado por uma duração superior a 7 dias
- São feitas atualizações no local externo que invalidam a posição de leitura do Auto Loader. Os exemplos incluem quando os eventos de arquivo são desativados e ativados novamente, quando o caminho do local externo é alterado ou quando uma fila diferente é fornecida para o local externo.
O Auto Loader sempre executa uma listagem completa na primeira execução, mesmo quando includeExistingFiles está definido como false. Esse sinalizador permite que você ingira todos os arquivos que foram criados após a hora de início do fluxo. O Auto Loader lista todo o diretório para descobrir todos os arquivos criados após a hora de início do fluxo, garantir uma posição de leitura no cache de eventos de arquivo e armazená-lo no ponto de verificação. As execuções subsequentes são lidas diretamente do cache de eventos de arquivo e não exigem uma listagem de diretório.
O serviço de eventos de arquivo Databricks também executa listagens de diretório completas periodicamente no local externo para confirmar que não perdeu nenhum arquivo (por exemplo, se a fila fornecida estiver configurada incorretamente). As primeiras listagens completas de diretórios começam assim que os eventos de arquivo são habilitados no local externo. As listagens subsequentes ocorrem periodicamente, desde que haja pelo menos um fluxo do Auto Loader usando eventos de arquivo para ingerir dados.
Boas práticas para Auto Loader com eventos de ficheiro
Siga estas melhores práticas para otimizar o desempenho e a fiabilidade ao utilizar o Auto Loader com eventos de ficheiros.
Use volumes para uma descoberta ótima de ficheiros
Para melhorar o desempenho, o Databricks recomenda criar um volume externo para cada caminho ou subdiretório de onde o Auto Loader carrega dados e fornecer caminhos de volume (por exemplo, /Volumes/someCatalog/someSchema/someVolume) ao Auto Loader em vez de caminhos na cloud (por exemplo, s3://bucket/path/to/volume). Isto otimiza a descoberta de ficheiros porque o Auto Loader consegue listar o volume usando um padrão otimizado de acesso aos dados.
Considere os triggers de chegada de ficheiros para pipelines baseados em eventos
Para processamento de dados orientado por eventos, considere usar um gatilho de chegada de ficheiros em vez de um pipeline contínuo. Os gatilhos de chegada de ficheiros iniciam automaticamente o pipeline quando chegam novos ficheiros, proporcionando melhor utilização de recursos e eficiência de custos, porque o cluster só funciona quando há novos ficheiros para processar.
Configure intervalos apropriados com gatilhos contínuos
Recomendamos o uso de gatilhos de chegada de ficheiros para processar ficheiros assim que chegam. No entanto, se o seu caso de uso exigir o uso de gatilhos contínuos como Trigger.ProcessingTime, recomendamos configurar os intervalos de disparo para 1 minute ou mais (definir usando pipelines.trigger.interval ao usar Lakeflow Spark Declarative Pipelines). Isto reduz a frequência de sondagem para verificar se chegaram novos ficheiros e permite que um maior número de fluxos corram em simultâneo a partir do seu espaço de trabalho.
Limitações do Auto Loader com eventos de arquivo
- Não há suporte para regravações de caminho. As regravações de caminho são usadas quando vários buckets ou contêineres são montados em DBFS, que é um padrão de uso preterido.
Para obter uma lista geral das limitações de eventos de arquivo, consulte Limitações de eventos de arquivo.
Perguntas frequentes
Encontre respostas para perguntas frequentes sobre Auto Loader com eventos de arquivo.
Como posso confirmar que os eventos de ficheiro estão configurados corretamente?
Clique no botão Testar conexão na página de local externo. Se os eventos de arquivo estiverem configurados corretamente, você verá uma marca de seleção verde para o item de leitura de eventos de arquivo . Se você acabou de criar o local externo e ativou eventos de arquivo no Automatic modo, o teste mostra Skipped enquanto o Databricks configura 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 para o item de leitura de eventos de arquivo .
Posso evitar uma listagem completa de diretórios durante a execução inicial?
Não. Mesmo que includeExistingFiles esteja definido como false, o Auto Loader executa uma listagem de diretórios para descobrir arquivos criados após o início do fluxo e se atualizar com o cache de eventos de arquivo (garanta uma posição de leitura válida no cache e armazene-o no ponto de verificação do fluxo).
Devo configurar cloudFiles.backfillInterval para evitar ficheiros em falta?
Não. Essa configuração foi recomendada para o modo de notificação de arquivo herdado porque os sistemas de notificação de armazenamento em nuvem podem resultar em arquivos perdidos ou atrasados. Agora, o Databricks realiza listagens completas de diretórios periodicamente no local externo. As primeiras listagens completas de diretórios começam assim que os eventos de arquivo são habilitados no local externo. A listagens subsequentes ocorrerão periodicamente, desde que haja pelo menos um fluxo do Auto Loader, usando eventos de arquivo para ingerir dados.
Eu configurei eventos de arquivo com uma fila de armazenamento fornecida, mas a fila foi configurada incorretamente e eu perdi arquivos. Como posso garantir que o Auto Loader ingere os ficheiros perdidos quando a minha fila foi mal configurada?
Primeiro, confirme se a configuração incorreta da fila fornecida foi corrigida. Para verificar, clique no botão Testar Conexão na página de local externo. Se os eventos de arquivo estiverem configurados corretamente, você verá uma marca de seleção verde para o item de leitura de eventos de arquivo .
O Databricks executa uma listagem completa de diretórios para locais externos com eventos de arquivo habilitados. Esta listagem de diretório descobre todos os arquivos que foram perdidos durante o período de configuração incorreta e os armazena no cache de eventos de arquivo.
Depois que a configuração incorreta for corrigida e o Databricks concluir a listagem de diretórios, o Auto Loader continuará a ler o cache de eventos de arquivo e ingerir automaticamente todos os arquivos perdidos durante o período de configuração incorreta.
Como o Databricks obtém as permissões para criar recursos de nuvem 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.