Share via


Perguntas frequentes sobre o Carregador Automático

Perguntas frequentes sobre o Carregador Automático do Databricks.

O Auto Loader processa o arquivo novamente quando ele é anexado ou substituído?

Os arquivos são processados apenas uma vez, a menos que cloudFiles.allowOverwrites esteja habilitado. Quando um arquivo é anexado ou sobrescrito, o Azure Databricks não pode garantir qual versão do arquivo será processada. Utilize também o cuidado ao habilitar cloudFiles.allowOverwrites no modo de notificação de arquivos, no qual o carregador automático pode identificar novos arquivos por meio de notificações de arquivos e listagem de diretórios. Devido à discrepância entre o tempo do evento de notificação do arquivo e o tempo de modificação do arquivo, o Carregador automático 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ê utilize o carregador automático 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 meus arquivos de dados não chegarem continuamente, mas em intervalos regulares, por exemplo, uma vez por dia, eu devo usar essa fonte? Qual é o benefício?

Nesse caso, você pode configurar um trabalho de streaming estruturado Trigger.AvailableNow (disponível no Databricks Runtime 10.4 LTS e superior) e agendar para ser executado após o horário previsto de chegada do arquivo. O Carregador automático funciona bem com atualizações frequentes ou não frequentes. Mesmo que as atualizações ocasionais sejam muito grandes, o Carregador automático dimensiona bem para o tamanho da entrada. As técnicas eficientes de descoberta de arquivo do Carregador automático e os recursos de evolução do esquema tornam o Carregador Automático o método recomendado para a ingestão de dados incremental.

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

O local de ponto de verificação mantém informações importantes de identificação do fluxo. Alterar o local do ponto de verificação efetivamente significa que você abandonou o fluxo anterior e iniciou um novo fluxo.

Preciso criar os serviços de notificação de eventos da AWS antecipadamente?

Não. Se você escolher o modo de notificação de arquivo e fornecer as permissões necessárias, o Carregador automático criará os serviços de notificação de arquivo para você. Confira Qual é o modo de notificação de arquivos do Carregador Automático?

Como fazer para limpar os recursos de notificação de eventos criados pelo Carregador automático?

Você pode usar o Cloud Resource Manager para listar e subdividir os 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 eles não sejam diretórios pai-filho; 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 há notificações de arquivo no bucket ou contêiner?

Sim, desde que o diretório de entrada não conflite com o prefixo de notificação (por exemplo, os diretórios pai-filho acima).

Como o Carregador Automático infere o esquema?

Quando o DataFrame é definido pela primeira vez, o Carregador Automático lista o diretório de origem e escolhe (por hora de modificação de arquivo) os 50 GB de dados ou 1.000 arquivos mais recentes e os usa para inferir o seu esquema de dados.

O Carregador Automático 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 Carregador Automático infere as colunas de partição como vazias. Use cloudFiles.partitionColumns para analisar explicitamente colunas da estrutura de diretório.

Como o Carregador Automático se comporta quando a pasta de origem está vazia?

Se o diretório de origem estiver vazio, o Carregador Automático exigirá que você forneça um esquema, pois não há dados para executar a inferência.

Quando o Carregador Automático infere o esquema? Ele evolui automaticamente após cada microlotes?

O esquema é inferido quando o DataFrame é definido pela primeira vez em seu código. Durante cada micro lotes, as alterações de esquema são avaliadas em tempo real; portanto, você não precisa se preocupar com as acertos de desempenho. Quando o fluxo é reiniciado, ele escolhe o esquema evoluído do local do esquema e começa a ser executado sem nenhuma sobrecarga de inferência.

Qual é o impacto no desempenho na ingestão dos dados ao usar a inferência de esquema do Carregador Automático?

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. Você não deve observar acertos de desempenho significativos, somente durante a execução do fluxo. Se você executar seu código em um notebook do Azure Databricks, poderá ver atualizações de status que especificam quando o Carregador Automático lista o diretório para amostragem e inferência do esquema de dados.

Devido a um bug, um arquivo com problemas alterou drasticamente meu esquema. O que devo fazer para reverter uma alteração de esquema?

Entre em contato com o suporte do Databricks para obter ajuda.