Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar gatilhos de atualização de tabela para disparar uma execução do 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
Acionar execuções em tabelas e exibições OpenSharing e em tabelas do sistema está em Beta. Consulte 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 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. Essas tabelas podem ser tabelas gerenciadas Unity Catalog Delta e Iceberg, tabelas externas do Unity Catalog apoiadas pelo Delta Lake, exibições materializadas, tabelas de streaming e exibições ou exibições de métricas do Unity Catalog que dependem de tabelas compatíveis. Ao selecionar várias tabelas, você pode especificar se um trabalho é disparado quando qualquer uma ou todas as tabelas são atualizadas.
Você também pode configurar gatilhos em tabelas e exibições do OpenSharing e em tabelas do sistema (Beta). Consulte 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 navegação à esquerda da área de trabalho, clique em
Jobs & Pipelines .Na lista de trabalhos, clique no nome do trabalho ao qual você deseja adicionar um gatilho.
No painel direito, em Agendas & Gatilhos, clique em Adicionar gatilho.
No tipo gatilho, selecione Atualização de tabela.
Em Tabelas, adicione as tabelas que você deseja monitorar para atualizações.
Se você selecionar mais de uma tabela, configure uma opção em Acionar quando para especificar se deseja que uma tarefa seja disparada 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 acionamentos em segundos: o tempo mínimo de espera para disparar uma execução após a conclusão de uma execução anterior. As tabelas atualizadas durante esse período disparam uma execução somente após o tempo de espera expirar. O Azure Databricks aguarda esse tempo antes de disparar uma execução, mesmo se as tabelas monitoradas forem atualizadas.
- Aguarde após a última alteração em segundos: o tempo de espera para disparar uma execução após uma atualização da tabela. Atualizações de tabela adicionais durante esse período redefinem o temporizador. 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 gatilhos e aguardará o tempo definido 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, ela não disparará a execução até que pelo menos 120 segundos tenham decorrido, mesmo que uma atualização de tabela ocorra nos primeiros 60 segundos. Além disso, se uma atualização chegar em 5 segundos e depois outra em 115 segundos, a espera após a última alteração significa que uma execução não é disparada até depois de 175 segundos.
Para validar a configuração, clique em Testar gatilho.
Clique em Salvar.
Observação
Você também pode configurar os triggers de atualização de tabela da Jobs API. Adicione um trigger objeto a uma jobs/create, jobs/update, ou jobs/reset operação.
Para editar, pausar ou remover esse gatilho posteriormente, use a seção Agendas & Gatilhos do painel detalhes do trabalho . Consulte Gerenciar um gatilho existente.
Adicionar um gatilho ao OpenSharing e às tabelas do sistema
Importante
Essa funcionalidade está em Beta.
Além das tabelas locais, você pode configurar gatilhos de atualização de tabela para monitorar dados compartilhados com seu workspace por meio do OpenSharing e tabelas do sistema. Por exemplo, você pode disparar um trabalho sempre que novos registros de cobrança chegam em uma tabela do sistema ou sempre que um provedor atualiza uma tabela compartilhada.
Você pode disparar nos seguintes objetos compartilhados:
- Tabelas do OpenSharing
- Visualizações do OpenSharing
- Visualizações de métricas do OpenSharing
- Exibições materializadas do OpenSharing
- Tabelas de streaming do OpenSharing
- Tabelas do sistema
Examine as limitações de gatilho do OpenSharing e siga as etapas em Adicionar um gatilho de atualização de tabela e selecione as tabelas compartilhadas, exibições ou tabelas do sistema que você deseja monitorar.
Limitações de acionamento do OpenSharing
Esse recurso dá suporte apenas ao Databricks-to-Databricks OpenSharing. O compartilhamento Databricks-to-Open não é compatível.
Para acionar em tabelas e exibições compartilhadas, a versão beta deve ser habilitada nos lados do destinatário e do provedor:
- Gatilhos de atualização de tabela no OpenSharing (Destinatário): uma versão beta no nível do workspace, habilitada no workspace do destinatário em que o gatilho é criado.
- Gatilhos de atualização de tabela no OpenSharing (Provedor): uma versão beta no nível da conta, habilitada na conta do provedor que possui os dados compartilhados.
Para tabelas do sistema, apenas a versão beta do destinatário é necessária. Para habilitar, consulte Gerenciar Azure Databricks visualizações.
O usuário que cria o gatilho deve ter o
SELECTprivilégio na tabela do sistema ou objeto compartilhado.
Gatilhos de atualização de tabela com eventos de arquivo
Para obter melhor desempenho e escalabilidade, habilite eventos de arquivo no local externo onde as tabelas são armazenadas. Esta etapa de instalação única melhora a eficiência dos gatilhos de atualização de tabela e desbloqueia outros recursos, incluindo o Carregador Automático com mais desempenho e gatilhos de chegada de arquivo.
Quando os eventos de arquivo são habilitados, o Databricks controla 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 as tabelas estiverem no armazenamento no nível raiz do metastore, primeiro converta-as em um local externo e habilite os eventos de arquivo nesse local.
Para obter perguntas comuns sobre eventos de arquivo, consulte Perguntas frequentes sobre eventos de arquivo.
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}}- o carimbo de data/hora do commit mais recente que acionou a execução. -
{{job.trigger.table_update.`<catalog.schema.table>`.version}}- a versão de commit mais recente que iniciou a execução da tarefa.
Para commit_timestamp e version, há várias versões da referência de valor dinâmico. Cada tabela monitorada tem um <catalog.schema.table> com o nome totalmente qualificado da tabela da qual você deseja obter 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 falhas em gatilhos de atualização de tabela
Para ser notificado se um gatilho de atualização de tabela falhar na avaliação, configure notificações por email ou destino do sistema em caso de falha de execução. Confira Adicionar notificações sobre um trabalho.
Limitações
Os gatilhos de atualização de tabela têm as seguintes limitações:
- Você pode selecionar até 10 tabelas gerenciadas ou Delta para cada gatilho.
- Para tabelas que residem em locais sem eventos de arquivo, um máximo de 1.000 trabalhos pode ser configurado com um gatilho de atualização de tabela.
- No máximo, 1.000 gatilhos de atualização de tabelas em objetos OpenSharing ou tabelas do sistema podem ser criados por espaço de trabalho.
Gatilhos em exibições do Unity Catalog têm as seguintes limitações adicionais:
Os gatilhos de atualização de tabela só dão suporte ao monitoramento de exibições ou exibições de métricas do Unity Catalog que dependem de tabelas também compatíveis com gatilhos de atualização de tabela. Em especial, as seguintes exibições não têm suporte:
- Exibições que usam
read_files(elas podem ler de uma tabela compatível que lê arquivos, mas não podem usarread_files). - Visões que dependem de tabelas que não estão no Catálogo do Unity.
- Visões que dependem de tabelas federadas.
- Exibições que usam
A criação de gatilhos para exibições que contêm dependências sem suporte ainda é bem-sucedida, mas nenhuma execução de trabalho é disparada quando uma dependência sem suporte é atualizada.
Os gatilhos de atualização de tabela monitoram alterações nas tabelas dependentes de uma exibição e consideram a exibição atualizada se qualquer tabela dependente for atualizada. Uma execução pode ser acionada por alterações de dados filtradas pela definição da exibição.
As tabelas de origem de uma exibição contam para o limite de 10 tabelas por gatilho.
- Por exemplo, se uma exibição depender de 11 tabelas, não será possível usá-la em um gatilho de atualização de tabela. Da mesma forma, um gatilho com duas exibições, cada uma dependente de 6 tabelas, conta como 12 tabelas.
Há um limite separado de 10 exibições dependentes por exibição monitorada.
- Por exemplo, se uma exibição depender de 11 outras exibições, não será possível usá-la em um gatilho de atualização de tabela, mesmo que isso não interrompa as 10 tabelas por regra de gatilho.