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.
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.
Importante
O acionamento de tarefas em tabelas e vistas do OpenSharing e em tabelas de sistema está em Beta. Veja Adicionar um gatilho ao OpenSharing e às tabelas do sistema.
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 monitorizar uma ou mais tabelas para alterações de dados, como atualizações, fusões e eliminaçõ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. Ao selecionar múltiplas tabelas, pode especificar se uma tarefa é ativada quando alguma ou todas as tabelas são atualizadas.
Também pode configurar acionadores nas tabelas e vistas do OpenSharing e nas tabelas de sistema (Beta). Veja Adicionar um gatilho ao OpenSharing e às tabelas do sistema.
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 Agendamentos e Gatilhos, 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 este período só desencadeiam uma execução após o fim do tempo de espera. 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 tiver um tempo mínimo de 120 segundos e uma espera após as últimas alterações de 60 segundos, então a execução não é ativada até que tenham passado pelo menos 120 segundos, mesmo que a atualização da tabela ocorra nos primeiros 60 segundos. Além disso, se uma atualização chegar aos 5 segundos e outra aos 115 segundos, então a espera após a última alteração significa que uma corrida só é desencadeada após 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.
Para editar, pausar ou remover este gatilho mais tarde, use a secção Agendamentos e Disparadores do painel de detalhes do trabalho . Veja Gerir um gatilho existente.
Adicionar um gatilho ao OpenSharing e às tabelas do sistema
Importante
Esta funcionalidade está em Beta.
Para além das tabelas locais, pode configurar gatilhos de atualização de tabelas para monitorizar dados partilhados com o seu espaço de trabalho através do OpenSharing e tabelas do sistema. Por exemplo, pode ativar um trabalho sempre que novos registos de faturação aparecem numa tabela do sistema, ou sempre que um fornecedor atualiza uma tabela partilhada.
Pode desencadear nos seguintes objetos partilhados:
- Tabelas OpenSharing
- Visualizações OpenSharing
- Visualizações de métricas do OpenSharing
- Vistas materializadas do OpenSharing
- Tabelas de streaming OpenSharing
- Tabelas do sistema
Revise as limitações dos gatilhos do OpenSharing, depois siga os passos em Adicionar um gatilho de atualização de tabela e selecione as tabelas partilhadas, vistas ou tabelas de sistema que pretende monitorizar.
Limitações do acionador OpenSharing
Esta funcionalidade suporta apenas Databricks-para-Databricks OpenSharing. A partilha Databricks-to-Open não é suportada.
Para ser acionado em tabelas e vistas partilhadas, a versão beta deve estar ativada tanto do lado do destinatário como do provedor:
- Acionadores de atualização de tabela no OpenSharing (Destinatário): Uma funcionalidade beta ao nível do espaço de trabalho, ativada no espaço de trabalho do destinatário onde o acionador é criado.
- Acionadores de atualização de tabela no OpenSharing (Fornecedor): uma funcionalidade beta de conta, ativada na conta do fornecedor que detém os dados partilhados.
Para tabelas de sistema, apenas é necessária a beta destinatária. Para ativar, veja Gerenciar prévias do Azure Databricks.
O utilizador que cria o gatilho deve ter o privilégio
SELECTsobre o objeto partilhado ou tabela do sistema.
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.
Para perguntas comuns sobre eventos de ficheiro, consulte FAQ sobre eventos de ficheiros.
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 monitorizada tem um <catalog.schema.table> com o nome totalmente qualificado da tabela para a qual pretende os dados. Se houver apenas uma tabela a ser monitorizada no acionador, é apresentado 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.
- Pode ser criado um máximo de 1.000 gatilhos de atualização de tabela em objetos OpenSharing ou tabelas do sistema por workspace.
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 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 gatilhos para vistas contendo dependências não suportadas continua a ser bem-sucedida, mas nenhuma execução de tarefas é acionada quando uma dependência não suportada é 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 é possível usá-la num gatilho de atualização de tabela. De forma semelhante, um trigger com duas vistas, cada uma das quais depende de 6 tabelas, é contabilizado como 12 tabelas.
Existe um limite separado de 10 visualizações dependentes por visualização monitorizada.
- Por exemplo, se uma vista depende de outras 11 vistas, não é possível usá-la num gatilho de atualização de tabela, mesmo que isso não quebre a regra das 10 tabelas por trigger.