Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Encontre respostas às perguntas frequentes sobre o Databricks Auto Loader.
O Auto Loader processa o arquivo novamente quando o arquivo é anexado ou substituído?
Com a configuração padrão (cloudFiles.allowOverwrites = false), os arquivos são processados exatamente uma vez. Quando um arquivo é anexado ou substituído, o Auto Loader não pode garantir qual versão do arquivo será processada.
Para permitir que o Auto Loader processe o arquivo novamente quando ele for anexado ou substituído, você pode definir cloudFiles.allowOverwrites como true. Neste caso, o Auto Loader garante processar a versão mais recente do ficheiro. No entanto, Auto Loader não pode garantir qual versão intermediária é processada.
Tenha cuidado se ativar cloudFiles.allowOverwrites no modo de notificação de ficheiros. No modo de notificação de arquivos, o Auto Loader pode identificar novos arquivos por meio de notificações de arquivos e listagem de diretórios. Como a hora do evento de notificação de arquivo e a hora de modificação do arquivo podem diferir, o Auto Loader pode receber dois carimbos de data/hora diferentes e ingerir o mesmo arquivo duas vezes, mesmo que o arquivo não tenha sido atualizado.
Com cloudFiles.allowOverwrites habilitado, você mesmo deve lidar com registros duplicados. Auto Loader irá reprocessar o arquivo inteiro, mesmo quando ele é anexado ou parcialmente atualizado. Em geral, o Azure Databricks recomenda usar o Auto Loader para ingerir somente ficheiros imutáveis e usar a configuração padrão cloudFiles.allowOverwrites = false. Se você tiver mais perguntas, entre em contato com sua equipe de conta do Azure Databricks.
Como é que o Auto Loader determina se um ficheiro foi ingerido ou não?
O Auto Loader normalmente ingere cada ficheiro apenas uma vez, com base no seu caminho de ficheiro. No entanto, se definires a allowOverwrites opção para true, o Auto Loader também usa o carimbo temporal da última modificação do ficheiro para determinar se um ficheiro é novo ou foi atualizado e precisa de ser reingerido. Veja : O Auto Loader processa o ficheiro novamente quando este é adicionado ou sobrescrevido?
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 atualizações futuras sejam muito grandes, o Auto Loader escalona bem em relação ao 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.
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 é que o Auto Loader 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, não precisa preocupar-se com impactos no desempenho. Quando o fluxo de dados é reiniciado, ele obtém o esquema evoluído a partir da localização do esquema e começa a ser executado sem qualquer sobrecarga devida à 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 degradações significativas de desempenho durante a execução da transmissão. 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.
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 de criar um serviço de notificação de eventos antecipadamente?
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ê. Veja Gerir filas de notificação de ficheiros para cada fluxo do Auto Loader separadamente (clássico).
Se os eventos de arquivo estiverem habilitados no local externo no Unity Catalog, o serviço de eventos de arquivo poderá criar os eventos de arquivo em seu provedor de nuvem e você não precisará configurar o Auto Loader para criá-los para cada fluxo. Consulte Usar o modo de notificação de arquivo com eventos de arquivo
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).
Posso partilhar uma fila SQS entre o Auto Loader e outras aplicações?
O Databricks não recomenda partilhar uma fila SQS entre o Auto Loader e outras aplicações. Em vez disso, encaminhe as notificações do seu evento S3 para um tópico do SNS e depois subscreva uma fila SQS separada para cada aplicação desse tema. Use uma política de filtro de subscrição SNS para garantir que apenas as mensagens relevantes sejam encaminhadas para cada fila. Depois, forneça a fila dedicada ao Auto Loader.
Como posso confirmar que os eventos do ficheiro estão configurados corretamente?
Clique no botão Testar conexão na página de local externo. Se configurares corretamente os eventos do ficheiro, verás uma marca de verificação verde no item File Events Read. Se apenas criaste a localização externa e ativaste os eventos do ficheiro no Automatic modo, o teste mostra Skipped enquanto o Azure Databricks configura notificações para a localização externa. Aguarde alguns minutos e clique em Testar Conexão novamente. Se o Azure Databricks não tiver as permissões necessárias para configurar ou ler eventos de ficheiro, verá um erro no item Leitura de Eventos de Ficheiro.
Posso evitar uma listagem completa de diretórios durante a execução inicial?
N.º Mesmo que includeExistingFiles esteja definido como false, o Auto Loader executa uma listagem de diretórios para descobrir arquivos criados após o início do fluxo e se atualizar com o cache de eventos de arquivo (garanta uma posição de leitura válida no cache e armazene-o no ponto de verificação do fluxo).
Preciso de definir cloudFiles.backfillInterval para evitar a falta de ficheiros?
N.º O Azure Databricks recomendava anteriormente esta configuração para o modo clássico de notificação de ficheiros porque os sistemas de notificação de armazenamento na nuvem podiam resultar em ficheiros perdidos ou com atraso. Agora, o Azure Databricks realiza listagens completas de diretórios na localização externa. A primeira listagem completa do diretório começa assim que os eventos do ficheiro são ativados na localização externa. Cada listagem subsequente ocorre 24 horas após a última varredura completa, desde que exista pelo menos um fluxo Auto Loader a usar eventos de ficheiro para ingerir dados.
Configurei eventos de ficheiros com uma fila de armazenamento fornecida, mas a fila estava mal configurada e perdi ficheiros. Como posso garantir que o Auto Loader ingere os ficheiros perdidos quando a minha fila foi mal configurada?
Primeiro, verifique se a má configuração da fila fornecida está corrigida. Para verificar, clique no botão Testar Conexão na página de local externo. Se configurar corretamente os eventos do ficheiro, aparece uma marca de verificação verde para o item Eventos do Ficheiro Lido .
O Azure Databricks realiza uma listagem completa de diretórios para localizações externas com eventos de ficheiro ativados. Esta listagem de diretório descobre todos os arquivos que foram perdidos durante o período de configuração incorreta e os armazena no cache de eventos de arquivo.
Depois de corrigir a má configuração e o Azure Databricks completar a listagem de diretórios, o Auto Loader continua a ler da cache de eventos de ficheiros e ingere automaticamente quaisquer ficheiros perdidos durante o período de má configuração.
Como é que me posso recuperar de um CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN erro?
Este erro ocorre quando o token de continuação armazenado no ponto de verificação do Auto Loader para o serviço de eventos de ficheiros se torna inválido.
Algumas causas comuns:
-
cloudFiles.useManagedFileEventsfoi desligado e depois ligado novamente. - Modificação da localização ou volume externo da fonte.
- Modificação da fila fornecida.
- Alterar as opções
cloudFiles.allowOverwritesoucloudFiles.readChangeFeed.
Para recuperar:
- Define
.option("cloudFiles.listOnStart", "true")e.option("cloudFiles.validateOptions", false)na tua consulta de streaming. - Reinicia a transmissão. O Auto Loader realiza uma listagem completa de diretórios no início e contorna o token de continuação inválido.
- Após um micro-batch bem-sucedido, remova ambas as opções e reinicie o fluxo.
Para mais informações sobre a opção cloudFiles.listOnStart, consulte Notificação de ficheiro.
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.
Como posso monitorizar o meu pipeline do Auto Loader?
O Auto Loader expõe métricas principais através de StreamingQueryListener e o estado de ingestão ao nível do ficheiro através de cloud_files_state(). Para orientações sobre monitorização de métricas, consulta ao estado de ingestão, construção de painéis de observabilidade e resolução de problemas comuns, consulte Monitorizar e observar Auto Loader.