SAP HANA 계산 뷰: 유형 및 생성 방법
⚡ 스마트 요약
계산 보기 SAP HANA는 가장 강력한 정보 뷰입니다. 조인, 합집합, 프로젝션, 집계 및 순위 노드를 통해 테이블, 컬럼 뷰, 분석 뷰 및 기타 계산 뷰를 결합합니다.

계산 보기란 무엇입니까?
SAP HANA 계산 보기는 강력한 정보 보기입니다.
SAP HANA 분석 뷰 측정값은 단 하나의 팩트 테이블에서만 선택할 수 있습니다. 정보 뷰에서 더 많은 팩트 테이블이 필요한 경우 계산 뷰가 그림에 등장합니다. 계산 뷰는 복잡한 계산을 지원합니다.
계산 보기의 데이터 기반에는 테이블, 열 보기, 분석 보기, 계산 보기가 포함될 수 있습니다.
우리는 만들 수 있습니다 조인, 데이터 소스에 대한 통합, 집계 및 예측.
계산 보기에는 여러 측정값이 포함될 수 있으며 다차원 보고에 사용될 수도 있고 목록 유형 보고에 사용되는 측정값이 없을 수도 있습니다.
특징 SAP HANA 계산 화면은 아래와 같습니다 –
- 복잡한 계산을 지원합니다.
- OLTP 및 OLAP 모델을 지원합니다.
- 클라이언트 처리, 언어, 통화 변환을 지원합니다.
- Union, Projection, Aggregation, Rank 등을 지원합니다.
SAP HANA Calculation View는 두 가지 유형이 있습니다.
- SAP HANA 그래픽 계산 보기(작성자: SAP HANA Studio 그래픽 편집기).
- SAP HANA 스크립트 기반 계산 뷰(SQL 스크립트로 생성됨) SAP 하나 스튜디오).
그래픽 기반 계산 보기와 스크립트 기반 계산 보기 비교
두 가지 방식 모두 동일한 종류의 제품을 만들어내지만, 제작 및 유지 관리 방식이 매우 다르며, 일단 생산에 들어가면 선택을 되돌리기가 어렵습니다.
| 매개 변수 | 그래픽 | 스크립트 기반 |
|---|---|---|
| 내장 | 편집기에서 노드를 드래그 앤 드롭하세요 | CE_ 또는 SQL 블록 내의 SQLScript |
| 최적화 | 엔진은 런타임에 사용되지 않는 노드를 제거할 수 있습니다. | 작성된 그대로 실행되므로 최적화할 여지가 적습니다. |
| 가독성 | 시나리오 다이어그램은 그 자체로 문서화됩니다. | 전적으로 작가에게 달려 있습니다. |
| 능력 | 대부분의 요구 사항을 충족합니다. | 노드 조합으로는 표현할 수 없는 논리를 처리합니다. |
| 유지보수 | 모든 모델러가 따라할 수 있습니다. | SQLScript 기술이 필요합니다 |
| 추천 | 기본 선택 | 그래픽으로는 정말로 불가능한 경우에만 |
성능 측면이 결정적인 요소입니다. 그래픽 뷰를 사용하면 HANA는 쿼리의 어떤 열에도 필요하지 않은 노드를 걸러낼 수 있으므로, 사용되지 않는 조인에는 비용이 발생하지 않습니다. 반면 스크립트 기반 뷰는 포함된 모든 문을 실행합니다. 그래픽 뷰로 시작하여 필요에 따라 특정 노드만 스크립트 뷰로 전환하는 것이 좋습니다.
SAP HANA 그래픽 계산 보기
In SAP HANA 분석 보기, 하나의 테이블에서만 측정값을 선택할 수 있습니다.
따라서 다른 테이블의 측정값을 포함하는 뷰에 대한 요구 사항이 있는 경우 분석 뷰가 아닌 계산 뷰를 통해서는 달성할 수 없습니다.
따라서 이 경우 각 테이블에 대해 서로 다른 두 가지 분석 뷰를 사용하고 이를 계산 뷰에 결합할 수 있습니다.
두 개의 분석 보기 "AN_PURCHASE_ORDER"와 "AN_FI_DOCUMENT"를 결합하여 그래픽 계산 보기 "CA_FI_LEDGER"를 만들려고 합니다.
CA_FI_LEDGER는 구매 주문과 관련된 재무 문서 세부 정보를 표시합니다.
단계 1) 이 단계에서,
- 패키지(여기 모델링)로 이동하여 마우스 오른쪽 버튼을 클릭합니다.
- 새 옵션을 선택합니다.
- 계산 보기를 선택합니다.
계산 보기 편집기가 표시되고 시나리오 패널이 아래와 같이 표시됩니다.
시나리오 패널의 상세 내용은 아래와 같습니다.
팔레트: 이 섹션에는 계산 뷰를 구축하는 데 소스로 사용할 수 있는 아래 노드들이 포함되어 있습니다. 노드 유형은 총 5가지이며 다음과 같습니다.
- 어울리다: 이 노드는 두 개의 소스 개체를 결합하고 결과를 다음 노드로 전달하는 데 사용됩니다. 조인 유형에는 내부, 왼쪽 외부, 오른쪽 외부 및 텍스트 조인이 있습니다. 참고 : 조인 노드에는 두 개의 소스 개체만 추가할 수 있습니다.
- 노동 조합: 이것은 여러 소스 간의 모든 합집합 연산을 수행하는 데 사용됩니다. 소스는 n개의 객체일 수 있습니다.
- 투사: 이는 통합, 집계 및 순위와 같은 다음 노드에서 사용하기 전에 열을 선택하고, 데이터를 필터링하고, 추가 열을 생성하는 데 사용됩니다. 참고 : Projection 노드에는 하나의 소스 객체만 추가할 수 있습니다.
- 집합: 선택한 속성을 기준으로 특정 열에 대한 집계를 수행하는 데 사용됩니다.
- 순위 : 이는 SQL의 RANK 함수를 정확하게 대체합니다. 요구 사항에 따라 파티션 및 순서를 조항별로 정의할 수 있습니다.
단계 2)
- 팔레트에서 Projection 노드를 클릭하고 구매 주문 분석 보기에서 시나리오 영역으로 끌어다 놓습니다. 이름을 "Projection_PO"로 변경했습니다.
- 팔레트에서 Projection 노드를 클릭하고 FI 문서 분석 보기의 시나리오 영역으로 끌어서 놓습니다. 이름을 "Projection_FI"로 변경했습니다.
- 콘텐츠 폴더에서 분석 뷰 "AN_PURCHASE_ORDER"와 "AN_FI_DOCUMENT"를 각각 "Projection_PO" 노드와 "Projection_FI" 노드로 드래그 앤 드롭하세요.
- Palette에서 Join Node를 클릭하고 시나리오 영역으로 드래그 앤 드롭합니다.
- Projection_PO 노드를 Join_1 노드에 결합합니다.
- Projection_FI 노드를 Join_1 노드에 결합합니다.
- 팔레트에서 Aggregation 노드를 클릭하고 시나리오 영역으로 드래그 앤 드롭합니다.
- Join_1 노드를 Aggregation 노드에 조인합니다.
계산 보기를 생성하기 위해 두 개의 분석 보기를 추가했습니다.
단계 3) 집계 아래의 Join_1 노드를 클릭하면 세부 정보 섹션이 표시되는 것을 볼 수 있습니다.
- 출력을 위해 Projection_PO 노드에서 모든 열을 선택합니다.
- 출력을 위해 Projection_FI 노드에서 모든 열을 선택합니다.
- Projection_PO 노드와 Projection_FI 노드를 Projection_PO.PO_Number = Projection_FI.PO_NO 열을 기준으로 조인합니다.
단계 4) 이 단계에서,
- 집계 노드를 클릭하면 창의 오른쪽에 세부 정보가 표시됩니다.
- 세부정보 창의 오른쪽에 표시된 Join_1에서 출력할 열을 선택합니다.
단계 5) 이제 Semantics Node를 클릭하세요.
세부 정보 화면이 아래와 같이 표시됩니다. 열에 대한 속성 및 측정 유형을 정의하고 이 출력에 대한 키를 표시합니다.
- 특성 및 측정값을 정의합니다.
- PO_Number 및 COMPANY를 키로 표시합니다.
- ACC_DOC_NO를 키로 표시합니다.
단계 6) 창 상단 표시줄에서 계산 보기를 확인하고 활성화합니다.
- 아이콘 확인을 클릭하세요.
- 아이콘 활성화를 클릭하세요.
계산 보기가 활성화되고 아래와 같이 모델링 패키지 아래에 표시됩니다.
계산 보기를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 데이터 미리 보기를 선택합니다.
두 개의 분석 뷰를 추가하고 두 분석 뷰에서 측정값(TAX_AMOUNT, GROSS_AMOUNT)을 선택했습니다.
데이터 미리보기 화면은 아래와 같이 표시됩니다.
스크립트 기반 뷰에서의 CE 기능
⚠️ 버전 참고: 아래에 설명된 CE_ 함수인 계산 엔진 계획 연산자는 더 이상 사용되지 않습니다. SAP기존 코드에서 CE_ 함수를 많이 사용하기 때문에 여기에 문서화는 유지되지만, 새로운 개발에서는 최적화 프로그램이 최소한 CE_ 함수만큼 잘 처리하는 표준 SQL을 사용해야 합니다. 하나의 문장에서 CE_ 함수와 SQL을 혼합하여 사용하는 것은 실행 계획이 제대로 생성되지 않는 원인으로 알려져 있습니다.
계산 엔진 계획이라고도 알려진 CE 기능 Opera토르(CE Operators)은 SQL 문 대신 사용할 수 있습니다.
CE 기능은 두 가지 유형이 있습니다 –
데이터 소스 접근 기능
이 함수는 열 테이블 또는 열 뷰를 테이블 변수에 바인딩합니다. 아래는 몇 가지 데이터 소스 액세스 함수 목록입니다.
- CE_COLUMN_TABLE
- CE_JOIN_VIEW
- CE_OLAP_VIEW
- CE_CALC_VIEW
관계형 Opera토르 기능
관계형을 사용하여 Opera토르, 사용자는 우회할 수 있습니다 SQL 평가 중에 프로세서가 작동하고 계산 엔진과 직접 통신합니다. 아래는 몇 가지 관계형 설명입니다. Opera기능 목록 -
- CE_JOIN (두 소스 간의 내부 조인을 수행하고 필요한 열/데이터를 읽는 데 사용됩니다.)
- CE_RIGHT_OUTER_JOIN (두 소스 간에 오른쪽 외부 조인을 수행하고 쿼리된 열을 출력에 표시하는 데 사용됩니다.)
- CE_LEFT_OUTER_JOIN (소스 간에 왼쪽 외부 조인을 수행하고 쿼리된 열을 출력에 표시하는 데 사용됩니다.)
- CE_PROJECTION (이 함수는 원본에서 특정 열을 표시하고 필터를 적용하여 데이터를 제한합니다. 또한 열 이름 별칭 기능도 제공합니다.)
- CE_CALC (비즈니스 요구 사항에 따라 추가 열을 계산하는 데 사용됩니다. 이는 그래픽 모델의 계산 열과 동일합니다.)
아래 목록은 SQL 몇 가지 예와 함께 CE 기능을 사용하면
| 쿼리 이름 | SQL 쿼리 | CE-빌드 기능 |
|---|---|---|
| 컬럼 테이블에서 쿼리 선택 | 'COLUMN_TABLE'에서 C, D를 선택합니다. | CE_COLUMN_TABLE(“COLUMN_TABLE”,[C,D]) |
| 속성 보기에서 쿼리 선택 | 'ATTRIBUTE_VIEW'에서 C, D 선택 | CE_JOIN_VIEW(“ATTRIBUTE_VIEW”,[C,D]) |
| 분석 보기에서 쿼리 선택 | SELECT C, D, SUM(E) “ANALYTIC_VIEW” 그룹별 C,D | CE_OLAP_VIEW(“분석_VIEW”,[C,D]) |
| 계산 보기에서 쿼리 선택 | SELECT C, D, SUM(E) “CALCULATION_VIEW” 그룹별로 C,D | CE_CALC_VIEW(“CALCULATION_VIEW”,[C,D]) |
| 어디에 | SELECT C, D, SUM(E) FROM “ANALYTIC_VIEW” WHERE C = 'value' | var1 = CE_COLUMN_TABLE(“COLUMN_TABLE”); CE_PROJECTION(:var1,[C,D],'”C” = ”value”') |
계산 보기 유형: 차원, 큐브 및 스타 조인이 포함된 큐브
Current SAP HANA 릴리스에서는 계산 뷰를 생성할 때 데이터 범주를 지정해야 하며, 선택한 범주에 따라 뷰의 기능과 보고 도구에서 뷰를 처리하는 방식이 결정됩니다.
| 데이터 카테고리 | 측정값을 포함합니다 | 스타 조인 가능 | 대체 |
|---|---|---|---|
| 외형 치수 | 아니 | 아니 | 속성 보기 |
| 입방체 | 가능 | 아니 | 간단한 분석 시나리오 |
| 별 모양이 있는 큐브 | 가능 | 가능 | 분석적 관점 |
이것이 바로 현재 프로젝트에서 계산 뷰만 구축하는 경우가 많은 이유입니다. 차원 범주 뷰는 다음과 같은 역할을 수행합니다. 속성 보기그리고 스타 조인을 사용하는 큐브는 다음과 같은 역할을 합니다. 분석적 관점따라서 하나의 객체 유형으로 전체 모델을 포괄할 수 있습니다. 기존 속성 및 분석 보기는 계속 작동하며, 개념은 위의 범주에 직접 매핑됩니다.
계산 보기 성능 팁
계산 뷰는 유연성이 뛰어나 잘못 구성해도 문제가 없으며, 동일한 시나리오도 노드 배열 방식에 따라 1초 만에 실행될 수도 있고 1분이 걸릴 수도 있습니다. 6가지 규칙으로 이러한 차이의 대부분을 해결할 수 있습니다.
- 가능한 한 빨리 필터링하세요. 소스에 가장 가까운 투영에 필터를 적용하세요. 집계 후 필터링은 전체 데이터 세트를 먼저 집계한 다음 대부분을 버리는 것을 의미합니다.
- 가능하면 참여하기 전에 데이터를 취합하세요. 두 개의 대규모 상세 데이터 세트를 결합한 후 집계하는 방식은 각 측면을 먼저 집계하는 방식보다 훨씬 더 많은 행을 이동시킵니다.
- 필요한 열만 선택하세요. 노드를 통해 전달되는 모든 열은 전체 실행 기간 동안 메모리에 유지되며, 사용되지 않는 열은 노드 가지치기를 차단합니다.
- 유사한 데이터를 결합할 때는 join보다 union을 사용하는 것이 좋습니다. 실제 값과 계획을 합치는 것은 합집합입니다. 이를 조인으로 표현하면 행이 여러 개로 늘어나므로 이를 되돌리기 위해 필터가 필요합니다.
- 결합 카디널리티를 확인하세요. 데이터가 1부터 N까지인 경우 1부터 1까지로 선언하면 행이 중복되고 모든 측정값이 부풀려지는데, 이것이 잘못된 합계의 가장 일반적인 원인입니다.
- 뷰를 너무 깊게 쌓지 마세요. 분석 뷰에 대한 계산 뷰에 대한 계산 뷰를 사용하는 것은 가능하지만 최적화 및 디버깅이 어렵습니다. 일반적으로 두 단계면 충분합니다.
추측하기보다는 편집기의 성능 분석 도구를 사용하세요. 계획을 세우세요.Viz 어떤 노드가 시간을 소모했는지 보여주는데, 답은 대개 필터가 한 단계 늦게 배치된 경우입니다. 더 포괄적인 접근 방식은 에 설명되어 있습니다. SAP HANA 모델링 튜토리얼 및 절차적 대안 SQL 스크립트.








