Compartilhar via


Monitorar as exibições materializadas no Databricks SQL

Este artigo descreve como monitorar e consultar dados de atualização sobre uma exibição materializada no DATAbricks SQL.

Exibir os detalhes de uma única exibição materializada

Você pode exibir os detalhes de uma única exibição materializada usando o Gerenciador de Catálogos ou programaticamente com a DESCRIBE EXTENDED operação. Você também pode consultar o log de eventos para obter detalhes do histórico de atualização de uma exibição materializada.

Exibir detalhes no Gerenciador de Catálogos

Você pode acessar informações sobre sua exibição materializada exibindo-a no Gerenciador de Catálogos. No Gerenciador de Catálogos, você pode ver o status da última atualização e quaisquer agendas de atualização criadas no SQL. Para obter detalhes sobre os agendamentos criados no SQL, consulte CREATE MATERIALIZED VIEW.

O Explorador de Catálogos mostra detalhes para cada exibição materializada em um painel do lado direito, incluindo:

  1. Estado de atualização atual e tempo da última execução. Para ver mais detalhes sobre a atualização, incluindo a duração da execução, quaisquer erros detalhados, bem como o tipo de atualização (incluindo se a exibição materializada foi totalmente ou incrementalmente atualizada e por quê), clique em Ver detalhes de atualização.
  2. Agendamento de atualização. Se o modo de exibição materializado tiver um agendamento definido via SQL, o agendamento será mostrado. Para atualizar a agenda, use ALTER MATERIALIZED VIEW.
  3. Etiquetas. Para adicionar marcas personalizadas, clique em Adicionar marcas. As tags não são usadas automaticamente para atribuir custos, mas você pode manualmente criar uma consulta para conectar tags personalizadas aos seus custos. Para obter detalhes, consulte Atribuir custos ao SQL Warehouse com tags personalizadas.

Há propriedades da exibição materializada que não estão disponíveis no Gerenciador de Catálogos. Para essas propriedades ou para obter as informações programaticamente, você pode usar o DESCRIBE EXTENDED comando.

Exibir detalhes com DESCRIBE EXTENDED

Você pode exibir detalhes sobre uma exibição materializada programaticamente usando o DESCRIBE EXTENDED comando. Isso inclui detalhes além do que você obtém do Gerenciador de Catálogos. Elas incluem:

  • O status da atualização concluída mais recente.

  • O cronograma de atualização.

  • As colunas da exibição materializada.

  • O tipo de atualização da exibição materializada (não disponível no Gerenciador de Catálogos).

  • O tamanho dos dados da exibição materializada, em bytes totais (não disponível no Explorador de Catálogo).

  • O local de armazenamento da exibição materializada (não disponível no Gerenciador de Catálogos).

  • Algumas informações só são incluídas no resultado quando habilitadas:

    • Colunas de agrupamento, se habilitadas.
    • Se os vetores de exclusão estão habilitados (mostrados somente quando true).
    • Se o acompanhamento de linhas estiver habilitado (somente mostrado quando true).
-- As table:
DESCRIBE TABLE EXTENDED sales;

-- As a single JSON object:
DESCRIBE TABLE EXTENDED sales AS JSON;

Consultando o log de eventos programaticamente

Para obter detalhes sobre o histórico de atualização de uma visão materializada, ou detalhes durante a atualização, você pode consultar programaticamente o log de eventos.

Como proprietário do pipeline, você pode criar uma visualização para permitir que outras pessoas consultem o log de eventos do pipeline. A consulta a seguir cria uma exibição que outras pessoas podem usar para consultar o log de eventos. Essa consulta usa a TABLE função de valor para consultar a tabela de log de eventos correta.

CREATE VIEW my_event_log_view AS
  SELECT *
  FROM event_log(TABLE(<catalog_name>.<schema_name>.<mv_name>));

Para consultar a visão de log de eventos, use uma consulta como a seguinte.

SELECT *
  FROM my_event_log_view
  WHERE event_type = "update_progress"
  ORDER BY timestamp desc;

Para consultar o log de eventos diretamente como proprietário do pipeline, você não precisa criar uma visualização. Você pode usar a TABLE função de valor e consultar os dados diretamente, como a consulta de exemplo a seguir.

SELECT *
  FROM event_log(TABLE(<catalog_name>.<schema_name>.<mv_name>))
  WHERE event_type = "update_progress"
  ORDER BY timestamp desc;

Para obter uma lista completa de consultas de exemplo usando o log de eventos, consulte exemplos básicos de consulta.

Monitorar execuções de exibição materializadas

Você pode monitorar as execuções de pipeline no seu espaço de trabalho, usando a página Trabalhos & Pipelines, a página Histórico de Consultas ou, programaticamente, consultando o log de eventos.

Exibir todas as execuções de exibição materializadas na interface do usuário

Se você usar a página Trabalhos &Pipelines para monitorar o status de diferentes trabalhos de orquestração em seu workspace, também poderá acompanhar todas as exibições materializadas e tabelas de streaming criadas lá. Cada visão materializada criada no Databricks SQL tem um pipeline que a sustenta. Para ver todas as visões materializadas e tabelas de streaming às quais você tem acesso:

  1. Clique no ícone de Fluxos de Trabalho.Botão de Trabalhos & Pipelines no lado esquerdo do espaço de trabalho.
  2. Clique na alternância Pipelines para filtrar sua exibição apenas para pipelines.
  3. Clique no botão Tipo de pipeline e selecione MV/ST para filtrar somente pipelines criados pelo Databricks SQL.
  4. Clique no filtro Acessível por mim para mostrar todos os pipelines aos quais você tem acesso.

Você poderá ver todas as exibições materializadas e tabelas de streaming criadas em sua organização, incluindo uma exibição resumida dos status de execuções recentes. Clicar no nome de um pipeline abre a página de detalhes do monitoramento, fornecendo mais informações. Para saber mais sobre a página de detalhes do monitoramento de pipeline, confira Solucionar problemas de uma atualização com falha.

Exibir execuções usando o histórico de consultas

Se você estiver mais familiarizado com a guia Histórico de Consultas , também poderá usá-la para exibir todas as execuções anteriores de todas as consultas em que você tenha pelo menos CAN VIEW acesso ao SQL Warehouse em execução. Você pode usar a página de histórico de consultas para acessar detalhes e perfis de consulta que podem ajudá-lo a identificar consultas com baixo desempenho e gargalos no pipeline utilizado para executar as atualizações da tabela de streaming. Para obter uma visão geral do tipo de informação disponível para históricos de consulta e perfis de consulta, consulte Histórico de consultas e Perfil de consulta.

Importante

Esse recurso está em Visualização Pública. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.

Todas as instruções relacionadas a exibições materializadas aparecem no histórico de consultas. Você pode usar o filtro suspenso Instrução para selecionar qualquer comando e inspecionar as consultas relacionadas. Todas as instruções CREATE são seguidas por uma instrução REFRESH que é executada de modo assíncrono em um pipeline. Normalmente, as instruções REFRESH incluem planos de consulta detalhados que fornecem insights sobre como otimizar o desempenho.

Para acessar as declarações REFRESH na interface do usuário do histórico de consultas, siga os passos a seguir:

  1. Clique no ícone Histórico.Histórico de consultas na barra lateral esquerda.
  2. Selecione a caixa de seleção REFRESH do filtro suspenso Instrução.
  3. Clique no nome da instrução de consulta para exibir os detalhes resumidos, como a duração da consulta e as métricas agregadas.
  4. Clique em Ver o perfil de consulta para abrir o perfil de consulta. Para obter detalhes sobre como navegar no perfil de consulta, consulte Perfil de consulta.
  5. Opcionalmente, use os links na seção Fonte da Consulta para abrir a consulta ou o pipeline relacionado.

Consulte CREATE MATERIALIZED VIEW.

Solucionar problemas de falha na atualização

Você pode encontrar falhas nas atualizações de exibições materializadas (ou tabelas de streaming) examinando a lista Jobs & Pipelines. Para solucionar problemas de uma atualização com falha, use a página de detalhes de monitoramento do pipeline ou o log de eventos.

Para solucionar problemas de uma atualização que está cheia quando você acredita que deve ser incremental, primeiro verifique se você tem o controle de linha habilitado para qualquer tabela Delta de origem. Para obter outros detalhes sobre a atualização incremental, consulte Suporte para atualização incremental de exibição materializada.

Você pode obter detalhes adicionais na página de monitoramento do pipeline ou consultando o log de eventos de forma programática.

Usando a página de monitoramento de fluxo

Para obter mais detalhes sobre uma exibição materializada (ou tabela de streaming) que falhou, você pode usar a página de monitoramento do pipeline para depurar os problemas. Cada visão materializada tem um pipeline que a suporta. A página de monitoramento da linha de produção inclui informações, como:

  • O status da última execução e o histórico de execuções.
  • A duração da última execução.
  • Se a visão materializada foi atualizada totalmente ou incrementalmente. Para obter mais detalhes sobre como configurar sua visão materializada para renovar-se de forma incremental, consulte Suporte para atualização incremental de visão materializada.
  • ** O log de eventos para uma depuração mais detalhada. Caso sua exibição materializada não tenha sido atualizada ou tenha tido outros problemas, clique no painel de problemas para exibir os logs com mais detalhes.

Para solucionar problemas da visão materializada:

  1. Na sua área de trabalho, clique no ícone Fluxos de Trabalho.Botão Trabalhos & Pipelines na barra de navegação à esquerda.
  2. Clique no nome do pipeline na lista.
  3. Se a atualização não tiver sido executada, a interface do usuário mostrará um erro (ou uma lista de erros) no painel inferior.
  4. Clique no botão para Exibir Logs ou clique no painel de problemas para exibir os erros com mais detalhes.
  5. Isso abre a interface do usuário do log de eventos. Cada erro tem uma mensagem de alto nível e um resumo, bem como uma guia JSON com mais detalhes. Para corrigir um problema com o Assistente do Databricks, clique em Diagnosticar Erro.

Para obter mais detalhes sobre a página de monitoramento de pipeline, consulte aqui.

Consultar o histórico de atualização para uma visão materializada

O log de eventos pode ser útil para configurar painéis para monitorar o status da atualização ou a duração em todo o ambiente de trabalho, ou se você preferir o monitoramento de forma programática em vez de usar a interface do usuário. As exibições materializadas criadas com o Databricks SQL não dão suporte para salvar o log de eventos em um metastore, portanto, somente o proprietário da exibição materializada pode consultar o log de eventos diretamente.

Para exibir o status das REFRESH operações em uma exibição materializada, incluindo atualizações atuais e passadas, consulte o log de eventos do pipeline:

SELECT *
FROM event_log(TABLE(<fully-qualified-table-name>))
WHERE event_type = "update_progress"
ORDER BY timestamp desc;

Substitua <fully-qualified-table-name> pelo nome totalmente qualificado da exibição materializada, incluindo o catálogo e o esquema. Se você não for o proprietário do pipeline, talvez seja necessário inicialmente criar uma visualização para consultar o log de eventos. Consulte Consultando o log de eventos programaticamente.

Consultar o tipo de atualização que ocorreu para uma exibição materializada

Algumas consultas podem ser atualizadas incrementalmente. Se uma atualização incremental não puder ser executada, uma atualização completa será executada.

Para ver o tipo de atualização de uma exibição materializada, consulte o log de eventos:

SELECT timestamp, message
FROM event_log(TABLE(my_catalog.my_schema.sales))
WHERE event_type = 'planning_information'
ORDER BY timestamp desc;

Saída de exemplo para este comando:

    • carimbo de data/hora
    • mensagem
    • 2025-03-21T22:23:16.497+00:00
    • Flow 'sales' has been planned in :re[LDP] to be executed as ROW_BASED.

Atribuir custos ao SQL Warehouse com tags personalizadas

As tags não são vinculadas automaticamente aos registros de cobrança, mas você pode associá-las manualmente às suas informações de cobrança em uma consulta.

Depois de adicionar tags a cada view materializada (ou tabela de streaming) com o Catalog Explorer, você pode monitorar os custos de views materializadas juntando as tabelas do sistema table_tags e billing. Esta é uma consulta de exemplo para recuperar registros de cobrança para todas as exibições materializadas e tabelas de streaming criadas com o DATAbricks SQL e acrescentar marcas no nível da tabela:

SELECT
  u.*,
  tag_info.tags
FROM
  system.billing.usage u
LEFT JOIN (
  SELECT
    t.catalog_name,
    t.schema_name,
    t.table_name,
    collect_list(named_struct('tag_name', t.tag_name, 'tag_value', t.tag_value)) AS tags
  FROM
    main.information_schema.table_tags t
  GROUP BY
    t.catalog_name,
    t.schema_name,
    t.table_name
) tag_info
  ON tag_info.catalog_name = u.usage_metadata.uc_table_catalog
  AND tag_info.schema_name = u.usage_metadata.uc_table_schema
  AND tag_info.table_name = u.usage_metadata.uc_table_name
  WHERE usage_metadata.uc_table_name is not null;

Você pode usar essa mesma ideia para unir marcas de coluna da tabela column_tags.