Acionar o Job quando novos arquivos chegarem
O senhor pode usar os acionadores de chegada de arquivos para acionar a execução do trabalho Databricks 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.
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 raiz 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, se você criar um gatilho de chegada de arquivo para o local /Volumes/mycatalog/myschema/myvolume/mydirectory/
e esse local tiver 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
.
Requisitos
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.
Para otimizar o desempenho, o local externo deve ser ativado para eventos de arquivo. Os volumes nesses locais externos recebem suporte a eventos de arquivos pelo site default. Consulte (Recomendado) Habilitar eventos de arquivo para um local externo.
Para habilitar eventos de arquivo para um local externo, você deve ser o proprietário do local externo ou ter o privilégio
MANAGE
no local externo. 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 detalhes sobre as vantagens de desempenho e capacidade da ativação de eventos de arquivo em locais externos, consulte Limitações. Consulte também Comparação de acionadores de chegada de arquivo com eventos de arquivo gerenciados e sem.
Visualização
Os eventos do arquivo gerenciar estão em Public Preview.
- 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
-
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.
-
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 em Unity Catalog e esse local externo estiver ativado para gerenciar 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 o local de armazenamento não estiver habilitado para eventos de arquivo:
- 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.
Para obter limitações adicionais quando os eventos de arquivo gerenciar são usados como acionadores de chegada de arquivo, consulte Limitações de eventos de arquivo.
Comparação de acionadores de chegada de arquivos com eventos de arquivos gerenciados e sem
Além das diferenças listadas na seção Limitações, os eventos de arquivo gerenciar acrescentam as seguintes diferenças de comportamento quando comparados aos acionadores de chegada de arquivo sem eventos de arquivo:
-
Quando os eventos de arquivo são ativados para um local externo, a Databricks usa um novo 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 últimos arquivos criados ou atualizados por mais tempo (por exemplo, uma retenção contínua de 30 dias para os últimos milhões de arquivos). Essa abordagem aumenta a eficiência do processamento de arquivos.
-
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.
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.