Sqlsure: controlli semantici per SQL generato da AI

Sqlsure introduce ispezioni semantiche deterministiche per SQL da AI, rilevando errori come double-counting e violazioni di policy prima dell'esecuzione.

Sqlsure: controlli semantici per SQL generato da AI

Sqlsure su Hacker News

Sqlsure è uno strumento open source che esegue controlli semantici deterministici su query SQL prodotte da modelli di linguaggio. Il repository

sqlsuresqlsure
Vedi su GitHub →
è stato presentato su Hacker News con l'obiettivo di intercettare errori come double-counting da fan-out, violazioni di additività, join errati e violazioni di policy prima dell'esecuzione. Gli autori riportano che l'analisi delle 2.568 query gold dei benchmark BIRD e Spider ha generato 45 segnalazioni senza falsi positivi, individuando anche un caso di errore per un fattore 8x nel dataset BIRD.

Funzionamento tecnico

Abstract 3D illustration of a technical validation process, featuring glowing geometric shapes representing data models and a scanner beam inspecting them, modern tech style, dark background with neon blue and purple accents, no text or logos.

Sqlsure non usa LLM per le verifiche. Confronta la query con un modello semantico derivato dai test dbt già presenti nel progetto: unique test definiscono il grain, relationship test specificano la cardinalità dei join, e meta tag indicano le colonne sommabili. Le regole sono lookup su dizionari, quindi il risultato è identico a ogni esecuzione e funziona offline in circa 0,1 ms. Ogni rifiuto restituisce una correzione machine-actionable che l'agente può applicare direttamente.

L'installazione avviene con pip install sqlsure. L'uso base è:

from sqlsure import SemanticModel, check
violations = check(sql, model)

Il comando python -m sqlsure.scan path/to/dbt-repo --report report.md produce un audit completo di un repository dbt.

Integrazione nel flusso di sviluppo

Sqlsure si inserisce come gate in CI o come passaggio all'interno di agenti che generano SQL. Il ciclo draft → check → fix → check permette di ottenere query corrette senza intervento manuale in molti casi. I test sul benchmark mostrano che applicare le correzioni proposte ha prodotto query valide in 10 su 10 tentativi. Non richiede un linguaggio aggiuntivo né la manutenzione di un modello separato.

Il limite principale è la dipendenza dalla qualità dei test dbt esistenti: se il modello semantico è incompleto, alcune violazioni passano inosservate. Inoltre lo strumento non sostituisce l'analisi del piano di esecuzione o i test di performance.

Valutazione sui benchmark

Abstract 3D illustration of performance benchmarking, featuring glowing charts, data nodes, and a target bullseye symbolizing high accuracy and precision, modern tech style, dark background with neon green and cyan accents, no text or logos.

L'analisi delle risposte gold di BIRD e Spider ha evidenziato difetti reali, tra cui uno schema difettoso segnalato upstream. Questo indica che Sqlsure può servire anche come strumento di revisione statica su basi di codice esistenti, non solo su output generati da LLM. Il fatto che non abbia prodotto falsi allarmi su quasi 2.600 query suggerisce una bassa probabilità di interruzioni spurie in pipeline automatizzate.

FAQ

Sqlsure funziona solo con dbt? No, accetta un modello semantico definito in JSON, ma l'integrazione più immediata avviene importando i test già scritti in dbt.

Sostituisce i test di unità sulla query? No, verifica proprietà semantiche come cardinalità e additività; i test che controllano i valori di output rimangono necessari.

Quanto tempo aggiunge al ciclo di un agente? Meno di un millisecondo per controllo, quindi l'impatto sul tempo totale è trascurabile rispetto alla generazione e all'esecuzione della query.

---

📖 Leggi anche

Hai bisogno di una consulenza?

Aiuto aziende e startup a sviluppare software, automatizzare processi e integrare AI. Parliamone.

Scrivimi
← Torna al blog