반응형
Notice
Recent Posts
Recent Comments
세상 모든 잡동사니 집합소 스레TV
[DB][HANA] Data aging & NSE 본문
728x90
반응형
🧩 Data Aging의 목적
- 메모리 최적화: SAP HANA는 인메모리 데이터베이스이므로 데이터를 메모리에 올리기 위한 자원이 많이 필요합니다. Data Aging을 활용하면 오래된 데이터는 디스크로 이동시켜 메모리 자원을 절약할 수 있습니다.
- 성능 유지: 데이터를 주기적으로 정리하고 이동시킴으로써 시스템 성능을 오랜 시간 동안 안정적으로 유지할 수 있습니다.
- 스토리지 비용 절감: 자주 사용되지 않는 데이터는 저비용 디스크 저장소로 옮겨 물리적 하드웨어 자원 비용을 절감할 수 있습니다.
🧠 Data Aging의 작동 원리
- 데이터 수명 주기 설정: 데이터가 활발하게 사용되는 시점(핫 데이터)과 거의 사용되지 않는 시점(웜 데이터 또는 콜드 데이터)을 정의합니다.
- 예를 들어, 최근 1개월의 데이터는 메모리에 유지하고, 그 이후의 1년 데이터는 디스크로 이동시킬 수 있습니다.
- 데이터 이동:
- HANA는 자동으로 설정된 기준에 따라 데이터를 이동시킵니다.
- 자주 사용되지 않는 데이터를 **디스크(혹은 외부 스토리지)**로 이동시켜 메모리 공간을 확보하고, 다시 필요할 때 메모리에 올립니다.
- 주기적 관리: 데이터는 주기적인 데이터 에이징 작업에 의해 관리되며, 사용자가 지정한 수명 주기 기준에 따라 자동으로 테이블, 파티션, 행 단위로 데이터가 이동됩니다.
📊 Data Aging의 특징
특성설명
주요 목표 | 오래된 데이터를 디스크로 이동하여 메모리 절약 |
대상 데이터 | 과거 데이터 (예: 트랜잭션 로그, 오래된 거래 내역 등) |
이동 방식 | 사용자가 설정한 기준에 따라 데이터를 메모리에서 디스크로 이동 |
지원되는 DB | 테이블, 파티션 단위로 데이터 이동 가능 |
동작 주기 | 주기적으로 자동 처리, 설정한 일정에 맞춰 실행 |
성능 | 메모리 절약 → 성능 최적화 (자주 사용되는 데이터는 빠르게 액세스 가능) |
🔧 Data Aging 설정 방법
1. 테이블을 Aging 대상으로 지정
테이블 또는 파티션을 Data Aging 대상으로 지정하는 방법입니다. 테이블을 생성할 때, 혹은 기존 테이블을 변경하여 Data Aging을 설정할 수 있습니다.
예시: 테이블을 Data Aging 대상으로 설정
CREATE COLUMN TABLE Sales_History (
ID INT,
Sale_Date DATE,
Amount DECIMAL(10,2)
)
WITH DATA AGING;
ID INT,
Sale_Date DATE,
Amount DECIMAL(10,2)
)
WITH DATA AGING;
기존 테이블에 Data Aging 설정 추가:
ALTER TABLE Sales_History SET DATA AGING;
2. Aging Policy 설정
- 데이터의 유효 기간을 설정하여 언제 데이터를 메모리에서 디스크로 이동시킬지 정의합니다.
- Aging Policy는 시간 기반, 데이터 상태 기반, 사용자 정의 조건 등으로 설정할 수 있습니다.
예시: 데이터를 30일 후에 디스크로 이동시키는 Aging Policy 설정
CREATE AGING POLICY Sales_Data_Aging POLICY
FOR Sales_History
MOVE TO DISK AFTER 30 DAYS;
FOR Sales_History
MOVE TO DISK AFTER 30 DAYS;
3. 자동 Aging 실행
HANA는 자동으로 설정된 기간에 맞춰 데이터를 이동시키는 작업을 처리합니다. 사용자는 이를 배치 작업으로 설정할 수 있습니다.
⚙️ Data Aging의 장점
- 메모리 최적화: 메모리 공간을 절약하고, 핫 데이터만 메모리에 보관하여 성능을 최적화합니다.
- 효율적인 데이터 관리: 오래된 데이터는 디스크로 이동되어 저장 비용이 절감됩니다.
- 빠른 데이터 액세스: 자주 사용되는 데이터만 메모리에 있어 빠른 데이터 액세스가 가능합니다.
- 자동화된 관리: 자동으로 데이터를 이동시켜 데이터 관리를 단순화합니다.
❌ 단점 및 주의 사항
- 성능 저하 가능성: 데이터가 디스크로 이동되면 메모리보다 액세스 속도가 느리기 때문에 디스크에서 데이터를 불러올 때 성능이 저하될 수 있습니다.
- 모니터링 필요: 주기적으로 데이터를 모니터링하고, 적절한 Aging 정책을 적용해야 합니다.
- 디스크 I/O 의존: 디스크로 이동된 데이터는 디스크 I/O에 의존하므로 스토리지 성능이 중요합니다.
📌 Data Aging을 사용할 때 고려할 사항
- Aging 주기 설정: 데이터가 얼마나 자주 사용되는지에 따라 적절한 주기를 설정해야 합니다.
- 스토리지 성능: 디스크로 이동되는 데이터의 저장소 성능이 중요합니다. 빠른 SSD나 고성능 디스크 스토리지 환경이 필요할 수 있습니다.
- 데이터 이동 후 액세스 성능: 디스크에서 데이터를 불러올 때 성능이 저하될 수 있으므로 자주 사용되는 데이터는 계속 메모리에 두는 것이 중요합니다.
📋 요약
항목설명
목적 | 오래된 데이터를 디스크로 이동하여 메모리 절약 |
대상 | 자주 사용되지 않는 데이터 |
작동 방식 | 자동화된 데이터 이동, 사용자가 설정한 기간 기준으로 |
장점 | 메모리 절약, 저장 비용 절감, 성능 최적화 |
단점 | 디스크 액세스 속도 저하 가능, 스토리지 성능 의존 |
📌 실무 적용 예시:
- 기본적인 데이터 이동 설정: 일정 기간 동안 사용되지 않은 트랜잭션 로그는 Data Aging을 사용하여 디스크로 이동.
- SAP BW 시스템: 오래된 적재 데이터를 디스크로 이동하여 메모리 자원 확보.
- 이력 관리 시스템: 수년 된 과거 거래 내역을 Data Aging을 사용해 자동으로 디스크로 이동.
🔷 SAP HANA NSE (Native Storage Extension)란?
SAP HANA NSE는 자주 사용되지 않는 데이터를 메모리(RAM)가 아닌 **디스크(extended store)**에 저장하고, 필요할 때만 로딩해서 사용하는 하이브리드 저장 방식이에요.
즉,
HANA의 "모든 데이터를 메모리에 올리는" 기존 방식의 한계를 극복하기 위한 기능이에요.
🧠 왜 필요할까?
- 전통적인 SAP HANA는 완전 인메모리 기반이라 RAM 사용량이 엄청나게 커요.
- 하지만 모든 데이터가 자주 접근되진 않죠.
👉 예: 지난 5년간의 거래 내역 중 최근 3개월만 자주 씀. - 이럴 때, 자주 쓰는 데이터는 메모리에,
드물게 쓰는 데이터는 디스크에 저장하는 게 효율적이겠죠?
그래서 등장한 게 NSE입니다!
🔍 NSE의 구조
SAP HANA는 데이터를 두 가지 영역에 저장합니다:
영역설명저장 위치
Hot Store | 자주 접근되는 데이터 | 메모리 (RAM) |
Warm Store (NSE) | 덜 자주 접근되는 데이터 | 디스크 (페이지 캐시로 접근) |
⚙️ NSE의 동작 방식
- NSE에 저장된 테이블은 디스크에 위치하지만,
- 접근 시 OS 페이지 캐시를 통해 자동으로 메모리에 올라옵니다 (부분적으로만 로딩).
- DB 엔진이 자동으로 핫/웜 데이터를 구분하거나,
DBA가 직접 테이블/파티션/컬럼 단위로 warm 데이터 지정할 수도 있어요.
🛠 사용 방법 예시
-- 테이블을 warm store에 생성
CREATE TABLE z_sales_history (
id INT,
sale_date DATE,
amount DECIMAL(10,2)
) TABLE PLACEMENT WARM;
또는 기존 테이블을 warm 영역으로 변경:
ALTER TABLE z_sales_history SET TABLE PLACEMENT WARM;
📊 NSE의 장점
장점설명
메모리 절약 | RAM 사용량을 획기적으로 줄일 수 있음 |
대용량 데이터 처리 | 수십 TB의 데이터도 효율적으로 저장 가능 |
유연한 데이터 계층화 | 자주 쓰는 데이터는 메모리, 오래된 데이터는 디스크 |
비용 절감 | 인메모리 전용 시스템보다 RAM 요구량 감소 → 하드웨어 비용 절감 |
⚠️ NSE의 단점 또는 주의사항
주의사항설명
❗ 약간의 성능 저하 | Warm 데이터는 디스크에서 로딩되므로 핫보다 느림 |
💾 디스크 I/O 의존 | 빠른 스토리지 (SSD 이상) 권장 |
🔧 모니터링 필요 | 자동 계층화 설정 시 어떤 데이터가 warm인지 주기적 확인 필요 |
✅ NSE 사용 조건
조건설명
SAP HANA 2.0 SPS 04 이상 | NSE 기능이 공식 포함됨 |
HANA 플랫폼 에디션 이상 | Express Edition에서는 제한적 |
최소 HANA revision 확인 필요 | 최신 기능은 최신 버전 필요 |
📌 요약 정리
항목내용
기능 | RAM 외부(디스크)에 warm 데이터 저장 |
목적 | 메모리 절감, 대용량 처리 |
저장 방식 | Hot (메모리), Warm (디스크/NSE) |
활용 대상 | 오래된 로그, 이력 데이터 등 |
성능 | Hot보단 느리지만 효율성 ↑ |
📘 실무 적용 팁
- 데이터 분석 시스템에서 과거 2~3년 데이터는 warm으로 옮겨두기
- DSO나 이력 테이블 등에 NSE 적용 → RAM 절약 극대화
- NSE + Data Aging 기능과 함께 사용하면 더욱 효과적
반응형
'기술 > HANA DB' 카테고리의 다른 글
[DB] SAP HANA Schema (0) | 2025.04.28 |
---|
Comments