Como criar um Data Issue Detector no Copilot do Fabric
Este tutorial mostra como criar um Data Issue Detector no Copilot do Fabric para identificar automaticamente problemas comuns (valores nulos, formatos incorretos, outliers) e gerar relatórios ou alertas. É útil para monitorizar a qualidade dos dados sem escrever muito código e para acelerar a deteção de falhas antes de análises ou modelos.
Pré-requisitos
- Conta com acesso ao Microsoft Fabric e permissões para usar o Copilot no workspace.
- Uma tabela ou dataset no Fabric (por exemplo numa Lakehouse ou Warehouse) com dados de exemplo.
- Noções básicas de Power Query / SQL e do que são nulos, outliers e formatos.
Passo 1: Preparar a fonte de dados
Identifica a tabela que queres analisar e confirma colunas-chave (datas, IDs, numéricas, texto). Se a tabela estiver na Lakehouse, abre-a no Data Explorer; se estiver no Warehouse, usa uma consulta simples para amostragem. O objetivo é ter uma amostra representativa para o Copilot analisar.
-- Exemplo SQL para amostra no Warehouse
SELECT TOP 1000 *
FROM my_database.my_schema.my_table
ORDER BY some_date DESC;
Passo 2: Abrir o Copilot e criar um novo Prompt
Abre o Copilot no Fabric e cria um novo Prompt. Explica ao Copilot o objetivo: detetar nulos, formatos inválidos (por exemplo emails), outliers e frequências inesperadas. Fornece a amostra de dados ou liga diretamente à tabela usando a referência disponível no ambiente.
Prompt exemplo:
"Analisa a tabela my_table e identifica:
- Colunas com >5% de valores nulos
- Valores com formato inválido (email, date)
- Outliers em colunas numéricas (usar IQR)
- Distribuições inesperadas (picos/valores únicos)
Fornece: resumo por coluna e queries SQL para isolar problemas."
Passo 3: Ajustar o Prompt para regras específicas
Refina o Prompt para regras do teu negócio — por exemplo, um campo phone deve ter 9 dígitos, códigos postais um padrão específico, ou valores negativos são inválidos. Especifica limiares (p.ex. outliers fora de 1.5*IQR) para que o Copilot gere resultados reproduzíveis.
Adição ao Prompt:
"Regra: phone deve ser regex '^\d{9}$'.
Outlier: valor < Q1 - 1.5*IQR ou > Q3 + 1.5*IQR.
Reporta percentagem e exemplos de linhas."
Passo 4: Executar as queries / ações sugeridas
O Copilot irá propor queries SQL ou passos em Power Query. Copia-as e executa no Warehouse ou no Dataflow conforme indicado. Se o Copilot sugerir transformações, revê-as antes de aplicar em produção.
Exemplo SQL gerado para nulos:
SELECT column_name, COUNT(*) AS total, SUM(CASE WHEN column_name IS NULL THEN 1 ELSE 0 END) AS null_count,
100.0 * SUM(CASE WHEN column_name IS NULL THEN 1 ELSE 0 END) / COUNT(*) AS null_pct
FROM my_database.my_schema.my_table
GROUP BY column_name;
Exemplo SQL para emails inválidos:
SELECT * FROM my_table WHERE NOT REGEXP_MATCH(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$') LIMIT 50;
Passo 5: Automatizar com um Prompt Chain simples
Cria um Prompt Chain no Copilot que primeiro executa checks de nulos, depois checks de formato e por fim outliers, e que gera um relatório consolidado. Isto permite correr o detector regularmente sem reescrever o Prompt cada vez.
Prompt Chain (exemplo lógico):
1) CheckNulls -> retorna colunas problemáticas
2) CheckFormats (usa output de 1) -> retorna exemplos por coluna
3) CheckOutliers -> retorna queries para investigação
4) Summarize -> cria relatório com recomendações
Verificar o resultado
Confirma que tens um resumo por coluna com percentagens de nulos, exemplos de formatos inválidos, e listas de outliers. Executa as queries geradas e valida manualmente algumas linhas. Se automatizaste o Prompt Chain, executa-o novamente com outra amostra para garantir consistência.
Conclusão
Com o Data Issue Detector no Copilot do Fabric consegues identificar rapidamente problemas de dados e obter queries prontas para investigação. Próximos passos: integrar este fluxo numa rotina (agendada) ou num Power Automate para alertas. Dica: começa com amostras pequenas e testa as regex/limiares antes de aplicar a toda a tabela — que coluna queres monitorizar primeiro?