BW

aDSO 및 모델링 활용 이것저것

초롱불 2025. 3. 27. 22:28

개요

BW를 개발하다보면 자주 사용할 일은 없으나 간간히 보고 쓰게 되는 정보들이 있다. 그런 정보들을 한데 모아서 정리해보고자 한다.

aDSO 리포팅

aDSO에서 바로 리포팅을 하는 건 권장되지 않는다. aDSO는 데이터를 저장하는 persistance Layer로 쓰라고 있는거지 리포팅 레이어로 쓰라고 만들어진 게 아니기 때문이다. 하지만 쿼리를 만들 수는 있다. aDSO로 리포팅을하면 나타나는 특징을 다루고자 한다.

 

- Navigation Attribute는 ADSO에서 접근 안 됨.

- Infoobject는 Master Data Check가 No Masterdata Check/No Reporting이 아니어야 보임

- aDSO 필드는 특정 조건을 만족할 때만 리포팅에서 보임

  1. 필드 이름이 20자 이하
  2. 다음 조건 만족하는 필드 유형 
    • ---------특성------------------
    • CHAR : 길이 1 ~ 250
    • NUMC : 길이 1 ~ 250
    • CUKY : 통화 키, 길이 5
    • UNIT : 단위, 길이 3
    • LANG : 언어 키, 길이 1
    • DATS : 날짜, 길이 8
    • TIMS : 시간, 길이 6
    • ----------키피겨--------------------
    • INT4 : 정수
    • FLOAT : 부동소수점
    • DEC : 길이 16 ~ 31, 소수점 0 ~ 14자리
    • CURR : 길이 1 ~ 31, 소수점 1 ~ 14자리
      • CUKY 특성과 연결되어야 하며, 총 길이는 소수점 자릿수 이상
    • QUAN : 길이 1 ~ 31, 소수점 0 ~ 14자리
      • UNIT 특성과 연결되어야 하며, 총 길이는 소수점 자릿수 이상
  3. 만약 필드가 직접 보이지 않는 경우 Open ODS View를 생성하여 필요한 데이터유형과 필드 이름을 지정 가능

단위/통화 참조

단위(Unit) 통화(Currency) 참조 Key Figure 모델링 방식

 

  1. infoObject 기반 방식
    • key figure와 통화 단위 간의 관계는 infoObject를 통해 보장
    • 상위에 위치한 compositeProvider에서도 이 관계를 인식
    • 단 Key Figure와 연결된 통화 특성은 모두 리포팅에서 보여져야만 함
  2. 순수 필드 기반 방식
    • Key FIgure와 통화 정보를 임의의 필드 타입으로 저장
    • 이때 필드 타입이 리포팅 조건을 만족하면 CompositeProvider에서 표시됨
    • 조건을 만족하지 않는 경우 aDSO위에 Open ODS View를 생성하여 타입과 필드 이름 등을 매핑해야 gka
    • 그 후 CompositeProvider에서 Key Figure와 통화 필드 간 연결을 설정
  3. 필드 기반이지만 메타데이터를 활용하는 방식
    • Key FIgure는 데이터 타입이 CURR이고 통화는 데이터 타입이 CUKY인 필드로 가각 생성
    • 이 경우 Unit/CUrrency 입력란이 활성화 되며 해당 필드에 CUKY 타입 필드를 지정해야함
    • 통화 필드는 자동으로 0CURRENCY InfoObject와 연결
    • 이 연결정보는 메타 데이터에 저장되며 CompositeProvider는 이를 통해 자동으로 연결 파악

필드 기반 메타데이터

모델링 제한사항

- aDSO는 최대 120개의 Key 필드 포함 가능

- aDSO의 Key는 InfoObject, 필드, 둘의 조합으로 구성 가능

- aDSO의 전체 필드수는 최대 745개

- Non-cumulative key figure 설정 모델링시 744개

 

- aDSO는 리포팅 시 Nav Attribute 사용 불가능 하지만 Transformation에선 가능

aDSO Detail에서 Use Navigation Attribute in Extraction 체크 시 가능.

 

 

- CompositeProvider에서 Nav Attribute활성화 방법 - Output탭, 오른쪽 클릭, Nav Attr..

output탭에서 추가

성능향상 권장 사항

- 일반적인 ADSO에서는 특성값만 저장되고 SID값은 저장 안됨. 이로 인해 SID 테이블과의 조인이 필요하여 쿼리 성능저하가 일어남

- 쿼리에서 자주 사용되는 특성이 하이 카디널리티일 때 - " Master-Data Check during Staging/Activation and persist SID in DataStore"

- SID를 저장하여 조인 성능 향상. 속성 값을 읽을 때에도 내부 조인 비교 방식이 더 빠르기에 성능이 더 좋아짐.

- Compound Characteristics에 효과적

- 시간 특성, 단위, 통화 등은 카디널리티가 낮기에 SID 저장 안 됨

 

파티셔닝

파티셔닝은 전체 데이터를 중복 없이 독립적 여러 단위로 분할

 

- 성능향상

- 대량 데이터 적재 시 필수

  한 파티션 당 2^31 약 21억 개 레코드만 저장 가능

- Data Tiering Optimization 사용 시 파티셔닝 필요

 

1. 기본 파티셔닝

  • 모든 ADSO 테이블 적용
    • ADSO 생성 시점부터 기본적 활성화
  • 기본적으로 해시 기반 파티셔닝 수행하여 데이터를 HANA의 여러 스케일아웃 노드에 분산
  • SAP HANA 내부에는 TABLE_PLACEMENT라는 커스터마이징 테이블이 있어 이 설정을 기반으로 landscape redistribution이 실행되어 ADSO 테이블이 파티셔닝 됨

2. Automatic Secondary Level Partitioning (자동)

  • ADSO의 Inbound 테이블과 Change Log 테이블에 대해 Request TSN을 기준으로 Range 파티셔닝이 자동 적용

3. Manual Secondary Level Partioning (수동)

  • ADSO 모델링 UI의 Setting 탭에서 설정 가능한 범위 기반 파티셔닝
  • 일반적으로 시간, 국가, 회사코드 등으로 파티셔닝
  • 이 파티셔닝은 활성화 테이블에만 적용 -> 데이터 마트 ADSO의 데이터를 활성화하지 않으면 파티셔닝이 적용안됨

aDSO Setting tab

 

4. SAP 권장 사항

 

  • 의미기반 파티셔닝
    • 하나의 큰 ADSO를 물리적으로 나누기보다는 논리적으로 여러 개의 ADSO로 나누어 관리
  • 데이터 티어링 최적화 (Data Tiering Optimization, DTO)
    • 자주 사용되지 않는 데이터나 이력 데이터를 다른 저장소에 이동

인덱스

- 복잡한 룩업 등을 위해서 aDSO에 보조 인덱스를 추가 생성 가능

- 인덱스는 Active Table에 생성. Active Table이 존재하지 않는 경우 Inbound Table에 생성

- 단 인덱스는 SAP HANA 메모리 사용량 및 인덱스 갱시 시 자원 처리량을 소모 

aDSO Setting tab

 

'BW' 카테고리의 다른 글

SAP HANA 주요 개념 정리  (0) 2025.03.18
LSA++ 아키텍처  (0) 2025.03.10
SAP Certi C_BW4H 합격 후기  (0) 2025.03.02
SAP 러닝허브 구독 후  (0) 2025.02.19
BW - 개념정리  (1) 2024.12.09