Dados de perfil
Antes de limpar ou transformar dados, você precisa entender o que está em suas tabelas. Criação de perfil de dados significa examinar seus conjuntos de dados para gerar estatísticas resumidas — contagens, médias, distribuições de valor e porcentagens nulas — que revelam a qualidade e a estrutura de seus dados. Essa base ajuda a identificar problemas como valores ausentes, exceções e padrões inesperados antes que eles causem problemas downstream.
Nesta unidade, você aprenderá a gerar estatísticas resumidas usando comandos SQL e o recurso de criação de perfil de dados no Azure Databricks.
Gerar estatísticas resumidas usando o SQL
O Azure Databricks fornece comandos SQL que coletam e exibem estatísticas sobre suas tabelas. Essas estatísticas ajudam o otimizador de consulta a escolher planos de execução eficientes e fornecer informações sobre as características dos dados.
Coletar estatísticas com ANALYZE TABLE
O ANALYZE TABLE comando computa estatísticas para uma tabela ou colunas específicas. Essas estatísticas incluem contagens de linhas, métricas de nível de coluna, como valores mínimos e máximos, contagens nulas e contagens de valores distintos.
-- Collect basic table statistics (row count and size)
ANALYZE TABLE sales.transactions COMPUTE STATISTICS;
-- Collect statistics for specific columns
ANALYZE TABLE sales.transactions COMPUTE STATISTICS FOR COLUMNS
transaction_id, amount, customer_id;
-- Collect statistics for all columns
ANALYZE TABLE sales.transactions COMPUTE STATISTICS FOR ALL COLUMNS;
Ao analisar uma coluna específica, você obtém métricas detalhadas:
-- View column-level statistics
DESC EXTENDED sales.transactions amount;
Isso retorna métricas incluindo valor mínimo, valor máximo, número de nulos, contagem distinta, comprimento médio da coluna e comprimento máximo da coluna.
Exibir estatísticas com DESCRIBE TABLE
O DESCRIBE TABLE EXTENDED comando exibe as estatísticas coletadas junto com os metadados da tabela:
DESCRIBE TABLE EXTENDED sales.transactions;
Você também pode usar o PySpark para recuperar metadados de tabela e gerar estatísticas resumidas:
# Generate summary statistics for numeric columns using the DataFrame API
df = spark.table("sales.transactions")
df.describe().show()
O describe() método retorna contagem, média, desvio padrão, min e máximo para colunas numéricas e de cadeia de caracteres.
A DESCRIBE TABLE EXTENDED saída inclui uma Statistics linha que mostra o tamanho da tabela em bytes e, depois de executar ANALYZE TABLE ... COMPUTE STATISTICS, a contagem de linhas. Para tabelas gerenciadas do Catálogo do Unity, a otimização preditiva é executada ANALYZE automaticamente para manter as estatísticas atuais.
Dica
Execute ANALYZE TABLE após carregamentos de dados em massa ou alterações significativas para garantir que o otimizador de consulta tenha estatísticas precisas para planejar consultas eficientes.
Usar perfilamento de dados no Catálogo Unity
Além dos comandos SQL, o Azure Databricks fornece monitoramento de qualidade de dados no Catálogo do Unity, um guarda-chuva que abrange dois recursos distintos:
- A detecção de anomalias (Visualização Pública) monitora todas as tabelas em um esquema automaticamente. Ele analisa padrões históricos para avaliar a atualidade de cada tabela (quão recentemente foi atualizada) e sua integridade (se o número esperado de linhas chegou). Você o habilita uma vez no nível do esquema no Catalog Explorer, e o Azure Databricks determina com que frequência cada tabela deve ser digitalizada. Use detecção de anomalias para uma cobertura ampla e automatizada em todas as tabelas sem necessidade de configuração por tabela.
- O perfilamento de dados oferece uma análise estatística profunda por tabela—acompanhando distribuições, porcentagens nulas, métricas de deriva e desempenho do modelo ao longo do tempo. Configure-o individualmente para cada tabela. Utilize o perfilamento de dados para suas tabelas mais críticas, nas quais você precisa de tendências históricas detalhadas.
Para o trabalho de engenharia de dados focado em limpeza e qualidade, use ambos: detecção de anomalias como um sistema de aviso antecipado em todas as tabelas e criação de perfil de dados para monitoramento aprofundado de tabelas-chave.
Entender os tipos de perfil
A criação de perfil de dados dá suporte a três tipos de análise, cada um adequado para cenários diferentes:
| Tipo de perfil | Caso de uso | Principais características |
|---|---|---|
| Instantâneo | Tabelas de uso geral | Calcula as métricas em toda a tabela com cada atualização |
| Série temporal | Tabelas com colunas de carimbo de data/hora | Rastreia métricas entre janelas de tempo para detectar tendências |
| Inferência | Tabelas de inferência de modelo de ML | Monitora entradas de modelo, previsões e precisão ao longo do tempo |
Para tarefas de engenharia de dados focadas na qualidade dos dados, os perfis de instantâneo e série temporal são mais relevantes.
Criar um perfil usando a interface do usuário
Para criar um perfil no Gerenciador de Catálogos:
- Navegue até sua tabela no Gerenciador de Catálogos.
- Selecione a guia Qualidade .
- Se a detecção de anomalias não estiver habilitada para o esquema, selecione a opção Habilitar. Se a detecção de anomalias já estiver habilitada, selecione Configurar.
- Na caixa de diálogo Monitoramento de Qualidade de Dados , no campo Criação de perfil de dados , selecione Configurar.
- Escolha o tipo de perfil e configure opções como granularidade e agendamento.
O perfil gera uma tabela de métricas de perfil com estatísticas de resumo e uma tabela de métricas de drift que acompanha as alterações de distribuição ao longo do tempo. O Azure Databricks preenche a tabela de métricas de deriva quando uma tabela de linha de base ou uma janela de tempo consecutiva está disponível.
Criar um perfil usando a API
Para acesso programático, use o SDK do Databricks. Instale ou atualize o SDK para obter a API atual:
%pip install "databricks-sdk>=0.68.0"
Em seguida, crie um perfil de instantâneo para uma tabela:
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.dataquality import Monitor, DataProfilingConfig, SnapshotConfig
w = WorkspaceClient()
# Retrieve the table ID and schema ID required by the API
table = w.tables.get(full_name="main.sales.transactions")
schema = w.schemas.get(full_name="main.sales")
w.data_quality.create_monitor(
monitor=Monitor(
object_type="table",
object_id=table.table_id,
data_profiling_config=DataProfilingConfig(
output_schema_id=schema.schema_id,
assets_dir="/Workspace/Users/user@example.com/monitoring",
snapshot=SnapshotConfig()
)
)
)
Para atualizar o perfil e atualizar as métricas:
from databricks.sdk.service.dataquality import Refresh
w.data_quality.create_refresh(
object_type="table",
object_id=table.table_id,
refresh=Refresh(object_type="table", object_id=table.table_id)
)
Interpretar os resultados do perfilamento
A criação de perfil gera métricas que ajudam você a avaliar a qualidade dos dados e identificar problemas que exigem atenção.
Principais métricas a serem examinadas
A tabela de métricas de perfil contém estatísticas para cada coluna:
| Métrica | O que revela |
|---|---|
count e num_nulls |
Integridade dos dados — porcentagens nulas altas podem indicar problemas de ingestão |
distinct_count |
Cardinalidade – valores inesperados podem sugerir problemas de qualidade de dados |
min, max, , avgstddev |
Características de distribuição – exceções ou distribuições distorcidas |
frequent_items |
Valores mais comuns – ajuda a identificar categorias ou duplicatas dominantes |
quantiles |
Distribuição de valor – útil para detectar distorção |
Detectar problemas de qualidade de dados
Ao examinar os resultados da criação de perfil, procure estes indicadores comuns:
- Percentuais nulos altos em colunas que devem ter valores
- Contagens distintas inesperadas, como identificadores exclusivos que não são exclusivos
- Intervalos de valor fora dos limites esperados, como quantidades negativas em que apenas os positivos são válidos
- Alterações de distribuição ao longo do tempo, o que pode indicar descompasso de dados
A tabela de métricas de desvio calcula testes estatísticos como o teste de Kolmogorov-Smirnov (KS) para colunas numéricas e o teste qui-quadrado para colunas categóricas. Esses testes quantificam a quantidade de distribuições alteradas.
Entender esses padrões ajuda você a criar regras apropriadas de limpeza e validação para seus pipelines de dados.