FAQ do 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 habilitado. Quando um arquivo é anexado ou sobrescrito, a Databricks não pode garantir qual versão do arquivo será processada. O senhor também deve ter cuidado ao ativar cloudFiles.allowOverwrites no modo de notificação de arquivos, em que 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 do 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, a Databricks recomenda que o senhor use o Auto Loader para ingerir apenas arquivos imutáveis e evite definir cloudFiles.allowOverwrites. Se isso não atender às suas necessidades, entre em contato com a equipe do Databricks account .

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

Nesse caso, o senhor pode configurar um Job de transmissão estruturada Trigger.AvailableNow (disponível em Databricks Runtime 10.4 LTS e acima) e programar a execução após o horário previsto para a chegada do arquivo. O Auto Loader funciona bem com atualizações pouco frequentes ou frequentes. Mesmo que as eventuais atualizações sejam muito grandes, o site Auto Loader escala bem o tamanho da entrada. Auto Loadere os recursos de evolução do esquema fazem do Auto Loader o método recomendado para a ingestão incremental de dados.

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

Um local de ponto de controle mantém informações importantes de identificação de uma transmissão. Alterar a localização do ponto de controle significa efetivamente que o senhor abandonou a transmissão anterior e começou uma nova transmissão.

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

Não. Se o senhor escolher o modo de notificação de arquivo e fornecer as permissões necessárias, o Auto Loader poderá criar um serviço de notificação de arquivo para o senhor. Consulte O que é o modo de notificação de arquivo do Auto Loader?

Como faço para limpar o recurso de notificação de eventos criado pelo site Auto Loader?

O senhor pode usar o gerenciador de recursoscloud para listar e remover recursos. O senhor também pode excluir esses recursos manualmente usando a UI do provedor cloud ou APIs.

Posso executar várias consultas de transmissão de diferentes diretórios de entrada no mesmo bucket/contêiner?

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 arquivos 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 1.000 arquivos mais recentes (por tempo de modificação do arquivo) e os utiliza 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 arquivos 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 considera as colunas da 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 solicitará que o senhor forneça um esquema, pois não há dados para realizar a inferência.

Quando o Autoloader infere o esquema? Ele 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, o senhor não precisa se preocupar com os hits de desempenho. Quando a transmissão é reiniciada, 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 da ingestão de dados ao usar a inferência de esquema do Auto Loader?

Você deve esperar que a inferência do esquema demore alguns minutos para diretórios de origem muito grandes durante a inferência inicial do esquema. O senhor não deve observar nenhum desempenho significativo durante a execução da transmissão. Se o código for executado em um notebook Databricks, o usuário poderá ver atualizações de status que especificam quando o Auto Loader listará o diretório para amostragem e inferirá o esquema de dados.

Devido a um bug, um arquivo incorreto alterou 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.