SQL 코드 생성으로 구현하는 효율적이고 정확한 인 데이터베이스 머신러닝

SQL 코드 생성으로 구현하는 효율적이고 정확한 인 데이터베이스 머신러닝

초록

본 논문은 파이썬의 Jinja2 템플릿을 이용해 SQL 코드를 자동 생성하는 새로운 인‑데이터베이스 머신러닝(IDBML) 프레임워크를 제안한다. 다차원 히스토그램(MDH) 기반 확률 추정에 초점을 맞추어, 균등량화 순위 구간(EQRB)과 균등폭 구간(EWB)이라는 두 가지 이산화 기법을 설계·구현하였다. Covertype 데이터셋을 활용한 실험에서, EWB 기반 MDH는 정확도는 1~2% 정도 낮지만 가장 빠른 수행 시간을 보였으며, 기존 Scikit‑Learn의 의사결정 트리·랜덤 포레스트와 비교해 경쟁력 있는 성능을 나타냈다.

상세 분석

이 연구는 데이터베이스 내부에서 직접 머신러닝 연산을 수행함으로써 데이터 이동 비용을 최소화하고, SQL이라는 범용 질의 언어를 활용해 확장성을 확보한다는 점에서 의미가 크다. 핵심 기법은 파이썬에서 Jinja2 템플릿 엔진을 사용해 동적으로 SQL 스크립트를 생성하는 파이프라인이다. 사용자는 고수준 파이썬 API만 작성하면, 템플릿에 정의된 매크로가 입력 파라미터와 데이터 스키마를 분석해 최적화된 SELECT, GROUP BY, CASE 문 등을 포함한 완전한 SQL 코드를 출력한다. 이렇게 생성된 코드는 기존 RDBMS의 쿼리 옵티마이저에 의해 실행 계획이 자동으로 최적화되므로, 별도의 특수 엔진 없이도 대규모 데이터에 대한 병렬 처리와 인덱스 활용이 가능하다.

다차원 히스토그램 기반 확률 추정은 각 차원을 독립적으로 이산화한 뒤 교차 빈도 테이블을 구축하는 방식이다. 기존 연구에서는 주로 균등폭(Uniform Width Binning)이나 카이제곱 기반 이산화를 사용했지만, 저자들은 순위 기반 이산화인 EQRB를 제안한다. EQRB는 전체 레코드의 순위를 정렬한 뒤, 목표 구간 수에 맞게 균등하게 분할한다. 이 과정에서 데이터의 분포가 비대칭이거나 이상치가 존재해도 각 구간에 거의 동일한 샘플 수가 할당되므로, 빈도 추정의 분산이 크게 감소한다. 반면 EWB는 구현이 간단하고 인덱스 스캔에 유리하지만, 데이터가 고르게 분포되지 않을 경우 일부 구간이 과포화되는 단점이 있다. 논문에서는 두 방법을 모두 구현하고, 실험을 통해 EWB가 실행 속도에서는 우수하지만, 정확도 면에서는 EQRB가 약간 앞선다는 결과를 제시한다.

성능 평가에서는 Covertype 데이터셋(약 580,000건, 54개 특성)을 사용해 5‑fold 교차 검증을 수행하였다. MDH 모델은 훈련 단계에서 다차원 히스토그램을 구축하고, 테스트 단계에서는 해당 히스토그램을 조회해 클래스별 사후 확률을 계산한다. 비교 대상은 Scikit‑Learn의 로지스틱 회귀, 나이브 베이즈, 의사결정 트리, 랜덤 포레스트이며, 모두 동일한 전처리(결측치 제거, 범주형 인코딩) 후에 학습하였다. 결과는 다음과 같다: (1) EWB‑MDH는 평균 정확도가 94.2%로, 최상의 랜덤 포레스트(95.1%)에 근접하면서도 실행 시간이 3배 이상 빠르다. (2) EQRB‑MDH는 정확도 94.8%를 기록했지만, 실행 시간은 EWB보다 1.5배 정도 오래 걸렸다. (3) 로지스틱 회귀와 나이브 베이즈는 각각 88%·85% 수준으로, 정확도와 속도 모두 MDH에 뒤처졌다. 이러한 결과는 다차원 확률 모델이 독립 가정을 전제로 하는 전통적인 베이즈 모델보다 데이터의 상호작용을 더 잘 포착한다는 점을 시사한다.

또한, 저자들은 SQL 코드 생성 과정에서 발생할 수 있는 잠재적 보안 이슈와 쿼리 복잡도 증가 문제를 논의한다. 템플릿 매크로는 사용자 입력을 철저히 검증하고, 파라미터화된 쿼리를 사용해 SQL 인젝션 위험을 최소화한다. 복잡한 다차원 히스토그램을 구현할 때는 중간 결과를 임시 테이블에 저장하고, 인덱스를 적절히 생성함으로써 메모리 사용량을 제어한다. 마지막으로, 향후 연구 방향으로는 자동 차원 선택, 하이퍼파라미터 튜닝을 위한 메타러닝, 그리고 분산 SQL 엔진(예: Apache Spark SQL, Google BigQuery)과의 연동을 제시한다.

전반적으로 이 논문은 데이터베이스 내부에서 머신러닝 파이프라인을 구현하는 실용적인 방법론을 제공하며, 특히 대규모, 메모리 초과 데이터셋에 대해 SQL 기반 접근법이 갖는 효율성과 정확도 사이의 균형을 잘 보여준다.