Auto Loader FAQ
Perguntas frequentes sobre o Databricks Auto Loader.
O Auto Loader processa o arquivo novamente quando o arquivo é anexado ou substituído?
Os arquivos são processados exatamente uma vez, a menos que cloudFiles.allowOverwrites
esteja ativado. Quando um arquivo é anexado ou substituído, o Azure Databricks não pode garantir qual versão do arquivo será processada. Você também deve ter cuidado ao ativar cloudFiles.allowOverwrites
no modo de notificação de arquivos, onde o Auto Loader pode identificar novos arquivos por meio de notificações de arquivos e listagem de diretórios. Devido à discrepância entre a hora do evento de notificação de arquivo e a hora de modificação do arquivo, o Auto Loader pode obter dois carimbos de data/hora diferentes e, portanto, ingerir o mesmo arquivo duas vezes, mesmo quando o arquivo é gravado apenas uma vez.
Em geral, o Databricks recomenda que você use o Auto Loader para ingerir apenas arquivos imutáveis e evitar a configuração cloudFiles.allowOverwrites
. Se isso não atender aos seus requisitos, entre em contato com sua equipe de conta do Azure Databricks.
Se os meus ficheiros de dados não chegarem continuamente, mas em intervalos regulares, por exemplo, uma vez por dia, devo continuar a utilizar esta fonte e existem benefícios?
Nesse caso, você pode configurar um Trigger.AvailableNow
trabalho de Streaming Estruturado (disponível no Databricks Runtime 10.4 LTS e superior) e agendar para ser executado após o horário de chegada previsto do arquivo. Auto Loader funciona bem com atualizações pouco frequentes ou frequentes. Mesmo que as eventuais atualizações sejam muito grandes, o Auto Loader é bem dimensionado para o tamanho de entrada. As eficientes técnicas de descoberta de arquivos e os recursos de evolução de esquema do Auto Loader fazem do Auto Loader o método recomendado para ingestão incremental de dados.
O que acontece se eu alterar o local do ponto de verificação ao reiniciar o fluxo?
Um local de ponto de verificação mantém informações de identificação importantes de um fluxo. Alterar o local do ponto de verificação efetivamente significa que você abandonou o fluxo anterior e iniciou um novo fluxo.
Preciso criar serviços de notificação de eventos com antecedência?
N.º Se você escolher o modo de notificação de arquivo e fornecer as permissões necessárias, o Auto Loader poderá criar serviços de notificação de arquivos para você. Consulte O que é o modo de notificação de arquivo Auto Loader?
Como faço para limpar os recursos de notificação de eventos criados pelo Auto Loader?
Você pode usar o gerenciador de recursos de nuvem para listar e derrubar recursos. Você também pode excluir esses recursos manualmente usando a interface do usuário ou as APIs do provedor de nuvem.
Posso executar várias consultas de streaming de diferentes diretórios de entrada no mesmo bucket/contêiner?
Sim, desde que não sejam diretórios pais-filhos; por exemplo, prod-logs/
e prod-logs/usage/
não funcionaria porque /usage
é um diretório filho de /prod-logs
.
Posso usar esse recurso quando houver notificações de arquivo existentes no meu bucket ou contêiner?
Sim, desde que seu diretório de entrada não entre em conflito com o prefixo de notificação existente (por exemplo, os diretórios pai-filho acima).
Como o Auto Loader infere o esquema?
Quando o DataFrame é definido pela primeira vez, o Auto Loader lista seu diretório de origem e escolhe os 50 GB de dados ou 1000 arquivos mais recentes (por tempo de modificação de arquivo) e os usa para inferir seu esquema de dados.
O Auto Loader também infere colunas de partição examinando a estrutura do diretório de origem e procura caminhos de arquivo que contenham a /key=value/
estrutura. Se o diretório de origem tiver uma estrutura inconsistente, por exemplo:
base/path/partition=1/date=2020-12-31/file1.json
// inconsistent because date and partition directories are in different orders
base/path/date=2020-12-31/partition=2/file2.json
// inconsistent because the date directory is missing
base/path/partition=3/file3.json
Auto Loader infere as colunas de partição como vazias. Use cloudFiles.partitionColumns
para analisar explicitamente colunas da estrutura de diretórios.
Como o Auto Loader se comporta quando a pasta de origem está vazia?
Se o diretório de origem estiver vazio, o Auto Loader exigirá que você forneça um esquema, pois não há dados para executar a inferência.
Quando o Autoloader infere o esquema? Evolui automaticamente após cada microlote?
O esquema é inferido quando o DataFrame é definido pela primeira vez em seu código. Durante cada microlote, as alterações de esquema são avaliadas em tempo real; portanto, você não precisa se preocupar com acertos de desempenho. Quando o fluxo é reiniciado, ele pega o esquema evoluído do local do esquema e começa a ser executado sem qualquer sobrecarga de inferência.
Qual é o impacto no desempenho na ingestão de dados ao usar a inferência de esquema do Auto Loader?
Você deve esperar que a inferência de esquema leve alguns minutos para diretórios de origem muito grandes durante a inferência inicial do esquema. Você não deve observar acertos significativos de desempenho durante a execução do fluxo. Se você executar seu código em um bloco de anotações do Azure Databricks, poderá ver atualizações de status que especificam quando o Auto Loader listará seu diretório para amostragem e inferência de seu esquema de dados.
Devido a um bug, um arquivo ruim mudou meu esquema drasticamente. O que devo fazer para reverter uma alteração de esquema?
Entre em contato com o suporte da Databricks para obter ajuda.