Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

쿼리 관리 서비스란? 주요 유형과 역할 총정리

쿼리 관리 서비스란?

쿼리 관리 서비스는 쿼리 생성, 데이터베이스에서의 쿼리 실행, 그리고 결과 집합을 사용자 데스크톱으로 반환하는 과정 사이의 상호 작용을 처리하는 기능들의 집합입니다. 이러한 서비스는 사용자가 데이터베이스와 상호 작용하는 방식 전반에 큰 영향을 미치며, 데이터 웨어하우스 환경에서 쿼리 성능과 사용자 편의성을 좌우하는 핵심 요소입니다.

대표적인 쿼리 관리 서비스는 다음과 같습니다.

1. 콘텐츠 단순화(Content Simplification)

콘텐츠 단순화는 사용자가 구체적인 쿼리를 작성하기 전에 데이터 구조와 쿼리 언어의 복잡성으로부터 사용자를 보호하는 기술입니다. 여기에는 다음과 같은 방법이 포함됩니다.

  • 테이블과 컬럼의 일부(하위 집합)만 사용자에게 노출되도록 뷰를 제한
  • 사전에 정의된 조인 규칙 적용(조인 대상 컬럼, 데이터 유형, 경로 선호도 포함)
  • 표준 필터 제공

콘텐츠 단순화 메타데이터는 범용 서비스가 아니라 특정 프런트엔드 도구에 종속되는 경우가 많습니다. 따라서 단순화 규칙은 대개 프런트엔드 도구의 메타데이터 저장소 안에 숨겨진 형태로 관리됩니다.

2. 쿼리 리타게팅과 멀티패스 SQL(Query Retargeting & Multipass SQL)

쿼리 리타게팅 서비스는 들어온 쿼리를 구문 분석하고, 메타데이터에서 해당 요소들이 실제 어디에 존재하는지 확인한 뒤, 쿼리 또는 그 구성 요소를 적절히 재지향(redirect)합니다. 여기에는 단순 전환(simple divert), 이기종 조인(heterogeneous join), UNION·MINUS 같은 집합 함수 처리가 포함됩니다.

단순해 보이는 이 기능이 바로 독립된 팩트 테이블을 서로 다른 하드웨어 플랫폼에 나누어 호스팅할 수 있게 해주는 핵심입니다. 예를 들어 서로 다른 두 서버에 있는 '제조 비용' 팩트 테이블과 '고객 판매' 팩트 테이블을 각각 조회한 뒤, 그 결과를 하나의 고객 기여 보고서에 매끄럽게 통합할 수 있습니다.

3. 집계 인식(Aggregate Awareness)

집계 인식은 쿼리 리타게팅의 특수한 사례로, 상세 데이터를 실시간으로 합산하는 대신 이미 준비된 집계 테이블로 쿼리를 처리할 수 있다는 점을 자동으로 인식하는 서비스입니다. 예를 들어 사용자가 일일 테이블에서 '월별 판매'를 요청하면, 서비스는 해당 쿼리를 월간 팩트 테이블을 대상으로 실행되도록 재정의합니다.

이러한 집계 인식을 지원하는 구성 요소가 바로 집계 내비게이터(aggregate navigator)입니다. 데이터베이스가 인덱스를 선택하는 방식과 마찬가지로, 집계 내비게이터는 쿼리에 맞는 집계 테이블을 자동으로 선택해 줍니다.

가장 훌륭한 집계 내비게이터는 엔드유저 도구와 분리되어 운영됩니다. 이렇게 하면 DBMS로 SQL을 전송하는 여러 사용자에게 집계 탐색 기능을 공통으로 제공할 수 있습니다. 반면 엔드유저 도구에 내장된 집계 내비게이터는 해당 도구에서만 동작하므로, 복잡한 환경에서 여러 도구를 함께 지원해야 하는 DBA에게는 부담이 됩니다.

또한 우수한 집계 내비게이터는 수신되는 모든 SQL에 대한 통계를 수집해야 합니다. 단순히 현재 집계 수준을 문서화하는 데 그치지 않고, DBA가 새로 구축하면 좋을 추가 집계 테이블까지 제안해 주는 것이 이상적입니다.

4. 날짜 인식(Date Awareness)

날짜 인식 서비스를 활용하면 사용자가 정확한 날짜 범위를 직접 계산하지 않아도 '올해 연초부터 현재까지(YTD) 판매', '작년 동일 기간 판매' 같은 질의를 손쉽게 수행할 수 있습니다. 이를 위해 일반적으로 기간(period) 차원 테이블에 관련 속성을 유지하여 해당 날짜들을 식별합니다.