Dados de perfil

Concluído(a)

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.

O diagrama explica a geração de estatísticas resumidas usando o SQL.

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.

Diagrama explica como usar o perfilamento de dados no Unity Catalog.

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:

  1. Navegue até sua tabela no Gerenciador de Catálogos.
  2. Selecione a guia Qualidade .
  3. 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.
  4. Na caixa de diálogo Monitoramento de Qualidade de Dados , no campo Criação de perfil de dados , selecione Configurar.
  5. 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.