Pular para o conteúdo principal

Auto Loader com visão geral de eventos de arquivo

info

Visualização

Este recurso está em Visualização Pública.

Saiba mais sobre a opção cloudFiles.useManagedFileEvents com o Auto Loader, que fornece descoberta eficiente de arquivos.

Como funciona o Auto Loader com eventos de arquivo?

Auto Loader com eventos de arquivo usa 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 arquivo, como criação e 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 para um tópico do Amazon SNS. Uma fila do Amazon SQS pode então ser inscrita no tópico SNS para processamento assíncrono do evento.

O diagrama a seguir descreve esse padrão:

sistemas de notificação de eventos de armazenamento em nuvem

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.

Após a configuração do recurso cloud , o serviço escuta os eventos do arquivo e armazena em cache as informações de metadados do arquivo. O cache mantém metadados de arquivos modificados nos últimos 7 dias. Auto Loader usa esse cache para descobrir arquivos quando ele é executado com cloudFiles.useManagedFileEvents definido como true.

O diagrama a seguir descreve essas interações:

Auto Loader com eventos de arquivo

Quando uma transmissão é executada pela primeira vez com cloudFiles.useManagedFileEvents definido como true, Auto Loader faz uma listagem completa do diretório do caminho de carregamento para descobrir todos os arquivos e ficar atualizado com o cache de eventos de arquivo (proteger 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 listagem de diretórios.

Como o cache só armazena metadados de arquivos modificados nos últimos 7 dias, ele só pode suportar leituras incrementais se você executar Auto Loader pelo menos uma vez a cada 7 dias. 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á executar uma listagem completa de diretórios para ficar atualizado 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
  • Migrando uma transmissão de listagem de diretório ou notificações de arquivo legado
  • O caminho de carga de uma transmissão é alterado
  • Auto Loader com eventos de arquivo não é executado por mais de 7 dias
  • São feitas atualizações no local externo que invalidam a posição de leitura do Auto Loader. Exemplos incluem quando 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. Este sinalizador permite que você ingira todos os arquivos que foram criados após o início da transmissão. Auto Loader lista o diretório inteiro para descobrir todos os arquivos criados após o início da transmissão, proteger uma posição de leitura no cache de eventos de arquivo e armazená-lo no ponto de verificação. As execuções subsequentes leem 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 uma listagem completa de diretórios uma vez a cada 24 horas para garantir que nenhum arquivo tenha sido perdido (por exemplo, se a fila fornecida estiver configurada incorretamente). Esta verificação é realizada para locais externos com eventos de arquivo habilitados, desde que haja pelo menos uma transmissão Auto Loader usando eventos de arquivo para ingerir dados deles.

Limitações do Auto Loader com eventos de arquivo

  • Reescritas de caminho não são suportadas. Reescritas de caminho são usadas 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.

Como posso confirmar se os eventos de arquivo estão configurados corretamente?

Clique no botão Testar conexão na página do 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 habilitou eventos de arquivo no modo Automatic , 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 no item de leitura de eventos de arquivo .

Posso evitar uma listagem completa do diretório durante a 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).

Devo definir cloudFiles.backfillInterval para evitar arquivos perdidos?

Não. Essa configuração foi recomendada para o modo de notificação de arquivo legado porque os sistemas de notificação de armazenamento cloud podem resultar em arquivos perdidos ou com atraso. Agora, o Databricks realiza uma listagem completa de diretórios a cada 24 horas para evitar arquivos perdidos.

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 ingira os arquivos perdidos quando minha fila foi configurada incorretamente?

Primeiro, confirme se a configuração incorreta da fila fornecida foi corrigida. Para verificar, clique no botão Testar conexão na página do 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 uma vez a cada 24 horas para todos os 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á lendo o cache de eventos de arquivo e ingerirá automaticamente todos os arquivos perdidos durante o período de configuração incorreta.

Como Databricks obtém 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.