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.
Saiba mais sobre a opção cloudFiles.useManagedFileEvents com o Carregador Automático, que oferece uma descoberta eficiente de arquivos.
Como funciona o Carregador Automático com eventos de arquivo?
O Carregador Automático com eventos de arquivo usa a funcionalidade de notificações de evento de arquivo fornecida pelos fornecedores de nuvem. Você pode configurar contêineres de armazenamento em nuvem para publicar notificações em eventos de arquivo, como criação e modificação de novos arquivos. Por exemplo, com as notificações de evento do Amazon S3, uma nova chegada de arquivo pode disparar uma notificação para um tópico do SNS da Amazon. Uma fila do Amazon SQS pode ser inscrita no tópico SNS para processamento assíncrono do evento.
O diagrama a seguir ilustra esse padrão:
Eventos de arquivos do Databricks são um serviço que configura recursos de nuvem para monitorar eventos de arquivos. Como alternativa, você pode configurar os recursos de nuvem por conta própria 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 Carregador Automático usa esse cache para descobrir arquivos quando ele é executado com cloudFiles.useManagedFileEvents definido como true.
O diagrama a seguir ilustra estas interações:
Quando um fluxo é executado pela primeira vez com cloudFiles.useManagedFileEvents definido para true, o Carregador Automático faz uma listagem completa do diretório do caminho de carregamento para descobrir todos os arquivos e atualizar o cache de eventos de arquivos (protegendo uma posição de leitura válida no cache e armazenando-a no checkpoint do fluxo). As execuções subsequentes do Carregador Automático 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ório.
É recomendável executar seus fluxos do Carregador Automático pelo menos uma vez a cada 7 dias para aproveitar a descoberta incremental de arquivos do cache. Se você não executar o Carregador Automático com pelo menos essa frequência, a posição de leitura armazenada se tornará inválida e o Carregador Automático deverá executar uma listagem de diretório completa para se atualizar com o cache de eventos de arquivo.
Quando o Carregador Automático com eventos de arquivo usa a listagem de diretório?
O Carregador Automático executa uma listagem de diretório completa quando:
- Iniciando um novo fluxo
- Migrando um fluxo de dados de listagem de diretórios ou notificações de arquivo legados
- O caminho de carga de um fluxo é alterado
- O Carregador Automático com eventos de arquivo não é executado por mais de 7 dias
- As atualizações são feitas no local externo que invalida a posição de leitura do Carregador Automático. 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 Carregador Automático sempre executa uma listagem completa na primeira execução, mesmo quando includeExistingFiles é definido como false. Esse sinalizador permite que você ingera todos os arquivos que foram criados após a hora de início do fluxo. O Carregador Automático lista todo o diretório para identificar todos os arquivos criados após o momento de início do fluxo, protege uma posição de leitura no cache de eventos de arquivo e armazena 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 do Databricks também executa listagens completas de diretório periodicamente no local externo para confirmar se ele não perdeu nenhum arquivo (por exemplo, se a fila fornecida estiver configurada incorretamente). As primeiras listagens completas de diretório começam assim que os eventos de arquivo são habilitados no local externo. As listagens subsequentes ocorrem periodicamente, contanto que haja pelo menos um fluxo do Carregador Automático que use eventos de arquivo para ingerir dados.
Práticas recomendadas para o Carregador Automático com eventos de arquivo
Siga estas práticas recomendadas para otimizar o desempenho e a confiabilidade ao usar o Carregador Automático com eventos de arquivo.
Usar volumes para a descoberta ideal de arquivos
Para melhorar o desempenho, o Databricks recomenda a criação de um volume externo para cada caminho ou subdiretório do qual o Carregador Automático carrega dados e fornece caminhos de volume (por exemplo, /Volumes/someCatalog/someSchema/someVolume) para o Carregador Automático em vez de caminhos de nuvem (por exemplo, s3://bucket/path/to/volume). Isso otimiza a descoberta de arquivos porque o Carregador Automático é capaz de listar o volume usando um padrão de acesso a dados otimizado.
Considere os gatilhos de chegada de arquivo para pipelines controlados por eventos
Para o processamento de dados orientado por eventos, considere usar um gatilho de chegada de arquivo em vez de um pipeline contínuo. Os gatilhos de chegada de arquivo iniciam automaticamente o pipeline quando novos arquivos chegam, fornecendo melhor utilização de recursos e eficiência de custo, pois o cluster só é executado quando há novos arquivos a serem processados.
Configurar intervalos apropriados com gatilhos contínuos
É recomendável usar gatilhos de chegada de arquivos para processar arquivos assim que eles chegarem. No entanto, se o caso de uso exigir o uso de triggers contínuos como Trigger.ProcessingTime, recomendamos configurar os intervalos de gatilho para 1 minute ou mais (que devem ser definidos usando pipelines.trigger.interval ao usar Pipelines Declarativos do Lakeflow Spark). Isso reduz a frequência de interrogação para verificar se novos arquivos chegaram e permite que um número maior de fluxos seja executado simultaneamente a partir do seu espaço de trabalho.
Limitações do Carregador Automático com eventos de arquivo
- Não há suporte para regravações de rota. As reescritas de caminhos são usadas quando vários buckets ou contêineres são montados em DBFS, que é um padrão de uso descontinuado.
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 Carregador Automático com eventos de arquivo.
Como fazer para confirmar se os eventos de arquivo estão configurados corretamente?
Clique no botão Testar Conexão na página da localização externa. 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 habilitou eventos de arquivo no Automatic modo, o teste mostrará 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, aparecerá um erro no item leitura de eventos de arquivo.
Posso evitar uma listagem completa de diretórios durante a execução inicial?
Não. Mesmo se includeExistingFiles estiver definido como false, o Carregador Automático executará uma listagem de diretório para descobrir arquivos criados após o início do fluxo e se atualizar com o cache de eventos de arquivo (proteja uma posição de leitura válida no cache e armazene-a no ponto de verificação do fluxo).
Devo definir cloudFiles.backfillInterval para evitar arquivos ausentes?
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 de chegada tardia. Agora, o Databricks executa listagens completas de diretório periodicamente no local externo. As primeiras listagens completas de diretório começam assim que os eventos de arquivo são habilitados no local externo. Listagens subsequentes serão feitas periodicamente, contanto que haja pelo menos um fluxo do Auto Loader que utilize eventos de arquivo para ingerir dados.
Configurei eventos de arquivo com uma fila de armazenamento fornecida, mas a fila foi configurada incorretamente e perdi arquivos. Como fazer para garantir que o Carregador Automático ingere os arquivos perdidos quando minha fila foi configurada incorretamente?
Primeiro, confirme se a configuração incorreta da fila fornecida está corrigida. Para verificar, clique no botão Testar Conexão na página de localização externa. 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 de diretório completa para locais externos com eventos de arquivo habilitados. Essa 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 do diretório, o Carregador Automático continuará a ler do 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.