

# 델타 토큰 기반 증분 전송
<a name="sap-odata-incremental-transfers"></a>

이를 지원하는 ODP 지원 엔터티에 대해 변경 데이터 캡처(CDC)를 사용하여 증분 전송을 활성화하려면 다음 단계를 따르세요.

1. 스크립트 모드에서 증분 전송 작업을 생성합니다.

1. DataFrame 또는 Glue DynamicFrame을 생성할 때 `"ENABLE_CDC": "True"` 옵션을 전달해야 합니다. 이 옵션을 사용하면 SAP로부터 변경된 데이터의 후속 검색에 사용할 수 있는 델타 토큰을 수신할 수 있습니다.

델타 토큰은 DELTA\_TOKEN 열의 마지막 데이터프레임 행에 있습니다. 이 토큰을 후속 직접 호출에서 커넥터 옵션으로 사용하여 다음 데이터세트를 증분 검색할 수 있습니다.

**예제**
+ DynamicFrame을 생성할 때 `ENABLE_CDC` 플래그를 `true`로 설정합니다. 참고: `ENABLE_CDC`는 기본적으로 `false`입니다. 델타 대기열을 초기화하지 않으려는 경우 이 플래그를 보내거나 true로 설정할 필요가 없습니다. 이 플래그를 true로 설정하지 않으면 전체 로드 추출이 수행됩니다.

  ```
  sapodata_df = glueContext.create_dynamic_frame.from_options(
      connection_type="SAPOData",
      connection_options={
          "connectionName": "connectionName",
          "ENTITY_NAME": "entityName",
          "ENABLE_CDC": "true"
      }, transformation_ctx=key)
  
  # Extract the delta token from the last row of the DELTA_TOKEN column
  delta_token_1 = your_logic_to_extract_delta_token(sapodata_df) # e.g., D20241029164449_000370000
  ```
+ 새 이벤트를 검색하는 옵션으로 추출된 델타 토큰을 전달할 수 있습니다.

  ```
  sapodata_df_2 = glueContext.create_dynamic_frame.from_options(
      connection_type="SAPOData",
      connection_options={
          "connectionName": "connectionName",
          "ENTITY_NAME": "entityName",
          // passing the delta token retrieved in the last run
          "DELTA_TOKEN": delta_token_1
      } , transformation_ctx=key)
  
  # Extract the new delta token for the next run
  delta_token_2 = your_logic_to_extract_delta_token(sapodata_df_2)
  ```

`DELTA_TOKEN`이 있는 마지막 레코드는 소스의 트랜잭션 레코드가 아니며 델타 토큰 값을 전달할 목적으로만 존재합니다.

`DELTA_TOKEN` 외에도 데이터프레임의 각 행에서 다음 필드가 반환됩니다.
+ **GLUE\_FETCH\_SQ**: EPOC 타임스탬프에서 생성된 시퀀스 필드(레코드가 수신된 순서에 따름)이며 각 레코드에 대해 고유합니다. 소스 시스템에서 변경 순서를 알거나 설정해야 하는 경우 사용할 수 있습니다. 이 필드는 ODP 지원 엔터티에만 표시됩니다.
+ **DML\_STATUS**: 소스에서 새로 삽입된 레코드 및 업데이트된 레코드에 대해서는 `UPDATED`, 소스에서 삭제된 레코드에 대해서는 `DELETED`를 표시합니다.

상태를 관리하고 델타 토큰을 재사용하여 예제를 통해 변경된 레코드를 검색하는 방법에 대한 자세한 내용은 [SAP OData 상태 관리 스크립트 사용](sap-odata-state-management-script.md) 섹션을 참조하세요.

## 델타 토큰 무효화
<a name="sap-odata-invalidation"></a>

델타 토큰은 서비스 컬렉션 및 사용자와 연결됩니다. 동일한 서비스 컬렉션 및 사용자에 대해 `“ENABLE_CDC” : “true”`를 사용한 새 초기 풀이 시작되는 경우 이전 초기화의 결과로 발급된 이전의 모든 델타 토큰은 SAP OData 서비스에서 무효화됩니다. 만료된 델타 토큰으로 커넥터를 간접적으로 호출하면 예외가 발생합니다.

`Could not open data access via extraction API RODPS_REPL_ODP_OPEN` 