쿼리 관리 프로세스란?
쿼리 관리 프로세스(Query Management Process)는 데이터 웨어하우스에 접수된 질의(쿼리)를 관리하고, 각 질의를 가장 효과적인 데이터 소스로 안내하여 처리 속도를 높이는 프로세스입니다. 또한 질의 실행 일정을 조율함으로써 시스템 전체의 자원이 최대한 효율적으로 사용되도록 보장합니다. 아울러 이 프로세스는 실제 사용되는 쿼리 프로파일을 지속적으로 모니터링하여 어떤 집계(aggregation)를 생성할지 결정하는 근거로 삼습니다.
이 프로세스는 데이터 웨어하우스가 최종 사용자에게 제공되는 동안 항상 작동합니다. 특정한 순차적 단계로 구성되어 있다기보다는, 끊임없이 운영되는 여러 핵심 기능들의 집합으로 이루어져 있습니다.
1. 쿼리 라우팅 — 최적 데이터 소스 선택
요약 데이터를 포함하는 데이터 웨어하우스는 하나의 질의에 대해 여러 개의 서로 다른 데이터 소스로 응답할 수 있습니다. 즉, 상세 원본 데이터와 더불어 해당 질의의 정보 요구를 충족하는 다양한 수준의 집계(요약) 테이블들이 모두 후보가 될 수 있습니다.
예를 들어, 판매 데이터 웨어하우스에서 사용자가 "최근 2주간 가지아바드(Ghaziabad) 지역의 컴퓨터 판매 현황을 보고하라"고 요청했다고 가정해 보겠습니다. 이 질의는 다음 표 중 어느 것을 스캔하더라도 충족시킬 수 있습니다.
- 최근 2주간의 전체 상세 데이터를 스캔한 뒤, 가지아바드 지역의 컴퓨터 판매 내역만 필터링
- 주 단위로 매장별·제품별로 요약된 2주치 주간 요약 테이블
- 지역별·제품별 격주(2주) 요약 테이블 (가지아바드는 '지역'의 한 예)
- 제품군별·매장별 격주 요약 테이블 ('컴퓨터'는 '제품군'의 한 예)
어떤 테이블을 사용해도 결과를 얻을 수 있지만, 읽어야 하는 데이터의 양이 테이블마다 크게 다르므로 실행 성능 역시 상이합니다. 쿼리 관리 프로세스는 어떤 테이블이 해당 질의를 가장 짧은 시간 안에 처리할 수 있는지 계산하여, 가장 효율적으로 답을 제공하는 테이블을 결정합니다.
2. 시스템 자원 관리
하나의 대형 질의가 실행 과정에서 시스템 자원을 독점하면 전체 시스템 성능에 악영향을 미칠 수 있습니다. 이런 문제를 일으키는 질의는 대개 전체 상세 데이터를 대상으로 실행되는 경우이거나, 잘못 작성되어 대용량 테이블을 반복해서 스캔하는 경우입니다.
쿼리 관리 프로세스는 질의 실행 일정을 체계적으로 관리함으로써, 특정 단일 질의가 시스템 전체 성능에 부정적인 영향을 주지 않도록 보장합니다.
3. 쿼리 캡처 — 변화하는 질의 패턴 추적
데이터 웨어하우스의 수명 주기 동안 쿼리 프로파일은 수시로 변하며, 초기 사용자 질의 요구 사항은 어디까지나 출발점에 불과합니다. 요약 테이블은 정의된 쿼리 프로파일을 기반으로 구성되므로, 프로파일이 바뀌면 요약 테이블 역시 이에 맞춰 변경해야 합니다.
실행되는 실제 질의를 지속적으로 포착(capture)하면 새로운 쿼리 프로파일이 무엇인지 정확하게 파악할 수 있으며, 이는 매우 효과적인 접근 방식입니다. 시점별로 수집된 질의들을 분석하면 새로운 쿼리 프로파일을 도출하고, 그 결과가 요약 테이블에 미치는 영향까지 판단할 수 있습니다.