Perguntas frequentes Auto Loader

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 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 arquivo, onde o Auto Loader pode identificar novos arquivos por meio de notificações de arquivo e listagem de diretório. Devido à discrepância entre o horário do evento de notificação de arquivo e o horário de modificação do arquivo, o Auto Loader pode obter dois timestamps diferentes e, portanto, ingerir o mesmo arquivo duas vezes, mesmo quando o arquivo é gravado apenas uma vez.

Em geral, a Databricks recomenda que você use o Auto Loader para ingerir apenas arquivos imutáveis e evitar a configuração cloudFiles.allowOverwrites. Se isto não atender aos seus requisitos, entre em contato com sua equipe account do Databricks.

Se meus arquivos de dados não chegarem continuamente, mas em intervalos regulares, por exemplo, uma vez por dia, ainda devo usar esta fonte e há algum benefício?

Nesse caso, você pode configurar um Trigger.AvailableNow (disponível no Databricks Runtime 10.2 e posterior) Job estruturado transmitido e programar para ser executado após o horário previsto de chegada do arquivo. O Auto Loader funciona bem com atualizações frequentes ou pouco frequentes. Mesmo que as eventuais atualizações sejam muito grandes, o Auto Loader aumenta bem o tamanho da entrada. As técnicas eficientes de descoberta de arquivos do Auto Loader e os recursos de evolução do esquema tornam o Auto Loader o método recomendado para ingestão de dados incrementais.

O que acontece se eu alterar o local do ponto de verificação ao reiniciar a transmissão?

A localização de um posto de controle mantém importantes informações de identificação de uma transmissão. Alterar a localização do ponto de controle efetivamente significa que você abandonou a transmissão anterior e começou uma nova transmissão.

Preciso criar serviços de notificação de eventos com antecedência?

Não. Se você escolher o modo de notificação de arquivo e fornecer as permissões necessárias, o Auto Loader pode criar serviços de notificação de arquivo 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 desmontar recursos. Você também pode excluir esses recursos manualmente usando a IU ou as APIs do provedor cloud .

Posso executar múltiplas query transmitidas de diferentes diretórios de entrada no mesmo bucket/container?

Sim, desde que não sejam diretórios pai-filho; por exemplo, prod-logs/ e prod-logs/usage/ não funcionariam porque /usage é um diretório filho de /prod-logs.

Posso usar esse recurso quando houver notificações de arquivo existentes em 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 hora de modificação do 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 estrutura /key=value/ . 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

O Auto Loader infere as colunas de partição como vazias. Use cloudFiles.partitionColumns para analisar explicitamente as colunas da estrutura do diretório.

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? Ele evolui automaticamente após cada micro-lotes?

O esquema é inferido quando o DataFrame é definido pela primeira vez em seu código. Durante cada micro-lote, as alterações de esquema são avaliadas em tempo real; portanto, você não precisa se preocupar com impactos de desempenho. Quando a transmissão recomeçar, ela pega o esquema evoluído do local do esquema e começa a executar sem nenhuma sobrecarga de inferência.

Qual é o impacto no desempenho ao ingerir os dados ao usar a inferência de esquema 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 de esquema inicial. Caso contrário, você não deve observar impactos significativos no desempenho durante a execução da transmissão. Se você executar seu código em um Databricks Notebook, poderá ver as 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 do Databricks para obter ajuda.