Acionar o Job quando novos arquivos chegarem
O senhor pode usar acionadores de chegada de arquivos para acionar a execução do seu trabalho quando novos arquivos chegarem a um local externo, como Amazon S3, Azure storage ou Google Cloud Storage. O senhor pode usar esse recurso quando um trabalho agendado pode ser ineficiente porque novos dados chegam em uma programação irregular.
Como funcionam os gatilhos de chegada de arquivos?
Os acionadores de chegada de arquivos se esforçam ao máximo para verificar se há novos arquivos a cada minuto, embora isso possa ser afetado pelo desempenho do armazenamento em nuvem subjacente. Os gatilhos de chegada de arquivos não geram custos adicionais além dos custos do provedor de nuvem associados à listagem de arquivos no local de armazenamento.
Um acionador de chegada de arquivo pode ser configurado para monitorar a raiz de um local ou volume externo do Unity Catalog ou um subcaminho de um local ou volume externo. Por exemplo, para o volume do Unity Catalog /Volumes/mycatalog/myschema/myvolume/
, os caminhos a seguir são válidos para um acionador de chegada de arquivo:
/Volumes/mycatalog/myschema/myvolume/
/Volumes/mycatalog/myschema/myvolume/mydirectory/
Um gatilho de chegada de arquivo verifica recursivamente novos arquivos em todos os subdiretórios do local configurado. Por exemplo, digamos que você crie um gatilho de chegada de arquivo para o local /Volumes/mycatalog/myschema/myvolume/mydirectory/
e esse local tenha os seguintes subdiretórios:
/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirA
/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirB
/Volumes/mycatalog/myschema/myvolume/mydirectory/subdirC/subdirD
O acionador verifica se há novos arquivos em mydirectory
, subdirA
, subdirB
, subdirC
e subdirC/subdirD
.
A chegada de arquivos é acionada com eventos de arquivo
Visualização
Os eventos do arquivo estão na visualização pública.
Para obter o melhor desempenho, o local externo deve ser ativado para eventos de arquivo. Quando os eventos de arquivo são ativados para um local externo, a Databricks usa um serviço interno para rastrear metadados de ingestão processando notificações de alteração de provedores de nuvem. Esse serviço retém os metadados dos arquivos mais recentes criados ou atualizados durante um período de retenção contínuo determinado pelo serviço, aumentando a eficiência do processamento de arquivos.
Poucos minutos após a ativação de eventos de arquivo em um local externo, os acionadores de chegada de arquivo existentes que monitoram os caminhos cobertos por esse local externo começam a se beneficiar da ativação de eventos de arquivo. Novos gatilhos se beneficiam em segundos.
Para obter mais informações sobre as vantagens de desempenho e capacidade dos eventos de arquivo em locais externos, consulte Limitações.
Antes de começar
O seguinte é necessário para usar os gatilhos de chegada de arquivos:
-
O site workspace deve ter oUnity Catalog ativado.
-
O senhor deve usar um local de armazenamento que seja um volume ou um local externo configurado no Unity Catalog. Consulte O que são volumes do Unity Catalog? e Criar um local externo para conectar o armazenamento em nuvem ao Databricks.
A Databricks recomenda que o senhor ative o local externo para eventos de arquivos alterados. Os volumes nesses locais externos recebem suporte a eventos de arquivos pelo site default. Para ativar eventos de arquivo, você deve ser o proprietário do local externo ou ter o privilégio
MANAGE
no local externo. Para obter informações sobre as vantagens dos eventos de arquivo, consulte Acionadores de chegada de arquivo com eventos de arquivo. -
O senhor deve ter a permissão
READ
no local de armazenamento e as permissões CAN MANAGE no Job. Para obter mais informações sobre permissões de trabalho, consulte Job ACLs.
Limitações
-
O caminho usado para um acionador de chegada de arquivo não deve conter tabelas externas ou locais gerenciais de catálogos e esquemas.
-
O caminho usado para um acionador de chegada de arquivo não pode conter curingas, por exemplo,
*
ou?
. -
Se o local de armazenamento estiver configurado como um local externo no Unity Catalog e esse local externo estiver ativado para eventos de arquivo:
- Um máximo de 1.000 trabalhos podem ser configurados com um acionador de chegada de arquivo em um Databricks workspace.
- Não há limites para o número de arquivos no local de armazenamento.
- Quando os gatilhos monitoram um subcaminho de um local, seja um volume externo, o número de alterações no local raiz pode fazer com que o acionador exceda o tempo permitido para processar as alterações. Se isso acontecer, o gatilho será definido em um estado de erro. Você pode evitar isso configurando o acionador para monitorar a raiz de um local. Por exemplo, o senhor pode criar um volume do Unity Catalog no subcaminho, mas configurar o acionador na raiz do volume.
- Se um arquivo existente for modificado e seus metadados estiverem fora do período de retenção contínua, essa modificação será tratada como a chegada de um novo arquivo, acionando a execução de um Job. O senhor pode evitar isso ingerindo apenas arquivos imutáveis, ou pode usar acionadores de chegada de arquivos com o Auto Loader para acompanhar o progresso da ingestão.
-
Se o local de armazenamento não estiver habilitado para eventos de arquivo:
- Somente novos arquivos acionam a execução. A substituição de um arquivo existente por um arquivo com o mesmo nome não aciona uma execução.
- Um máximo de 50 trabalhos podem ser configurados com um acionador de chegada de arquivos nesses locais em um Databricks workspace.
- O local de armazenamento pode conter até 10.000 arquivos. Se o local de armazenamento configurado for um subcaminho de um local ou volume externo do Unity Catalog, o limite de 10.000 arquivos se aplicará ao subcaminho e não à raiz do local de armazenamento. Por exemplo, a raiz do local de armazenamento pode conter mais de 10.000 arquivos em seus subdiretórios, mas o subdiretório configurado não deve exceder o limite de 10.000 arquivos.
Consulte também Limitações de eventos de arquivo.
Adicionar um gatilho de chegada de arquivo
Para adicionar um acionador de chegada de arquivo a um trabalho:
-
Na barra lateral, clique em fluxo de trabalho .
-
Na coluna Name (Nome ) em Jobs tab, clique no nome do Job.
-
No painel de detalhes doJob, à direita, clique em Add trigger (Adicionar acionador ).
-
Em Tipo de acionador , selecione Chegada do arquivo .
-
Em Storage location (Local de armazenamento) , digite a URL da raiz ou um subcaminho de um local externo do Unity Catalog ou a raiz ou um subcaminho de um volume do Unity Catalog a ser monitorado.
-
(Opcional) Configure as opções avançadas:
- Tempo mínimo entre acionamentos em segundos : O tempo mínimo de espera para acionar uma execução após a conclusão de uma execução anterior. Os arquivos que chegam nesse período acionam uma execução somente após o término do tempo de espera. Use essa configuração para controlar a frequência da criação de execuções.
- Aguardar após a última alteração em segundos : O tempo de espera para acionar uma execução após a chegada do arquivo. A chegada de outro arquivo nesse período reinicia o cronômetro. Essa configuração pode ser usada quando os arquivos chegam em lotes e o lote inteiro precisa ser processado depois que todos os arquivos tiverem chegado.
-
Para validar a configuração, clique em Testar conexão .
-
Clique em Salvar .
Receba notificações de gatilhos de falha na chegada de arquivos
Para ser notificado se um acionador de chegada de arquivo falhar na avaliação, configure o site email ou as notificações de destino do sistema sobre falha de trabalho. Consulte Adicionar notificações em um trabalho.