HANA에서 뷰가 두 종류인 이유
SAP HANA에서 데이터를 집계하고 분석하는 뷰에는 SQL View와 Calculation View 두 가지가 있습니다. SQL View는 기존 RDBMS의 뷰와 유사하게 SQL로 정의합니다. Calculation View는 SAP HANA Studio 또는 Web IDE의 그래픽 도구로 만들며, HANA의 컬럼 엔진을 최대한 활용하는 고성능 분석 뷰입니다.
SQL View: 간단한 쿼리를 뷰로 정의
-- HANA SQL View: 표준 SQL로 정의
CREATE OR REPLACE VIEW ZV_ACTIVE_CUSTOMER AS
SELECT
c.customer_id,
c.customer_name,
c.region,
c.segment,
COUNT(o.order_id) AS order_count,
SUM(o.net_amount) AS total_revenue,
MAX(o.order_date) AS last_order_date
FROM zbtp_customer AS c
LEFT JOIN zbtp_sales_order AS o
ON c.customer_id = o.customer_id
AND o.status != 'CANCELLED'
WHERE c.is_active = TRUE
GROUP BY
c.customer_id, c.customer_name, c.region, c.segment;
-- 사용
SELECT * FROM ZV_ACTIVE_CUSTOMER WHERE region = 'ASIA';
SQL View는 단순 JOIN, 필터, 기본 집계에 적합합니다. 개발이 빠르고 SQL을 아는 누구나 이해할 수 있습니다. 단, HANA의 고급 분석 기능(계층 구조, 시간 시리즈, 환율 변환)은 지원하지 않습니다.
Calculation View: HANA 고급 분석 기능 활용
-- Calculation View는 HANA Studio/Web IDE 그래픽 도구로 생성 -- 코드 대신 노드(Projection, Aggregation, Join, Rank) 조합 -- 특징: -- 1. Star Schema 지원 (Fact + Dimension 테이블 연결) -- 2. 계층 구조(Hierarchy) 내장 지원 (조직도, 지역 계층 등) -- 3. 시간 시리즈 분석 (YTD, QTD, MoM 비교 등) -- 4. 환율 변환 내장 -- 5. OLAP 엔진 최적화 (컬럼 스토어 직접 활용) -- 외부 노출 방식 -- SAP Analytics Cloud, BW/4HANA, ABAP CDS view에서 참조 가능
ABAP CDS에서 Calculation View 참조
-- CDS View에서 Calculation View 데이터 소스로 참조
@AbapCatalog.sqlViewName: 'ZCI_CUSTREV'
define view ZI_CustomerRevenue
as select from zbtp_calc_customer_revenue as CalcView
-- zbtp_calc_customer_revenue = Calculation View의 DB 노출 이름
{
key CalcView.customer_id,
CalcView.customer_name,
CalcView.region,
CalcView.ytd_revenue, -- YTD 집계 (Calculation View 내장)
CalcView.prev_year_revenue, -- 전년도 비교 (Calculation View 내장)
CalcView.growth_rate
}
선택 기준
-- SQL View가 적합한 경우: -- - 단순 JOIN + GROUP BY -- - 빠른 프로토타입 개발 -- - ABAP 팀이 HANA Studio 없이 개발해야 하는 경우 -- - 결과가 단순 집계이고 성능 요구가 높지 않은 경우 -- Calculation View가 적합한 경우: -- - SAP Analytics Cloud(SAC)에서 분석 대시보드 구성 -- - 다차원 분석 (피벗, 드릴다운, 슬라이스) -- - 계층 구조 탐색 (부서별 매출 → 팀별 → 개인별) -- - 대용량 실시간 OLAP 분석 -- - 환율 변환이 필요한 재무 보고
Calculation View와 SQL View 성능 차이
-- 비교: 1억 건 매출 데이터에서 월별 집계 -- SQL View 방식 (쿼리 실행) SELECT region, MONTH(order_date), SUM(net_amount) FROM ZV_SALES_SUMMARY GROUP BY region, MONTH(order_date); -- 실행 시간: ~8초 (HANA 일반 SQL 엔진) -- Calculation View 방식 (동일 데이터) SELECT region, month_num, SUM_NET_AMOUNT FROM ZCV_SALES_MONTHLY_ANALYSIS; -- 실행 시간: ~1.2초 (컬럼 엔진 직접 처리) -- 약 6배 이상 빠름 (데이터 분포에 따라 다름)
하이브리드 접근: SQL View로 시작, 필요 시 Calculation View로 전환
- 초기: SQL View로 빠르게 기능 구현
- 성능 이슈 발생 시: 동일 로직을 Calculation View로 재구현
- CDS View 참조 이름만 변경 → 앱 코드 수정 최소화
공식 문서
HANA Calculation View 가이드는 SAP HANA Cloud Modeling Guide에서 확인하세요.
댓글 0
아직 댓글이 없습니다.