Pular para o conteúdo principal

Monitoramento da qualidade dos dados

info

Beta

Esse recurso está na versão beta.

Esta página descreve o que é o monitoramento da qualidade dos dados, o que ele monitora e como usá-lo. O monitoramento da qualidade dos dados era anteriormente chamado de detecção de anomalia.

Para fornecer feedback sobre o monitoramento da qualidade dos dados, email lakehouse-monitoring-feedback@databricks.com.

O que é monitoramento da qualidade dos dados?

Usando o monitoramento de qualidade de dados, você pode monitorar facilmente a qualidade de dados de todas as tabelas em um esquema. O Databricks utiliza inteligência de dados para avaliar automaticamente a qualidade dos dados, avaliando especificamente o frescor e a integridade de cada tabela. Os proprietários dos dados têm acesso à tabela de registro, o que lhes permite identificar e resolver rapidamente anomalias em todo o metastore. Os resultados no nível de catálogo, esquema e tabela estão disponíveis no Catalog Explorer ou no Governance Hub (visualização).

O monitoramento da qualidade dos dados não modifica nenhuma das tabelas que monitora, nem adiciona sobrecarga a nenhum trabalho que preencha essas tabelas.

Requisitos

  • Workspace habilitado para o Unity Catalog.
  • Usuários existentes precisam de compute serverless habilitada. Para obter instruções, consulte Conectar-se à compute serverless.
  • Para ativar o monitoramento da qualidade dos dados em um esquema, o senhor deve ter privilégios de gerenciar SCHEMA ou gerenciar CATALOG no esquema do catálogo.

Como funciona o monitoramento da qualidade dos dados?

Databricks cria um Job em segundo plano que monitora as tabelas quanto à atualização e integridade . O Databricks usa varredura inteligente para determinar quando varrer tabelas.

Frescor refere-se à data em que uma tabela foi atualizada. O monitoramento da qualidade dos dados analisa o histórico de confirmações em uma tabela e cria um modelo por tabela para prever o momento da próxima commit. Se uma commit estiver excepcionalmente atrasada, a tabela será marcada como obsoleta.

nota

O frescor do evento, que é baseado em colunas de tempo do evento e latência de ingestão, estava disponível apenas para usuários legados de monitoramento de qualidade de dados. Na versão atual, o frescor do evento não é suportado.

A integridade se refere ao número de linhas que se espera que sejam gravadas na tabela nas últimas 24 horas. O monitoramento da qualidade dos dados analisa a contagem histórica de linhas e, com base nesses dados, prevê um intervalo do número esperado de linhas. Se o número de linhas confirmadas nas últimas 24 horas for menor que o limite inferior desse intervalo, uma tabela será marcada como incompleta.

Ativar o monitoramento da qualidade dos dados em um esquema

Para ativar o monitoramento da qualidade dos dados em um esquema, navegue até o esquema no Unity Catalog.

  1. Na página do esquema, clique em Details (Detalhes ) tab.

    Detalhes tab para a página do esquema no Catalog Explorer.

  2. Clique no botão de alternância do monitoramento da qualidade dos dados para ativá-lo.

    Seletor de monitor de qualidade de dados ativado.

  3. Uma varredura é iniciada. Databricks verifica automaticamente cada tabela na mesma frequência em que é atualizada, fornecendo percepções atualizadas sem exigir configuração manual para cada tabela. Na verificação inicial de esquemas habilitados antes de 24 de setembro de 2025, Databricks executou o monitor de histórico de dados ("backtesting") para verificar a qualidade de suas tabelas como se o monitoramento de qualidade de dados tivesse sido habilitado em seu esquema duas semanas atrás.

  4. Quando a verificação é concluída, os problemas de qualidade detectados são registrados na tabela de registro de saída com percepções preenchidas na interface do usuário. Você pode acessar a interface do usuário a qualquer momento clicando em Ver resultados ao lado do botão de alternância Monitoramento da qualidade de dados .

Interface de monitoramento de qualidade de dados

important

Em 7 de outubro de 2025, a Databricks lançou uma nova versão do monitoramento de qualidade de dados. Os esquemas habilitados para monitoramento de qualidade de dados nessa data ou depois têm uma nova interface de usuário de resultados.

Para informações sobre a nova UI, consulte UI de incidentes de monitoramento de qualidade de dados.

Para informações sobre a UI legada, consulte Painel de monitoramento de qualidade de dados (legado).

A Databricks recomenda que você habilite a nova versão para todos os seus esquemas existentes.

Para habilitar a nova versão, use a alternância de monitoramento de qualidade de dados para desabilitar o recurso e, em seguida, alterne novamente para habilitá-lo novamente.

Incidentes de monitoramento de qualidade de dados UI

Depois de habilitar o monitoramento de qualidade de dados em um esquema, você pode clicar em "Ver resultados" para abrir a página de resultados. Você também pode acessar a view de incidentes no Catalog Explorer ou no Governance Hub (visualização).

A interface do usuário de incidentes contém um catálogo e um menu suspenso de esquema. Quando você seleciona um catálogo, o dropdown de esquemas é preenchido com esquemas naquele catálogo que têm o monitoramento de qualidade de dados habilitado.

  • Se você tiver privilégios gerenciar ou SELECT no catálogo, poderá view incidentes no nível do catálogo.
  • Para view incidentes de um esquema específico, você também deve ter privilégios gerenciar ou SELECT nesse esquema. Selecionar um esquema mostra incidentes somente para aquele esquema.

A interface do usuário tem duas seções principais:

  1. Seção Resumo : mostra a qualidade geral dos dados para o escopo selecionado, incluindo a porcentagem de tabelas íntegras e a porcentagem de esquemas/tabelas monitorados atualmente.
  2. Seção de incidentes : lista incidentes em todas as tabelas monitoradas no escopo selecionado. Você pode filtrar incidentes em tabelas de alto impacto determinadas usando análise de impacto posterior.

Cada registro de incidente inclui os seguintes detalhes:

  • Motivo : Se a mesa está insalubre devido ao frescor ou à completude.
  • Desde : O registro de data e hora em que o primeiro incidente foi detectado.
  • Impacto : Uma medida qualitativa do impacto downstream ( alto , médio ou baixo ), com base no número de tabelas e consultas downstream afetadas.
  • Causa raiz : informações sobre o trabalho upstream que está contribuindo para o problema (consulte Resultados de logs de revisão para obter detalhes).
  • Revisão : Um link para a página de qualidade da tabela para informações mais detalhadas sobre status e tendências.

Interface de incidentes mostrando resumo, incidentes importantes e todas as guias de incidentes.

Painel de monitoramento de qualidade de dados (legado)

nota

O painel de monitoramento de qualidade de dados estava disponível apenas para usuários legados. Na versão atual, use a interface do usuário de incidentes de monitoramento de qualidade de dados.

A primeira execução do monitor de qualidade de dados cria um painel para resumir resultados e tendências derivados da tabela de registro. O painel é preenchido automaticamente com percepções para o esquema digitalizado. Um único painel é criado por workspace neste caminho: /Shared/Databricks Quality Monitoring/Data Quality Monitoring.

Visão geral da qualidade

A Visão geral da qualidade tab mostra um resumo do status de qualidade mais recente das tabelas em seu esquema com base na avaliação mais recente.

Para começar, o senhor deve inserir a tabela de registro do esquema que deseja analisar para preencher o painel.

A seção superior do painel mostra uma visão geral dos resultados da verificação.

Resumo do esquema do monitor de qualidade dos dados na Visão geral da qualidade tab do Dashboard.

Abaixo, o resumo é uma tabela que lista os incidentes de qualidade por impacto. Todas as causas raiz identificadas são exibidas na coluna root_cause_analysis.

Incidentes de qualidade por impacto na Visão Geral da Qualidade tab do Dashboard.

abaixo a tabela de incidentes de qualidade é uma tabela de tabelas estáticas identificadas que não são atualizadas há muito tempo.

Detalhes da qualidade da tabela

A interface do usuário Detalhes de qualidade da tabela permite que você se aprofunde nas tendências e analise tabelas específicas no seu esquema. Você pode acessar essa view de várias maneiras:

  • Na interface do usuário de incidentes (nova experiência), clicando no link de revisão na lista de incidentes.
  • No Painel de monitoramento (painel antigo Lakeview ), clicando no nome da tabela na tab Visão geral da qualidade.
  • No visualizador da tabela UC , visitando a tab Qualidade na página da tabela.

Todas as opções levam você para a mesma view Detalhes de qualidade da tabela para a tabela selecionada.

Em uma tabela, a interface do usuário mostra resumos de cada verificação de qualidade da tabela, com gráficos de valores previstos e observados em cada registro de data e hora da avaliação. O gráfico graficar resulta da última 1 semana de dados.

UI de detalhes de qualidade da tabela para monitor de qualidade de dados.

Se a tabela falhar nas verificações de qualidade, a interface do usuário também exibirá qualquer trabalho upstream que tenha sido identificado como a causa raiz.

Detalhes da qualidade da tabela Tabela de causas raiz da interface do usuário.

Configurar alerta

Para configurar um alerta Databricks SQL na tabela de resultados de saída, siga estas etapas na UI do alertaDatabricks.

important

Por default, somente administradores account podem acessar a tabela do sistema system.data_quality_monitoring.table_results. Se outros usuários precisarem configurar o alerta, certifique-se de conceder o acesso apropriado.

  1. Configure a consulta para o alerta:

    SQL
    WITH rounded_data AS (
    SELECT
    DATE_TRUNC('HOUR', event_time) AS evaluated_at,
    CONCAT(catalog_name, '.', schema_name, '.', table_name) AS full_table_name,
    status,
    MAX(downstream_impact.num_queries_on_affected_tables) AS impacted_queries,
    MAX(freshness.commit_freshness.predicted_value) AS commit_expected,
    MAX(freshness.commit_freshness.last_value) AS commit_actual,
    MAX(completeness.daily_row_count.min_predicted_value) AS completeness_expected,
    MAX(completeness.daily_row_count.last_value) AS completeness_actual
    FROM system.data_quality_monitoring.table_results
    GROUP BY ALL
    )
    SELECT
    evaluated_at,
    full_table_name,
    status,
    commit_expected,
    commit_actual,
    completeness_expected,
    completeness_actual,
    impacted_queries
    FROM rounded_data
    WHERE
    evaluated_at >= current_timestamp() - INTERVAL 6 HOURS
    -- enter the minimum number of table violations before the alert is triggered
    AND impacted_queries > :min_tables_affected
    AND status = 'Unhealthy';
nota

Para o trabalho beta legado, a configuração de alerta existente deve substituir system.data_quality_monitoring.table_results por <catalog>.<schema>._quality_monitoring_summary.

  1. Configure a condição de alerta:

    Configurar a condição do gatilho

  2. Personalize o email padrão:

    Html
    <h4>The following tables are failing quality checks in the last hour</h4>

    <table>
    <tr>
    <td>
    <table>
    <tr>
    <th>Table</th>
    <th>Expected Staleness</th>
    <th>Actual Staleness</th>
    <th>Expected Row Volume</th>
    <th>Actual Row Volume</th>
    <th>Impact (queries)</th>
    </tr>

    {<a id='QUERY_RESULT_ROWS'/>}
    <tr>
    <td>{{full_table_name}}</td>
    <td>{{commit_expected}}</td>
    <td>{{commit_actual}}</td>
    <td>{{completeness_expected}}</td>
    <td>{{completeness_actual}}</td>
    <td>{{impacted_queries}}</td>
    </tr>

    {{/QUERY_RESULT_ROWS}}
    </table>
    </td>
    </tr>
    </table>

Agora, você tem um alerta que é acionado com base no impacto posterior do problema de qualidade, ajudando a depurar a tabela que acionou o alerta.

Desativar o monitoramento da qualidade dos dados

Para desabilitar o monitoramento da qualidade dos dados, clique no botão Monitoramento da qualidade dos dados para desabilitá-lo. Desabilitar o monitoramento da qualidade dos dados interrompe a verificação de tabelas no esquema em busca de problemas de qualidade.

Seletor de monitoramento da qualidade dos dados desativado.

Limitação

O monitoramento da qualidade dos dados não suporta o seguinte:

  • visualização ou visualização materializada.
  • A determinação da integridade não leva em conta account métricas como a fração de nulos, valores zero ou NaN.

Avançado

Revisão dos resultados dos registros

Por default, os resultados da verificação de monitoramento da qualidade dos dados são armazenados na tabela system.data_quality_monitoring.table_results . Somente administradores account podem acessar esta tabela e devem conceder acesso a outros conforme necessário. O monitoramento de qualidade de dados utiliza armazenamentodefault para armazenar os resultados de detecção de anomalia. Você não será cobrado pelo armazenamento.

important

A tabela de resultados system.data_quality_monitoring.table_results contém todos os resultados em todo o metastore e inclui valores de amostra de tabelas em cada catálogo. Tenha cuidado ao conceder acesso a esta tabela.

Cada linha na tabela de resultados corresponde a uma única tabela no esquema que foi examinado.

A tabela tem o seguinte esquema:

Nome da coluna

Conteúdo (para o tipo de dados struct)

Tipo de dados

Descrição

Dados de exemplo

event_time

carimbo de data/hora

Horário em que a linha foi gerada.

2025-06-27T12:00:00

catalog_name

string

Nome do catálogo. Usado para identificar a tabela.

main

schema_name

string

Nome do esquema. Usado para identificar a tabela.

default

table_name

string

Nome da tabela. Usado para identificar a tabela.

events

catalog_id

string

ID estável para o catálogo.

3f1a7d6e-9c59-4b76-8c32-8d4c74e289fe

schema_id

string

ID estável para o esquema.

3f1a7d6e-9c59-4b76-8c32-8d4c74e289fe

table_id

string

ID estável para a tabela.

3f1a7d6e-9c59-4b76-8c32-8d4c74e289fe

status

string

Status de saúde consolidado no nível da tabela. " Não saudável " se algum cheque ou grupo não for saudável.

Healthy, Unhealthy, Unknown

freshness

struct

Verificações de frescor.

status

string

Status geral de frescor.

Unhealthy

commit_freshness

struct

confirmar os resultados da verificação de frescor.

completeness

struct

Resultados da verificação de integridade.

status

string

Status da verificação de integridade.

Unhealthy

total_row_count

struct

Número total de linhas na tabela ao longo do tempo.

daily_row_count

struct

Número de linhas adicionadas a cada dia.

downstream_impact

struct

Resumo do impacto downstream com base no gráfico de dependência.

impact_level

int

Indicador de gravidade (0 = nenhum, 1 = baixo, 2 = médio, 3 = alto, 4 = muito alto).

2

num_downstream_tables

int

Número de tabelas downstream afetadas.

5

num_queries_on_affected_tables

int

Número de execuções de consultas em tabelas downstream afetadas nos últimos 30 dias.

120

root_cause_analysis

struct

informações sobre o trabalho upstream que contribui para o problema.

upstream_jobs

matriz

Metadados para cada trabalho upstream.

commit_freshness estrutura de matriz

A estrutura commit_freshness contém o seguinte:

Nome do item

Tipo de dados

Descrição

Dados de exemplo

status

string

Status da verificação de atualização do commit.

Unhealthy

error_code

string

Mensagem de erro encontrada durante a verificação.

FAILED_TO_FIT_MODEL

last_value

carimbo de data/hora

Carimbo de data e hora do último commit.

2025-06-27T11:30:00

predicted_value

carimbo de data/hora

Hora prevista em que a tabela deveria ter sido atualizada.

2025-06-27T11:45:00

Estrutura de matriz total_row_count e daily_row_count

As estruturas total_row_count e daily_row_count contêm o seguinte:

Nome do item

Tipo de dados

Descrição

Dados de exemplo

status

string

Status do cheque.

Unhealthy

error_code

string

Mensagem de erro encontrada durante a verificação.

FAILED_TO_FIT_MODEL

last_value

int

Número de linhas observadas nas últimas 24 horas.

500

min_predicted_value

int

Número mínimo esperado de linhas nas últimas 24 horas.

10

max_predicted_value

int

Número máximo esperado de linhas nas últimas 24 horas.

1000

upstream_jobs estrutura de matriz

A estrutura da matriz mostrada na coluna upstream_jobs é mostrada na tabela a seguir:

Nome do item

Tipo de dados

Descrição

Dados de exemplo

job_id

string

Job ID.

12345

workspace_id

string

ID do espaço de trabalho.

6051921418418893

job_name

string

Job nome de exibição.

daily_refresh

last_run_status

string

Status da execução mais recente.

SUCCESS

run_page_url

string

URL da página de execução do trabalho Databricks.

https://.../runs/123

Informações sobre o impacto downstream

Na tabela de resultados de registros, a coluna downstream_impact é uma struct com os seguintes campos:

campo

Tipo

Descrição

impact_level

int

Valor inteiro entre 1 e 4 indicando a gravidade do problema de qualidade dos dados. Valores mais altos indicam maior interrupção.

num_downstream_tables

int

Número de tabelas downstream que podem ser afetadas pelo problema identificado.

num_queries_on_affected_tables

int

Número total de consultas que fizeram referência às tabelas afetadas e downstream nos últimos 30 dias.

Definir parâmetros para avaliação de frescor e integridade (legado)

A partir de 21 de julho de 2025, a configuração dos parâmetros de trabalho não será mais suportada para novos clientes. Caso seja necessário configurar as definições da tarefa, entre em contato com Databricks.

Para editar os parâmetros que controlam o trabalho, como a frequência de execução do trabalho ou o nome da tabela de resultados de logs, o senhor deve editar os parâmetros do trabalho na tarefa tab da página do trabalho.

Página de trabalhos mostrando o trabalho de monitoramento da qualidade dos dados.

As seções a seguir descrevem configurações específicas. Para obter informações sobre como definir os parâmetros de tarefa, consulte Configurar parâmetros de tarefa.

programação e notificações

Para personalizar a programação do trabalho ou para configurar notificações, use as configurações da programação & Triggers na página do trabalho. Consulte Automatização de trabalhos com programas e acionadores.

Nome da tabela de registro

Para alterar o nome da tabela de registro ou salvar a tabela em um esquema diferente, edite o parâmetro Job tarefa logging_table_name e especifique o nome desejado. Para salvar a tabela de registro em um esquema diferente, especifique o nome completo de 3 níveis.

Personalize as avaliações freshness e completeness

Todos os parâmetros desta seção são opcionais. Em default, o monitoramento da qualidade dos dados determina limites com base em uma análise do histórico da tabela.

Esses parâmetros são campos dentro do parâmetro da tarefa metric_configs. O formato de metric_configs é uma cadeia de caracteres JSON com os seguintes valores default:

JSON
[
{
"disable_check": false,
"tables_to_skip": null,
"tables_to_scan": null,
"table_threshold_overrides": null,
"table_latency_threshold_overrides": null,
"static_table_threshold_override": null,
"event_timestamp_col_names": null,
"metric_type": "FreshnessConfig"
},
{
"disable_check": true,
"tables_to_skip": null,
"tables_to_scan": null,
"table_threshold_overrides": null,
"metric_type": "CompletenessConfig"
}
]

Os parâmetros a seguir podem ser usados para as avaliações freshness e completeness.

Nome do campo

Descrição

Exemplo

tables_to_scan

Somente as tabelas especificadas são digitalizadas.

["table_to_scan", "another_table_to_scan"]

tables_to_skip

As tabelas especificadas são ignoradas durante a verificação.

["table_to_skip"]

disable_check

Scan não é execução. Use esse parâmetro se quiser desativar somente o escaneamento freshness ou somente o escaneamento completeness.

true, false

Os parâmetros a seguir se aplicam somente à avaliação freshness:

Nome do campo

Descrição

Exemplo

event_timestamp_col_names

Lista de colunas de carimbo de data/hora que as tabelas em seu esquema podem ter. Se uma tabela tiver uma dessas colunas, ela será marcada como Unhealthy se o valor máximo dessa coluna for excedido. O uso desse parâmetro pode aumentar o tempo e o custo da avaliação.

["timestamp", "date"]

table_threshold_overrides

Um dicionário que consiste em nomes de tabelas e limites (em segundos) que especificam o intervalo máximo desde a última atualização da tabela antes de marcar uma tabela como Unhealthy.

{"table_0": 86400}

table_latency_threshold_overrides

Um dicionário que consiste em nomes de tabelas e limites de latência (em segundos) que especificam o intervalo máximo desde o último registro de data e hora na tabela antes de marcar uma tabela como Unhealthy.

{"table_1": 3600}

static_table_threshold_override

Quantidade de tempo (em segundos) antes de uma tabela ser considerada estática (ou seja, uma que não está mais atualizada).

2592000

O parâmetro a seguir se aplica somente à avaliação completeness:

Nome do campo

Descrição

Exemplo

table_threshold_overrides

Um dicionário que consiste em nomes de tabelas e limites de volume de linhas (especificados como números inteiros). Se o número de linhas adicionadas a uma tabela nas últimas 24 horas for menor que o limite especificado, a tabela será marcada como Unhealthy.

{"table_0": 1000}