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.
A cloudFiles.useManagedFileEvents opção com o Carregador Automático permite a 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 (consulte a estrutura de conteúdo de notificação do Amazon S3 para obter detalhes). Em seguida, você pode vincular uma fila do Amazon SQS a um tópico SNS para processamento assíncrono do evento.
Os eventos de arquivo do Azure Databricks são um serviço que configura recursos de nuvem para escutar eventos de arquivo. Como alternativa, você pode configurar os recursos de nuvem por conta própria e fornecer sua própria fila de armazenamento.
Depois de configurar os recursos de nuvem, o serviço processa notificações de eventos de arquivo e armazena metadados de arquivo em cache. O Carregador Automático usa esse cache para descobrir arquivos quando ele é executado com cloudFiles.useManagedFileEvents definido como true.
Quando um stream é executado pela primeira vez com cloudFiles.useManagedFileEvents configurado para true, o Carregador Automático realiza uma listagem completa do diretório no caminho de carga para identificar todos os arquivos e atualizar-se com o cache de eventos de arquivo (garantir um posicionamento de leitura válido no cache e armazená-lo no ponto de verificação do stream). 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.
O Databricks recomenda executar seus fluxos do Carregador Automático pelo menos uma vez a cada sete 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 sincronizar com o cache de eventos de arquivo.
Modo de eventos de arquivo versus modo de notificação de arquivo clássico
Este diagrama compara o modo de eventos de arquivo e o modo de notificação de arquivo clássico.
No modo de eventos de arquivo, um único serviço de eventos de arquivo gerenciado se conecta ao armazenamento em nuvem do cliente. Cria um tópico SNS compartilhado, uma fila SQS e uma assinatura SNS-para-SQS compartilhados que atendem a vários consumidores, incluindo Auto Loader e Triggers. No modo clássico de notificações de arquivos, cada consumidor exige sua própria assinatura de evento e fila, resultando em vários fluxos de notificação separados para cada bucket.
O modo de eventos de arquivo tem várias vantagens em comparação com o modo de notificação de arquivo clássico. Principalmente, ele requer apenas uma fila para todos os fluxos do Carregador Automático em um bucket, ajudando você a evitar o limite de notificações por bucket. Para obter mais informações, consulte o modo de notificação de arquivo com e sem eventos de arquivo habilitados em locais externos.
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 clássicas de arquivo.
- O Carregador Automático com eventos de arquivo não é executado por mais de sete dias.
- Você realiza atualizações no local externo que invalidam a posição de leitura do Auto Loader. Exemplos disso incluem ativar e desativar novamente os eventos de arquivo, alterar o caminho do local externo ou fornecer uma fila diferente 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 descobrir todos os arquivos criados após a hora de início do fluxo, estabelece uma posição de leitura no cache de eventos de arquivo e os 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 Azure Databricks também executa listagens completas de diretório no local externo para verificar se ele não perdeu nenhum arquivo (por exemplo, se a fila fornecida estiver configurada incorretamente). A primeira listagem completa de diretórios começa assim que os eventos de arquivo são habilitados no local externo. Cada listagem subsequente ocorre 24 horas após a última verificação completa, desde que haja pelo menos um fluxo do Carregador Automático usando 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 pode 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
O Databricks recomenda usar gatilhos de chegada de arquivo para processar arquivos assim que eles chegarem. No entanto, se o seu caso de uso exigir menor latência usando gatilhos contínuos como Trigger.ProcessingTime, a Databricks recomenda configurar os intervalos de gatilho para 1 minute ou mais. Em Pipelines Declarativos do Lakeflow Spark, defina esse valor usando pipelines.trigger.interval. 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.
Para requisitos de baixa latência, considere o modo de notificação de arquivo clássico . Os eventos de arquivo introduzem um salto de cache adicional entre o armazenamento em nuvem e o Carregador Automático, que pode adicionar latência em comparação com a leitura diretamente da fila de nuvem.
Limitações do Carregador Automático com eventos de arquivo
O Carregador Automático não dá suporte a regravações de caminho. As reescritas de caminho se aplicam quando vários buckets ou contêineres são montados no DBFS, 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.