Sqlsure: AI가 생성한 SQL에 대한 결정론적 의미 검사

Sqlsure: AI가 생성한 SQL에 대한 결정론적 의미 검사

Sqlsure는 쿼리 의미를 검증하여 무음 SQL 실패를 방지합니다

Sqlsure는 "무음" SQL 오류—구문은 올바르고 오류 없이 실행되지만 수학적으로 잘못된 결과를 반환하는 쿼리—를 포착하도록 설계된 결정론적 의미 검사기입니다. 조인(팬아웃)으로 인한 매출 이중 집계나 평균과 같은 비가산 측정값의 합산과 같은 AI 생성 SQL에서 흔히 발생하는 실패를 목표로 합니다.

전통적인 린터나 LLM 기반 검토와 달리 Sqlsure는 결정론적 엔진으로 작동합니다. 선언된 의미 모델에 대한 사전 정의된 사전 조회를 사용하여 네트워크 호출이나 데이터베이스 접근 없이 약 0.1 ms 안에 판정을 제공합니다.

핵심 의미 규칙 및 오류 감지

Sqlsure는 사전 정의된 규칙 집합에 따라 SQL을 평가하여 구조적·의미적 위험을 식별합니다. 엔진이 특정 연산을 검증할 수 없을 경우, 쿼리가 안전하다고 가정하는 대신 "검증할 수 없음"이라고 보고합니다.

치명적 오류

  • FANOUT: 일대다 조인 후 가산 측정값을 합산하거나 카운트하는 경우를 감지합니다. 이는 일반적으로 이중 집계로 이어집니다.
  • CHASM: 결과 집합을 곱하는 다중 팬아웃 조인을 식별하여 오류를 복합화합니다.
  • ADDITIVITY: 비가산 측정값(예: 비율, 평균)의 합산을 포착합니다.
  • SEMI_ADDITIVE: 스냅샷 차원 전체에 걸쳐 잔액이나 인구조사를 합산하는 경우를 감지합니다.
  • JOIN_KEY: 의미 모델에 선언된 관계와 일치하지 않는 열에 대한 조인을 표시합니다.
  • CROSS_JOIN: 조건절 없이 수행된 조인을 표시합니다.

경고 및 정책 위반

  • WEIGHTED_AVG: 평균이 팬아웃 조인에 의해 무음으로 가중될 때 경고합니다.
  • UNDECLARED_JOIN: 선언된 관계가 없는(검증 불가) 조인이 사용될 때 경고합니다.
  • SENSITIVE_COLUMN: 쿼리 출력에 PHI/PII 열이 노출되는 경우를 표시하는 정책 검사입니다.

통합 및 구현 패턴

Sqlsure는 데이터 파이프라인의 세 가지 주요 진입점에 통합될 수 있습니다:

  1. CI/CD 게이트: CLI 도구로 사용되어 쿼리가 의미적으로 잘못된 경우 풀 리퀘스트를 차단합니다.
  2. MCP 서버: 모델 컨텍스트 프로토콜(MCP) 서버로서 AI 에이전트가 쿼리를 실행하기 전에 검사를 통과하도록 하여 "초안 → 검사 → 수정 → 실행" 루프를 가능하게 합니다.
  3. 라이브러리 통합: check() 함수를 Vanna나 WrenAI와 같은 텍스트‑투‑SQL 프레임워크에 직접 삽입하여 의미 게이트 또는 NL2SQL 출력에 대한 평가 메트릭으로 활용합니다.

의미 모델 소싱

Sqlsure는 새로운 구성 언어를 요구하지 않습니다. 기존 메타데이터 소스에서 규칙집을 생성합니다:

  • dbt: manifest.json 또는 schema.yml 파일을 가져와 dbt unique 테스트를 그레인 정의로, relationships 테스트를 조인 카디널리티로 변환합니다.
  • 실시간 데이터베이스: sqlsure.introspect 모듈이 SQLite PRAGMA 또는 PostgreSQL·MySQL의 information_schema를 사용해 데이터베이스 카탈로그에서 모델을 구축합니다.
  • 시맨틱 레이어: OSI와 WrenAI MDL에 대한 로더를 포함합니다.
  • 맞춤 JSON: 사용자는 JSON 사양을 통해 자체 의미 모델을 정의할 수 있습니다.

신뢰성 및 보안 특성

Sqlsure는 다음과 같은 특성을 갖춘 고보안 환경을 위해 설계되었습니다:

  • 결정론적: 동일한 SQL과 규칙집은 항상 동일한 결과를 산출합니다.
  • 오프라인·프라이빗: 도구는 완전히 오프라인에서 동작하며 네트워크 호출이 전혀 없으며, SQL 쿼리는 로컬 머신을 떠나지 않습니다.
  • 데이터 접근 없음: Sqlsure는 쿼리 텍스트 자체만 파싱하고 실제 데이터베이스 데이터에 연결하지 않습니다.
  • 텔레메트리 없음: 도구는 사용자로부터 어떠한 데이터도 수집하지 않습니다.

성능 및 검증

BIRD와 Spider 텍스트‑투‑SQL 벤치마크에 대한 감사에서 Sqlsure는 2,568개의 전문가 작성 쿼리 중 45개의 플래그를 식별했으며 오탐은 전혀 없었습니다. 여기에는 팬아웃 버그로 인해 8배 잘못된 BIRD dev 골드 답안을 식별하고, 이후 상위에 보고된 스키마 결함을 찾아낸 사례가 포함됩니다.

요약: Sqlsure는 오픈소스 의미 검사기로, 팬아웃 이중 집계 및 가산성 위반과 같은 SQL 오류를 결정론적으로 포착하여 쿼리 실행 전에 문제를 방지합니다.

제목: Sqlsure: AI가 생성한 SQL에 대한 결정론적 의미 검사

Sources