Como gerar Data Quality Rules em Copilot no Fabric
Este tutorial mostra como gerar regras de Data Quality no Copilot do Fabric para validar colunas, detetar valores nulos e identificar outliers. É útil para automatizar verificações de qualidade antes de publicar dados num Lakehouse ou Warehouse.
Pré-requisitos
- Conta com acesso ao Microsoft Fabric e permissões para abrir um Notebook ou um Dataflow Gen2.
- Dataset de exemplo carregado no OneLake ou no Lakehouse (CSV ou tabela).
- Noções básicas de SQL ou Python (nível intermédio mínimo).
Passo 1: Abrir o Copilot no contexto do dataset
Abre o ficheiro do dataset no Fabric (por exemplo, num Notebook ou Dataflow Gen2). Seleciona a vista onde estás a ver as colunas. Em seguida, abre o painel do Copilot para que as sugestões se baseiem no contexto do ficheiro aberto. Isso permite ao Copilot analisar nomes de colunas e tipos.
Passo 2: Pedir um inventário de colunas e problemas comuns
Solicita ao Copilot um inventário simples das colunas com sugestões de que verificações fazer (nulos, unicidade, formato). Pede um exemplo de regras em linguagem natural e em SQL/Python.
Prompt exemplo:
"Lista as colunas desta tabela e sugere 5 regras de Data Quality (nulos, unicidade, range, formato, outliers). Mostra regras em SQL e em Python pandas."
Passo 3: Gerar regras em SQL para executar no Warehouse
Com a saída do Copilot, copia as regras SQL geradas e adapta os nomes reais das tabelas/colunas. As regras típicas são contagens de nulos, percentagem de valores únicos, checks de formato com LIKE/REGEXP e outliers com percentis.
Exemplo SQL (ajusta table_name/column):
-- 1. Percentagem de nulos
SELECT
COUNT(*) AS total_rows,
SUM(CASE WHEN column IS NULL THEN 1 ELSE 0 END) AS null_count,
SUM(CASE WHEN column IS NULL THEN 1 ELSE 0 END)*1.0/COUNT(*) AS null_pct
FROM table_name;
-- 2. Verifica unicidade
SELECT COUNT(*) AS total_rows, COUNT(DISTINCT column) AS distinct_count
FROM table_name;
-- 3. Formato (ex.: email)
SELECT COUNT(*) AS invalid_emails
FROM table_name
WHERE column NOT LIKE '%_@__%.__%';
-- 4. Outliers (valores fora dos percentis 1% e 99%)
WITH pct AS (
SELECT
approx_percentile(column, 0.01) AS p01,
approx_percentile(column, 0.99) AS p99
FROM table_name
)
SELECT * FROM table_name, pct
WHERE column < p01 OR column > p99;
Passo 4: Gerar checks automáticos em Python (pandas) para prototipagem
Se preferires prototipar localmente ou num Notebook, pede ao Copilot o código pandas correspondente. Isso ajuda a validar rapidamente antes de levar para o Warehouse ou Dataflow.
Exemplo Python (pandas):
import pandas as pd
df = pd.read_csv('table_name.csv') # ou carregar do OneLake
# 1. Percentagem de nulos
null_pct = df['column'].isna().mean()
# 2. Unicidade
distinct_count = df['column'].nunique()
# 3. Formato simples (email)
invalid_emails = df[~df['column'].str.contains(r".+@.+\..+", na=False)]
# 4. Outliers (1% / 99%)
low = df['column'].quantile(0.01)
high = df['column'].quantile(0.99)
outliers = df[(df['column'] < low) | (df['column'] > high)]
print(null_pct, distinct_count, len(invalid_emails), len(outliers))
Passo 5: Transformar regras em checks reutilizáveis (Template de Prompt)
Cria um prompt padrão para o Copilot que contenha o padrão das verificações e parâmetros (limiares de aceitação). Assim, podes reutilizar para outras tabelas mudando apenas o nome e os limiares.
Prompt template exemplo:
"Gera um conjunto de checks de Data Quality para a tabela {table_name}. Inclui: percentagem de nulos por coluna, verificação de unicidade para chaves, formatos para colunas 'email' e 'date', e deteção de outliers com limiar 1%/99%. Devolve código SQL e Python."
Verificar o resultado
Executa os scripts SQL no Warehouse ou o código Python no Notebook e confirma os retornos: percentagens de nulos aceitáveis, contagem de valores inválidos e lista de outliers. Se os valores excederem os limiares, marca como falha. Erros comuns: nomes de colunas diferentes, tipos incorretos (string vs numeric) e funções SQL suportadas pelo engine do Warehouse — ajusta conforme necessário.
Conclusão
Usando o Copilot no Fabric consegues gerar rapidamente regras de Data Quality em SQL e Python para validar tabelas antes da publicação. Próximos passos: integrar estas checks num Dataflow Gen2 ou agendar no Warehouse para monitorização contínua. Dica: mantém um prompt template com limiares para acelerar auditorias; que regra gostavas de automatizar primeiro?