Monitoramento da qualidade dos dados
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 da qualidade dos dados, o senhor pode monitorar facilmente a qualidade dos dados de todas as tabelas em um esquema. A Databricks aproveita a inteligência de dados para avaliar automaticamente a qualidade dos dados, avaliando especificamente a atualidade e a integridade de cada tabela. As percepções de qualidade são preenchidas em indicadores de saúde para que os consumidores possam entender a saúde em um piscar de olhos. Os proprietários de dados têm acesso a tabelas de registro e painéis para que possam identificar rapidamente, definir alertas e resolver anomalias em um esquema inteiro.
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.
- sem servidor compute ativado. Para obter instruções, consulte Conectar-se a serverless compute .
- 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?
A Databricks monitora as tabelas ativadas para verificar se estão atualizadas e completas .
Frescura se refere ao quão recentemente 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 a hora da próxima commit. Se um commit for excepcionalmente tardio, a tabela será marcada como obsoleta. Para tabelas de séries temporais, você pode especificar colunas de horário do evento. O monitoramento da qualidade dos dados detecta, então, se a latência de ingestão dos dados, definida como a diferença entre o tempo de commit e o tempo do evento, é excepcionalmente alta.
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.
Com que frequência um monitor de qualidade de dados é executado?
Pelo site default, um monitor de qualidade de dados é executado a cada hora. Antes de examinar cada tabela, o sistema verifica se é provável que a tabela tenha sido atualizada desde a última execução. Se ainda não se espera que uma tabela tenha sido atualizada, a verificação será ignorada.
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.
-
Na página do esquema, clique em Details (Detalhes ) tab.
-
Clique no botão de alternância do monitoramento da qualidade dos dados para ativá-lo.
-
Uma tarefa " Databricks " é iniciada para verificar o esquema. Databricks verifica automaticamente cada tabela com a mesma frequência com que é atualizada, fornecendo percepções atualizadas sem a necessidade de configuração manual para cada tabela. Para a primeira execução do Job, Databricks também executa o monitor em dados históricos ("backtesting") para verificar a qualidade das suas tabelas como se o monitoramento da qualidade dos dados tivesse sido habilitado no seu esquema há duas semanas. Estes resultados são registros na tabela de registros.
-
Quando o trabalho for concluído, o senhor verá o registro dos problemas de qualidade detectados na tabela de registro de saída com percepções preenchidas no Data Quality Dashboard. O senhor pode acessar o painel a qualquer momento clicando em See results (Ver resultados ) ao lado do botão de monitoramento Data Quality (Qualidade dos dados ).
Painel de monitoramento da qualidade dos dados
A primeira execução do monitor de qualidade de dados cria um painel para resumir os resultados e as tendências derivadas da tabela de registro. A execução do trabalho exibe um botão que o senhor pode usar para acessar o painel. O painel é preenchido automaticamente com percepções para o esquema digitalizado. Um único painel é criado por workspace no seguinte 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.
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
.
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 de usuário Table Quality Details permite que você se aprofunde nas tendências e analise tabelas específicas em seu esquema. O senhor pode acessar a interface do usuário clicando nos nomes das tabelas no painel Visão geral da qualidade (veja os links clicáveis na captura de tela anterior) ou visitando a guia Qualidade no visualizador de tabelas do UC.
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.
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.
visualizar indicadores de saúde
O monitoramento da qualidade dos dados oferece aos consumidores de dados uma rápida confirmação visual da atualização dos dados das tabelas que eles usam.
Na página do esquema, em Overview (Visão geral) tab, as tabelas que passaram na verificação de atualização mais recente estão marcadas com um ponto verde. As tabelas que falharam na verificação são mostradas com um ponto laranja.
Clique no ponto para ver a hora e o status da verificação mais recente.
Como proprietário dos dados, você pode avaliar facilmente a integridade geral do seu esquema classificando as tabelas com base na qualidade. Use o menu Classificar no canto superior direito da lista de tabelas para classificar as tabelas por qualidade.
Na página da tabela, em Overview tab, um indicador de qualidade mostra o status da tabela e lista todas as anomalias identificadas na varredura mais recente.
Configurar alerta
Para configurar um alerta Databricks SQL na tabela de resultados de saída, siga estas etapas na UI do alertaDatabricks.
-
Configure a consulta para o alerta:
SQLWITH 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 <catalog>.<schema>._quality_monitoring_summary
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'; -
Configure a condição de alerta:
-
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><a href="{{dash_link}}">{{full_table_name}}</a></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, o senhor tem um alerta que é acionado com base no impacto downstream do problema de qualidade e apresenta um link para o painel que o ajuda a depurar a tabela que acionou o alerta.
Desativar o monitoramento da qualidade dos dados
Para desativar o monitoramento da qualidade dos dados, clique no botão de alternância do monitoramento da qualidade dos dados para desativá-lo. O trabalho de monitoramento da qualidade dos dados será excluído e todas as tabelas e informações de monitoramento da qualidade dos dados serão excluídas.
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.
- Indicadores de saúde para completude
- " Backtesting " para verificar se há frescor ou integridade com base em eventos
Avançado
Revisão dos resultados dos registros
Em default, os resultados da varredura de monitoramento da qualidade dos dados são armazenados na tabela system.data_quality_monitoring.table_results
. Somente os administradores do account podem acessar essa tabela e devem conceder acesso a outras pessoas, conforme necessário.
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 | Tipo de dados | Descrição | Dados de exemplo |
---|---|---|---|---|
| carimbo de data/hora | Horário em que a linha foi gerada. |
| |
| string | Nome do catálogo. Usado para identificar a tabela. |
| |
| string | Nome do esquema. Usado para identificar a tabela. |
| |
| string | Nome da tabela. Usado para identificar a tabela. |
| |
| string | ID estável para o catálogo. |
| |
| string | ID estável para o esquema. |
| |
| string | ID estável para a tabela. |
| |
| 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. |
| |
| struct | Verificações de frescor. | ||
| string | Status geral de frescor. |
| |
| confirmar os resultados da verificação de frescor. | |||
| struct | Resultados da verificação de integridade. | ||
| string | Status da verificação de integridade. |
| |
| Número total de linhas na tabela ao longo do tempo. | |||
| Número de linhas adicionadas a cada dia. | |||
| struct | Resumo do impacto downstream com base no gráfico de dependência. | ||
| int | Indicador de gravidade (0 = nenhum, 1 = baixo, 2 = médio, 3 = alto, 4 = muito alto). | 2 | |
| int | Número de tabelas downstream afetadas. | 5 | |
| int | Número de execuções de consultas em tabelas downstream afetadas nos últimos 30 dias. | 120 | |
| struct | informações sobre o trabalho upstream que contribui para o problema. | ||
| 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 |
---|---|---|---|
| string | Status da verificação de atualização do commit. |
|
| string | Mensagem de erro encontrada durante a verificação. |
|
| carimbo de data/hora | Carimbo de data e hora do último commit. |
|
| carimbo de data/hora | Hora prevista em que a tabela deveria ter sido atualizada. |
|
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 |
---|---|---|---|
| string | Status do cheque. |
|
| string | Mensagem de erro encontrada durante a verificação. |
|
| int | Número de linhas observadas nas últimas 24 horas. |
|
| int | Número mínimo esperado de linhas nas últimas 24 horas. |
|
| int | Número máximo esperado de linhas nas últimas 24 horas. |
|
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 |
---|---|---|---|
| string | Job ID. |
|
| string | ID do espaço de trabalho. |
|
| string | Job nome de exibição. |
|
| string | Status da execução mais recente. |
|
| string | URL da página de execução do trabalho Databricks. |
|
depuração informações
Na tabela de resultados de registros, a coluna additional_debug_info
fornece informações no seguinte formato:
[
<metric_name>:
actual_value: <value> ,
expectation: “actual value < [predicted_value]”
is_violated: true/false,
error_code: <error_code>
from_backtesting: true/false
...
]
Por exemplo:
{
commit_staleness:
actual_value: "31 min"
expectation: "actual_value < 1 day"
is_violated: "false"
error_code: "None"
from_backtesting: "false"
}
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 |
---|---|---|
| int | Valor inteiro entre 1 e 4 indicando a gravidade do problema de qualidade dos dados. Valores mais altos indicam maior interrupção. |
| int | Número de tabelas downstream que podem ser afetadas pelo problema identificado. |
| int | Número total de consultas que fizeram referência às tabelas afetadas e downstream nos últimos 30 dias. |
Defina parâmetros para avaliação de frescor e integridade (somente para clientes antigos)
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.
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:
[
{
"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 |
---|---|---|
| Somente as tabelas especificadas são digitalizadas. |
|
| As tabelas especificadas são ignoradas durante a verificação. |
|
| Scan não é execução. Use esse parâmetro se quiser desativar somente o escaneamento |
|
Os parâmetros a seguir se aplicam somente à avaliação freshness
:
Nome do campo | Descrição | Exemplo |
---|---|---|
| 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 |
|
| 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 |
|
| 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 |
|
| Quantidade de tempo (em segundos) antes de uma tabela ser considerada estática (ou seja, uma que não está mais atualizada). |
|
O parâmetro a seguir se aplica somente à avaliação completeness
:
Nome do campo | Descrição | Exemplo |
---|---|---|
| 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 |
|