복잡한 계산 ABAP 말고 DB로? AMDP 한 줄 #shorts #SAP #ABAP
Moderator
· 조회 3
AMDP란?
ABAP Managed Database Procedure의 약자입니다. 복잡한 집계나 분석 계산을 ABAP 레이어 대신 HANA DB 안에서 직접 실행하도록 위임하는 방법입니다. 대용량 데이터 처리 시 네트워크 트래픽을 줄이고 DB 엔진의 성능을 최대로 활용할 수 있습니다.
언제 쓰나요?
- 수백만 건 데이터 집계/분석
- ABAP으로 옮기면 느린 복잡한 쿼리
- HANA 전용 함수(SERIES, 예측)를 활용할 때
Class 선언
CLASS zcl_sales_amdp DEFINITION PUBLIC FINAL.
PUBLIC SECTION.
INTERFACES if_amdp_function_provider.
CLASS-METHODS get_top_sales
FOR FUNCTION z_get_top_sales.
ENDCLASS.Implementation
CLASS zcl_sales_amdp IMPLEMENTATION.
METHOD get_top_sales
BY DATABASE PROCEDURE FOR HDB
LANGUAGE SQLSCRIPT
OPTIONS READ-ONLY
USING zsales.
it_result = SELECT TOP 10
customer_id,
SUM(amount) AS total
FROM :zsales
GROUP BY customer_id
ORDER BY total DESC;
ENDMETHOD.
ENDCLASS.ABAP에서 호출
DATA lt_result TYPE TABLE OF zs_top_sales.
CALL DATABASE PROCEDURE z_get_top_sales
EXPORTING
it_result = lt_result.핵심 포인트
PUSH-DOWN 원칙: 데이터를 ABAP으로 가져와서 계산하지 말고, 계산을 DB로 내려보내세요. AMDP는 HANA가 가장 잘하는 일을 HANA에게 맡기는 패턴입니다.
핵심 한 줄
AMDP = ABAP 클래스로 선언하고 HANA SQLSCRIPT로 구현 — 복잡한 계산은 DB에게 맡겨라.