이 문서에서는 Vertex AI SDK for ABAP를 사용하여 온라인 스토어 동기화, 온라인 스토어에서 특성 제공, 항목 또는 임베딩을 사용한 온라인 Feature Store 검색 등의 작업을 수행하기 위해 Vertex AI Feature Store를 사용하는 방법에 대해 설명합니다.
Vertex AI Feature Store는 관리형 클라우드 네이티브 Feature Store 서비스입니다. BigQuery 테이블 또는 뷰에서 특성 데이터를 관리하여 ML 특성 관리 및 온라인 서빙 프로세스를 간소화합니다.
Vertex AI Feature Store 설정의 일반적인 워크플로에서 먼저 BigQuery에서는 SAP 데이터 소스를 준비하고, 특성 그룹 및 특성을 만들어 데이터 소스를 등록하고, 온라인 스토어 및 특성 뷰 리소스를 설정하는 것입니다. 그런 다음 특성 뷰에서 최신 특성 값을 온라인으로 서빙하거나 온라인 Feature Store에서 유사성 검색을 실행할 수 있습니다. Vertex AI Feature Store를 설정하는 방법에 관한 자세한 내용은 Vertex AI Feature Store를 참고하세요.
Vertex AI Feature Store가 온라인 서빙을 할 준비가 되면 다음 작업을 위해 ABAP용 Vertex AI SDK를 사용할 수 있습니다.
- 모델 예측 중에 실시간 서빙으로 가장 최신의 정확한 특성 값을 제공하려면 온라인 스토어를 BigQuery의 특성 데이터 소스와 동기화하세요.
- 실시간 애플리케이션에 온라인 스토어의 특성 값을 제공하려면 온라인 스토어에서 특성을 제공합니다.
- 온라인 스토어에서 의미론적으로 유사하거나 관련된 항목 목록을 검색하려면 엔티티 또는 임베딩을 사용하여 검색합니다.
시작하기 전에
Vertex AI Feature Store에서 ABAP용 Vertex AI SDK를 사용하기 전에 사용자 또는 관리자가 다음 기본 요건을 완료했는지 확인하세요.
- Google Cloud 프로젝트에서 Vertex AI API를 사용 설정합니다.
- SAP 환경에 ABAP용 Vertex AI SDK를 설치했습니다.
- Vertex AI API에 액세스하도록 인증을 설정합니다.
- 온라인 특성 서빙을 설정합니다. 엔드 투 엔드 워크플로에서 Vertex AI Feature Store를 사용하여 BigQuery에서 데이터를 호스팅하고 서빙하기 위해 온라인 스토어를 만들고 사용하는 방법을 알아보려면 Vertex AI Feature Store용 Jupyter 노트북 튜토리얼을 참고하세요.
Vertex AI Feature Store용 ABAP 클래스 인스턴스화
ABAP 애플리케이션에서 Vertex AI Feature Store를 사용하려면 /GOOG/CL_FEATURE_STORE
클래스를 인스턴스화합니다.
DATA(lo_client) = NEW /goog/cl_feature_store(
iv_key_name = 'CLIENT_KEY'
iv_location = 'LOCATION_ID'
iv_feature_store_id = 'FEATURE_ONLINE_STORE_NAME' ).
다음을 바꿉니다.
CLIENT_KEY
: 인증을 위해 구성된 클라이언트 키입니다.LOCATION_ID
: 온라인 스토어가 있는 리전입니다(예:us-central1
).FEATURE_ONLINE_STORE_NAME
: 특성 뷰가 포함된 온라인 스토어의 이름입니다.
온라인 스토어 동기화
온라인 스토어에서 모델 예측 중에 실시간 서빙을 위한 가장 최신의 정확한 기능 값을 확보하려면 온라인 스토어의 특성 뷰 리소스를 BigQuery의 특성 데이터 소스와 동기화해야 합니다.
시작하기 전에
리전 엔드포인트를 통해 Vertex AI Feature Store에 액세스하기 때문에 Vertex AI API에 대한 연결을 설정하려면 RFC 대상을 만들어야 합니다. 그런 다음 서비스 매핑 테이블에서 RFC 대상을 지정합니다.
Vertex AI Feature Store가 있는 리전 엔드포인트로 Vertex AI API의 RFC 대상을 만듭니다. 예를 들어 Vertex AI Feature Store가
us-east1
에 있는 경우 대상 호스트의 엔드포인트는us-east1-aiplatform.googleapis.com
이 됩니다. 리전 엔드포인트에 대한 자세한 내용은 서비스 엔드포인트를 참고하세요. RFC 대상을 만들려면 다음 단계를 수행합니다.SAP GUI에서 트랜잭션 코드
SM59
를 실행합니다.새 RFC 대상을 만듭니다. 생성된 RFC 대상의 연결 유형이
G - HTTP connection to external server
로 설정되었는지 확인합니다.기술 설정 탭으로 이동하여 다음 세부정보를 입력합니다.
타겟 호스트: Vertex AI Feature Store가 있는 리전 엔드포인트를 제공합니다.
서비스 번호:
443
를 입력합니다. 보안 통신에 사용되는 포트 번호입니다.
로그온 및 보안 탭으로 이동하여 SSL 인증서 필드가 기본 SSL 클라이언트(표준) 옵션으로 설정되어 있는지 확인합니다.
변경사항을 저장합니다.
Vertex AI API의 서비스 매핑 테이블을 구성합니다.
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다.ABAP SDK for Google Cloud > 기본 설정 > 서비스 매핑 구성을 클릭합니다.
새 항목을 클릭합니다.
Vertex AI API의 RFC 대상을 지정합니다.
이름 서비스 이름 RFC 대상 인증을 위한 클라이언트 키입니다. aiplatform:v1
RFC 대상의 이름입니다. 새 항목을 저장합니다.
Vertex AI Feature Store 동기화
특성 뷰에서 데이터 동기화를 시작하려면 SYNC_FEATURE_DATA_TO_FS
메서드를 사용합니다.
DATA(lv_feature_view_sync_id) = lo_client->sync_feature_data_to_fs(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
)->get_feature_sync_id( ).
FEATURE_VIEW_NAME
을 데이터 동기화를 시작하려는 특성 뷰의 이름으로 바꿉니다.
이 메서드는 동기화 상태를 확인하는 데 사용할 수 있는 특성 뷰 동기화 ID를 반환합니다.
Vertex AI Feature Store 동기화 상태 확인하기
Vertex AI Feature Store 동기화 상태를 확인하려면 GET_FEATURE_SYNC_STATUS
메서드를 사용하면 됩니다.
DATA(ls_status) = lo_client->get_feature_sync_status(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_feature_sync_id = 'FEATURE_VIEW_SYNC_ID'
)->get_feature_sync_status( ).
다음을 바꿉니다.
FEATURE_VIEW_NAME
: 동기화 상태를 확인하려는 특성 뷰의 이름입니다.FEATURE_VIEW_SYNC_ID
: Vertex AI Feature Store 동기화에서 수신한 특성 뷰 동기화 ID입니다.이 메서드는 오류 메시지(있는 경우)와 함께 다음 상태 중 하나를 반환합니다.
C: Complete
,R: Running
또는F: Failed
SAP 백그라운드 작업을 사용하여 Vertex AI Feature Store 동기화
SAP 백그라운드 작업을 사용하여 특성 뷰에서 데이터 동기화를 시작하려면 SYNC_FEATURE_DATA_TO_FS_BGJOB
메서드를 사용하면 됩니다.
이 메서드는 SAP 시스템에 백그라운드 작업을 생성하여 Feature Store 동기화를 시작하고 30초에 한 번씩 Feature Store 동기화 상태를 확인합니다.
Feature Store 동기화 상태가 완료되거나 실패하면 백그라운드 작업이 메시지와 함께 완료됩니다.
Feature Store 동기화가 실행 중인 경우 백그라운드 작업은 지정된 TIMEOUT
값까지 실행됩니다. 제한 시간이 지나면 백그라운드 작업이 완료되지만 Feature Store 동기화는 계속 실행됩니다.
DATA(ls_bgjob_details) = lo_client->sync_feature_data_to_fs_bgjob(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_timeout = TIMEOUT
)->get_background_job_details( ).
다음을 바꿉니다.
FEATURE_VIEW_NAME
: 데이터 동기화를 수동으로 시작하려는 특성 뷰의 이름입니다.TIMEOUT
: 백그라운드 작업이 타임아웃되는 시간(초)입니다. Vertex AI Feature Store 동기화에는 영향을 미치지 않습니다.
이 메서드는 백그라운드 작업 이름과 해당 ID를 반환합니다. 이 작업은 SAP 내에서 모니터링하여 Feature Store 동기화 상태를 확인할 수 있습니다.
온라인 스토어의 특성 제공
제품 추천과 같은 실시간 애플리케이션을 위해 온라인 스토어의 특성 값을 제공할 수 있습니다. 온라인 스토어에 구성된 온라인 서빙 유형에 따라 다음 방법 중 하나로 특성 값을 제공할 수 있습니다.
- Bigtable 온라인 서빙을 사용하여 특성 값 가져오기
- 공개 엔드포인트로 최적화된 온라인 서빙을 사용하여 특성 값을 가져옵니다.
- Private Service Connect 엔드포인트로 최적화된 온라인 서빙을 사용하여 특성 값을 가져옵니다.
특성 값을 제공하는 방법에 관한 자세한 내용은 온라인 스토어에서 특성 제공을 참고하세요.
시작하기 전에
온라인 스토어에서 특성 값을 서빙하려면 먼저 온라인 스토어 세부정보에서 공개 엔드포인트 도메인 이름을 검색하고 엔드포인트의 RFC 대상을 만든 다음 서비스 매핑 테이블에 RFC 대상을 지정해야 합니다.
온라인 스토어의 공개 엔드포인트 도메인 이름 검색
-
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다. - ABAP SDK for Google Cloud > 유틸리티 > Vertex AI SDK: Feature Store 및 벡터 검색의 RFC 정보 가져오기를 클릭합니다.
- Feature Store 세부정보 가져오기를 선택합니다.
다음 매개변수를 입력합니다.
- Google Cloud 키 이름: Google Cloud에 인증하기 위한 클라이언트 키입니다.
- 위치: 온라인 스토어가 있는 리전입니다.
- Feature Store ID: 특성 뷰가 포함된 온라인 스토어의 이름입니다.
실행을 클릭하여 세부정보를 확인합니다. 호스트 라벨에 공개 엔드포인트 도메인 이름을 기록합니다.
-
SAP GUI에서 트랜잭션 코드
리전 엔드포인트, 공개 엔드포인트 도메인 이름 또는 온라인 스토어의 Private Service Connect 엔드포인트에 대한 RFC 대상을 만듭니다. RFC 대상을 만들려면 다음 단계를 수행합니다.
SAP GUI에서 트랜잭션 코드
SM59
를 실행합니다.새 RFC 대상을 만듭니다. 생성된 RFC 대상의 연결 유형이
G - HTTP connection to external server
로 설정되었는지 확인합니다.기술 설정 탭으로 이동하여 다음 세부정보를 입력합니다.
타겟 호스트: Vertex AI Feature Store가 있는 공개 엔드포인트 도메인 이름을 제공합니다.
서비스 번호:
443
를 입력합니다. 보안 통신에 사용되는 포트 번호입니다.
로그온 및 보안 탭으로 이동하여 SSL 인증서 필드가 기본 SSL 클라이언트(표준) 옵션으로 설정되어 있는지 확인합니다.
변경사항을 저장합니다.
Vertex AI API의 서비스 매핑 테이블을 구성합니다.
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다.ABAP SDK for Google Cloud > 기본 설정 > 서비스 매핑 구성을 클릭합니다.
새 항목을 클릭합니다.
Vertex AI API의 RFC 대상을 지정합니다.
이름 서비스 이름 RFC 대상 인증을 위한 클라이언트 키입니다. apiinvoker:v1
RFC 대상의 이름입니다. 새 항목을 저장합니다.
특성 값 가져오기
Vertex AI Feature Store에서 항목은 고객, 제품, 기타 데이터 포인트와 같이 특성을 추적하려는 항목을 나타냅니다. 각 항목은 특성 집합 및 해당 값과 연결됩니다.
단일 엔티티 ID를 지정하여 특성 값을 가져오려면 SERVE_FEATURE_VALUES
메서드를 사용하세요.
DATA(lt_features) = lo_client->serve_feature_values(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
it_entity_id = 'ENTITY_ID'
)->get_features( ).
다음을 바꿉니다.
FEATURE_VIEW_NAME
: 특성 값을 제공하려는 특성 뷰의 이름입니다.ENTITY_ID
: 최신 특성 값을 제공하려는 특성 레코드의 ID 열 값입니다. 또는 엔터티 ID를 구성하는 부품 배열을 제공할 수 있습니다. ID 열이 특성 뷰에 정의된 것과 동일한 순서인지 확인합니다.
근사 최근접 이웃 검색
최적화된 온라인 서빙을 위해 만든 온라인 스토어의 경우 벡터 유사성 검색을 수행하여 의미상으로 유사하거나 관련있는 항목 목록(근사 최근접 이웃이라고도 함)을 검색할 수 있습니다. 엔티티 ID 또는 임베딩을 기반으로 근사 최근접 이웃을 검색할 수 있습니다.
시작하기 전에
최적화된 온라인 서빙을 위한 온라인 스토어를 만들면 Vertex AI Feature Store에서 온라인 스토어의 공개 엔드포인트 도메인 이름을 생성합니다. 온라인 스토어의 특성 뷰에서 최근접 이웃 검색을 시작하려면 먼저 온라인 스토어 세부정보에서 공개 엔드포인트 도메인 이름을 가져오고, 엔드포인트의 RFC 대상을 만든 다음 서비스 매핑 테이블에 RFC 대상을 지정해야 합니다.
온라인 스토어의 공개 엔드포인트 도메인 이름 검색
-
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다. - ABAP SDK for Google Cloud > 유틸리티 > Vertex AI SDK: Feature Store 및 벡터 검색의 RFC 정보 가져오기를 클릭합니다.
- Feature Store 세부정보 가져오기를 선택합니다.
다음 매개변수를 입력합니다.
- Google Cloud 키 이름: Google Cloud에 인증하기 위한 클라이언트 키입니다.
- 위치: 온라인 스토어가 있는 리전입니다.
- Feature Store ID: 특성 뷰가 포함된 온라인 스토어의 이름입니다.
실행을 클릭하여 세부정보를 확인합니다. 호스트 라벨에 공개 엔드포인트 도메인 이름을 기록합니다.
-
SAP GUI에서 트랜잭션 코드
온라인 스토어의 공개 엔드포인트 도메인 이름에 대한 RFC 대상을 만듭니다.
SAP GUI에서 트랜잭션 코드
SM59
를 실행합니다.새 RFC 대상을 만듭니다. 생성된 RFC 대상의 연결 유형이
G - HTTP connection to external server
로 설정되었는지 확인합니다.기술 설정 탭으로 이동하여 다음 세부정보를 입력합니다.
타겟 호스트: 온라인 스토어의 공개 엔드포인트 도메인 이름을 입력합니다.
서비스 번호:
443
를 입력합니다. 보안 통신에 사용되는 포트 번호입니다.
로그온 및 보안 탭으로 이동하여 SSL 인증서 필드가 기본 SSL 클라이언트(표준) 옵션으로 설정되어 있는지 확인합니다.
변경사항을 저장합니다.
Vertex AI API의 서비스 매핑 테이블을 구성합니다.
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다.ABAP SDK for Google Cloud > 기본 설정 > 서비스 매핑 구성을 클릭합니다.
새 항목을 클릭합니다.
Vertex AI API의 RFC 대상을 지정합니다.
이름 서비스 이름 RFC 대상 인증을 위한 클라이언트 키입니다. apiinvoker:v1
RFC 대상의 이름입니다. 새 항목을 저장합니다.
임베딩의 최근접 이웃 일치 검색
임베딩을 지정하여 의미상 관련된 항목을 검색할 수 있습니다.
임베딩의 최근접 이웃을 검색하려면 SEARCH_USING_EMBEDDINGS
메서드를 사용하여 요청을 전송합니다.
DATA(lt_embeddings) = VALUE /goog/cl_aiplatform_v1=>ty_t_/goog/num_float( EMBEDDING_DATA ).
DATA(lt_neighbours) = lo_client->search_using_embeddings(
EXPORTING
iv_feature_view_id = 'FEATURE_VIEW_NAME'
it_embeddings = lt_embeddings
is_search_params = VALUE #( neighbor_count = 'NEIGHBOR_COUNT'
return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).
다음을 바꿉니다.
EMBEDDING_DATA
: 근사 최근접 이웃 일치를 검색하려는 임베딩입니다. 임베딩은 플로팅 값의 배열로 표시됩니다.FEATURE_VIEW_NAME
: 근사 최근접 이웃 일치를 검색하려는 특성 뷰의 이름입니다.NEIGHBOR_COUNT
: 검색하려는 근사 최근접 이웃 수입니다.RETURN_FULL_ENTITY
: 선택사항. 응답에 항목의 특성을 포함하거나 제외할지 여부를 지정합니다. 응답에 항목과 함께 특성을 포함하려면ABAP_TRUE
를 입력합니다. 기본값은ABAP_FALSE
입니다.
항목의 최근접 이웃 일치 검색
엔티티 ID를 지정하여 의미상 관련된 항목을 검색할 수 있습니다.
엔티티 ID의 최근접 이웃을 검색하려면 SEARCH_USING_ENTITY
메서드를 사용하여 요청을 전송합니다.
DATA(lt_neighbours) = lo_client->search_using_entity(
EXPORTING
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_entity_id = 'ENTITY_ID'
is_search_params = VALUE #( neighbor_count = 'NEIGHBOR_COUNT'
return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).
다음을 바꿉니다.
FEATURE_VIEW_NAME
: 근사 최근접 이웃 일치를 검색하려는 특성 뷰의 이름입니다.ENTITY_ID:
: 근사 최근접 이웃 일치를 검색하려는 항목의 엔티티 ID입니다.NEIGHBOR_COUNT
: 검색하려는 근사 최근접 이웃 수입니다.RETURN_FULL_ENTITY
: 선택사항. 응답에 항목의 특성을 포함하거나 제외할지 여부를 지정합니다. 응답에 항목과 함께 특성을 포함하려면ABAP_TRUE
를 입력합니다. 기본값은ABAP_FALSE
입니다.
다음 단계
ABAP SDK for Google Cloud의 온프레미스 또는 모든 클라우드 버전으로 애플리케이션 개발을 알아보세요.
Cloud 포럼의 커뮤니티에서 ABAP용 Vertex AI SDK에 대해 질문하고 논의하세요.