SAP SLT 연결과 변경 데이터 수집
SAP SLT 커넥터는 SAP Landscape Transformation Replication Server를 거쳐 SAP 데이터를 수집합니다. 원천 ERP 시스템의 데이터베이스 트리거가 변경 사항을 포착하고 SLT의 Operational Delta Queue(ODQ)에 저장합니다. Foundry는 이 복제 데이터를 읽거나 SLT 서버 자체의 로컬 테이블을 읽습니다.
원천 탐색, 배치 동기화, 증분 수집, 스트리밍 동기화와 Code Repositories의 코드 사용은 모두 일반 제공 기능입니다. SLT Replication Server에는 Palantir Foundry Connector 2.0 for SAP Applications 추가 기능이 설치되어 있어야 합니다.
소스 구성
- Data Connection에서
+ New Source를 선택하고 SAP SLT 소스를 선택합니다. - Foundry 워커에서 실행하도록 연결을 구성합니다. 새 소스에는 Foundry 워커를 사용합니다. 에이전트 워커는 Legacy 구성입니다.
- 호스트, 포트와 인증을 설정합니다. 소스의
Remote context에는 SLT Replication Server와 원천 ERP 시스템 사이의 RFC 연결 식별자를 지정합니다. SLT의 큐를 식별하는 context 및 동기화의 API별 고급 설정과 구분합니다. - Foundry 워커에서는 필요한 외부 통신 정책을 적용합니다. 기존 에이전트 워커에서는 에이전트가 SAP SLT에 도달하고 Foundry와 통신할 수 있도록 네트워크를 설정합니다.
| 인증 방식 | 설정 |
|---|---|
Basic Auth | SAP Connector 설치 때 만든 기술 사용자의 사용자명과 비밀번호를 입력합니다. |
Authentication token | 인증 토큰을 입력합니다. |
Custom authentication header | 인증에 사용할 사용자 정의 HTTP 헤더를 입력합니다. |
No authentication | 에이전트 호스트의 인증서로 인증을 구성한 경우에 사용하는 선택지입니다. 무조건적인 익명 접근을 뜻하지 않습니다. |
SAP 환경에서 자체 서명한 인증서를 사용하면 최초 연결 시 SSL handshake 예외가 발생할 수 있습니다. 시스템에서 사용하는 인증서를 확보하여 Foundry 워커 소스에 추가하거나 기존 에이전트의 신뢰 저장소에 추가합니다.
SAP Data Accelerator 경로
SAP Data Accelerator는 SAP Cloud Connector로 노출한 시스템에 접근하는 SAP의 관리형 연결 서비스입니다. Foundry 통합은 Beta이므로 플랫폼 인스턴스에 따라 제공되지 않을 수 있으며 기능이 변경될 수 있습니다. 이 경로에는 Foundry 워커가 필요합니다.
- 소스의
host와port에는 Cloud Connector의 가상 호스트와 가상 포트를 지정합니다. - Palantir이 제공한 클라이언트 인증서를 적용합니다.
- SAP Data Accelerator의 제어 영역과 데이터 영역으로 외부 통신을 허용합니다.
- 소스 속성
SAP Data Accelerator에 제어 영역 URL을 추가합니다.
배치 동기화
소스 개요에서 배치 동기화 옆의 + New를 선택하고 원천 탐색 화면에서 테이블을 선택합니다. 객체 유형은 다음과 같이 다릅니다.
| 객체 유형 | 읽는 데이터 |
|---|---|
SLT Replication Server | 원천 ERP의 데이터베이스 트리거를 통해 SLT에 복제한 데이터 |
Local table | SLT Replication Server 시스템에 직접 존재하는 로컬 테이블 |
Advanced settings의 일부 항목은 소스 수준에서도 구성할 수 있습니다.
| 설정 | 의미와 조건 |
|---|---|
Max file size | 출력 Parquet 파일당 최대 크기입니다. 기본값은 파일당 50,000행으로, 바이트 단위 값이 아닙니다. |
Clean field names for Avro | 필드 이름을 Foundry 스트림에서 사용하는 Avro 스키마 규칙에 맞게 정리합니다. 스트리밍 파이프라인에 사용할 데이터에는 필요합니다. |
Ignore unexpected values | 활성화하면 해석할 수 없는 날짜나 숫자를 null로 기록하고 동기화 마지막에 해석 예외 요약을 로그에 남깁니다. |
Convert dates to strings | 날짜 필드를 문자열로 수집합니다. 유효한 날짜는 아니지만 SAP 업무상 의미가 있는 값을 후속 처리에서 다룰 때 사용합니다. |
Page size | SAP에서 한 페이지로 가져오는 행 수입니다. 기본값은 50,000, 최솟값은 5,000입니다. |
Parallel paging threads | 페이지를 생성할 SAP 작업 프로세스 수입니다. 이전 ODP 동기화에만 적용하며 OData에는 적용하지 않습니다. |
Plugin worker threads | 페이지를 가져오는 Data Connection 에이전트 스레드 수입니다. |
Remote context | 원천 시스템의 RFC 연결 식별자입니다. 이 동기화 설정을 지정하면 초기 적재는 SLT 큐를 우회하여 RFC로 읽습니다. OData 동기화에는 적용하지 않습니다. |
Serialization engine | 전송할 데이터를 직렬화하는 방식입니다. |
Retries and timeouts | 재시도 횟수, 재시도 간격과 요청 제한 시간을 설정합니다. |
Resource checks | 추출 중 메모리와 CPU 상태를 확인합니다. 비활성화하면 SAP 시스템에 과도한 부하가 걸릴 수 있습니다. |
Debug settings | 추적 로그와 디버그 로그를 설정합니다. 디버그 로그는 SAP에서 백그라운드 프로세스를 시작하므로 필요한 범위에서 사용합니다. |
증분 배치 동기화의 Max rows per sync는 실행당 대략적인 반환 행 수를 제한합니다. 큰 테이블의 초기 수집이 간헐적인 네트워크 실패 등으로 중단될 때, 초기 수집을 여러 번의 작은 실행으로 나누는 데 사용할 수 있습니다.
스트리밍 동기화와 초기 재적재
소스 개요의 Streaming sync 옆에서 + New를 선택합니다. Force snapshot은 증분 변경을 폴링하기 전에 전체 테이블을 읽을지 결정합니다. 다음 상황에서는 전체 재적재가 필요할 수 있습니다.
- 원천 ERP의 데이터베이스 트리거가 초기화되거나 손상된 경우
- SLT Replication Server의 포인터를 잃어버린 경우
전체 테이블을 Foundry로 전송한 뒤에는 Force snapshot을 끄고 저장합니다. 이후에는 변경분을 폴링하도록 해야 합니다.
OData API와 이전 ODP 경로
SAP Note 3255746 버전 11(2026년 4월)은 온프레미스와 프라이빗 클라우드 환경에서 비SAP 애플리케이션이 RFC 기반 ODP Data Replication API, 즉 ODP-RFC를 사용하는 것을 금지합니다. 2026년 6월 SAP 보안 패치는 허용되지 않은 ODP-RFC 호출을 기술적으로 차단합니다. 이전 ODP API를 사용하는 동기화는 이 패치를 적용하기 전에 OData API로 이관해야 합니다.
OData 동기화의 필수 조건은 다음과 같습니다.
- SAP Connector 버전
2.34 (SP34)이상 - SLT 시스템에 설치한
PALODATA추가 기능 구성 요소 SAP_BASIS 7.50 SP09이상
OData는 SAP가 권장하는 ODP 기반 데이터 추출의 HTTP 경로입니다. ODP-RFC 경로가 금지되었다는 사실을 ODP 기반 OData까지 사용할 수 없다는 뜻으로 해석하면 안 됩니다.
| API | 구독과 기능 |
|---|---|
OData | 테이블당 활성 구독 하나만 허용합니다. 기존 구독을 해제하지 않고 같은 테이블에 새 동기화를 만들면 실패합니다. 동기화의 remote context 및 병렬 페이징은 포함하지 않습니다. |
ODP (legacy) | 이전에는 한 테이블에 여러 구독을 두어 서로 다른 동기화가 독립적으로 읽을 수 있었으며 remote context와 병렬 페이징을 지원했습니다. 현재 SAP가 허용하지 않는 경로이므로 새 동기화에 사용하지 않습니다. |
큐 구독 재등록
OData에서는 처음 구성한 동기화가 테이블의 활성 구독을 차지합니다. 이를 다른 동기화 구성으로 교체하려면 새 동기화의 Reset queue registration을 활성화하여 기존 구독을 해제하고 현재 동기화에 할당합니다.
이 설정을 켠 채로 두면 동기화를 실행할 때마다 데이터셋을 전체 재적재합니다. 구독을 옮긴 뒤에는 반드시 끕니다. Force snapshot은 스트림의 전체 초기 읽기를 제어하고, Reset queue registration은 OData 구독의 소유 동기화를 바꾸므로 두 설정의 목적을 구분합니다.