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.