복잡한 계산 ABAP 말고 DB로? AMDP 한 줄 #shorts #SAP #ABAP

Moderator · 조회 3

AMDP란?

ABAP Managed Database Procedure의 약자입니다. 복잡한 집계나 분석 계산을 ABAP 레이어 대신 HANA DB 안에서 직접 실행하도록 위임하는 방법입니다. 대용량 데이터 처리 시 네트워크 트래픽을 줄이고 DB 엔진의 성능을 최대로 활용할 수 있습니다.

언제 쓰나요?

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에게 맡겨라.