Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode usar gatilhos de atualização de tabela para disparar uma execução de seu trabalho quando as tabelas de origem são atualizadas. Use esse recurso para executar um trabalho quando novos dados estiverem prontos sem a necessidade de um cluster em execução contínua ou conhecimento dos processos que atualizam uma tabela.
Como funcionam os gatilhos de atualização de tabela?
Um gatilho de atualização de tabela verifica se há atualizações de tabela e, quando uma tabela é atualizada, o trabalho é executado. O gatilho pode ser executado quando uma tabela é atualizada ou quando todas as tabelas que estão sendo monitoradas pelo gatilho são atualizadas. Os gatilhos de atualização de tabela não incorrem em custos adicionais, além dos custos do provedor de nuvem associados à listagem de tabelas e à leitura de atualizações do local de armazenamento.
Um gatilho de atualização de tabela pode ser configurado para monitorar uma ou mais tabelas para alterações de dados, como atualizações, mesclagens e exclusões. Estas tabelas podem ser tabelas geridas pelo Unity Catalog Delta e Iceberg, tabelas externas do Unity Catalog apoiadas por Delta Lake, visualizações materializadas, tabelas de streaming e vistas do Unity Catalog ou vistas métricas que dependem das tabelas suportadas. Outras vistas e tabelas partilhadas via Delta Sharing não são suportadas. Ao selecionar várias tabelas, você pode especificar se um trabalho é acionado quando alguma ou todas as tabelas são atualizadas.
Adicionar um gatilho de atualização de tabela
Para adicionar um gatilho de atualização de tabela a um trabalho existente:
Na barra de navegação à esquerda do espaço de trabalho, clique em Tarefas & Pipelines.
Na lista de trabalhos, clique no nome do trabalho ao qual você deseja adicionar um gatilho.
No painel direito, em Agendas & Triggers, clique em Adicionar gatilho.
Em Tipo de gatilho, selecione Atualização de tabela.
Em Tabelas, adicione as tabelas que deseja monitorar em busca de atualizações.
Se selecionar mais de uma tabela, configure uma opção em Gatilho quando para especificar se a execução de um trabalho deve ser acionada quando Todas as tabelas forem atualizadas ou quando Qualquer tabela for atualizada.
(Opcional) Configure opções avançadas, clicando em Avançado.
- Tempo mínimo entre gatilhos em segundos: o tempo mínimo de espera para acionar uma execução após a conclusão de uma execução anterior. As tabelas atualizadas durante esse período acionarão uma execução somente depois que o tempo de espera expirar. O Azure Databricks aguarda esse período de tempo antes de acionar uma execução, mesmo que as tabelas monitoradas sejam atualizadas.
- Aguarde após a última alteração em segundos: o tempo de espera para acionar uma execução após uma atualização de tabela. Atualizações adicionais na tabela durante este período reiniciam o cronómetro. Essa configuração pode ser usada quando as atualizações de tabela vêm em lotes, e todo o lote precisa ser processado depois que todas as tabelas são atualizadas.
Observação
Se ambas as opções forem usadas, o gatilho aguardará o tempo mínimo entre os gatilhos e, em seguida, aguardará a quantidade definida de tempo após a última alteração. Por exemplo, se você tiver um tempo mínimo de 120 segundos e uma espera após as últimas alterações de 60 segundos, ele não acionará a execução até que pelo menos 120 segundos tenham decorrido, mesmo que uma atualização de tabela aconteça nos primeiros 60 segundos. Além disso, se uma atualização chegar em 5 segundos e, em seguida, outra em 115 segundos, a espera após a última alteração significará que uma execução não será acionada até depois de 175 segundos.
Para validar a configuração, clique em Gatilho de teste.
Clique em Salvar.
Observação
Você também pode configurar gatilhos de atualização de tabela a partir da API de trabalhos. Adicione um objeto trigger a uma jobs/create, jobs/update, ou jobs/reset operação.
Disparadores para atualização de tabelas com eventos de ficheiros
Para obter o melhor desempenho e escalabilidade, habilite eventos de arquivo no local externo onde as tabelas estão armazenadas. Esta etapa de configuração única melhora a eficiência dos gatilhos de atualização de tabela e desbloqueia outros recursos, incluindo o Auto Loader mais eficiente e gatilhos de chegada de arquivos.
Quando os eventos de arquivo são ativados, o Databricks rastreia automaticamente os metadados de ingestão usando notificações de alteração do provedor de nuvem, resultando em atualizações de tabela mais rápidas e eficientes.
Se suas tabelas estiverem no armazenamento de nível raiz do metastore, primeiro converta-as em um local externo e, em seguida, habilite eventos de arquivo nesse local.
Parâmetros de trabalho associados a gatilhos de atualização de tabela
Quando você usa gatilhos de atualização de tabela para um trabalho, três novas referências de valor dinâmico estão disponíveis para uso como valores de parâmetro no trabalho.
-
{{job.trigger.table_update.updated_tables}}- Uma lista JSON de tabelas atualizadas desde a última execução do trabalho. -
{{job.trigger.table_update.`<catalog.schema.table>`.commit_timestamp.iso_datetime}}- A marca temporal de confirmação mais recente que iniciou a execução do trabalho. -
{{job.trigger.table_update.`<catalog.schema.table>`.version}}- A versão de commit mais recente que desencadeou a execução do trabalho.
Para commit_timestamp e version, existem várias versões da referência de valor dinâmico. Cada tabela monitorada terá um <catalog.schema.table> com o nome totalmente qualificado da tabela para a qual você deseja dados. Se houver apenas uma tabela sendo monitorada no gatilho, você verá um valor sem o <catalog.schema.table>. Por exemplo, você pode usar {{job.trigger.table_update.commit_timestamp.iso_datetime}}.
Para obter mais informações sobre parâmetros de trabalho, consulte Parametrizar trabalhos.
Receber notificações de erros de disparadores de atualização de tabela
Para ser notificado se um gatilho de atualização de tabela falhar na avaliação, configure notificações por e-mail ou no destino do sistema sobre falha do processo. Consulte Adicionar notificações numa tarefa.
Limitações
Os gatilhos de atualização de tabela têm as seguintes limitações:
- Você pode selecionar até 10 tabelas gerenciadas ou Delta por gatilho.
- Para tabelas que residem em locais sem eventos de ficheiro, pode ser configurado um máximo de 1.000 trabalhos com um gatilho de atualização de tabela.
Os gatilhos nas vistas do Unity Catalog têm as seguintes limitações adicionais:
Os gatilhos de atualização de tabela suportam apenas a monitorização de vistas do Catálogo Unity ou vistas métricas que dependem de tabelas também suportadas por gatilhos de atualização de tabelas. Notavelmente, as seguintes opiniões não são suportadas:
- Vistas que usam
read_files(podem ler a partir de uma tabela suportada que lê ficheiros, mas não podem usarread_filesdiretamente). - Vistas que dependem de tabelas que não estão no Unity Catalog.
- Vistas que dependem de tabelas federadas.
- Vistas que usam
A criação de triggers para vistas que contenham dependências não suportadas continuará a ter sucesso, mas nenhuma execução de trabalho será acionada quando uma dependência não suportada for atualizada.
A atualização de tabela desencadeia alterações monitorizadas nas tabelas dependentes de uma vista e considera a vista atualizada caso alguma das tabelas dependentes seja atualizada. É possível que uma execução de tarefa seja desencadeada para modificações de dados que são filtradas pela definição de visualização.
As tabelas de origem para uma vista são contabilizadas para o limite de 10 tabelas por trigger.
- Por exemplo, se uma vista depende de 11 tabelas, não será possível usá-la num gatilho de atualização de tabela. De forma semelhante, um gatilho com duas visões, cada uma dependente de 6 tabelas, contará como 12 tabelas.
Existe um limite separado de 10 visualizações dependentes por visualização monitorizada.
- Por exemplo, se uma vista depender de outras 11 vistas, não será possível usá-la num gatilho de atualização de tabela, mesmo que isso não quebre a regra das 10 tabelas por trigger.