SAP용 BigQuery 커넥터 운영 가이드

이 가이드에서는 SAP LT Replication Server 관리자, SAP 데이터 엔지니어 등을 대상으로 SAP용 BigQuery 커넥터의 버전 2.7(최신)에 대해 성능 조정 및 버전 업데이트와 같은 운영 태스크를 수행하는 방법을 보여줍니다.

복제 성능 조정

복제 성능은 여러 요인의 영향을 받을 수 있습니다. 적용되는 특정 요인은 설치마다 다를 수 있고, 시간에 따라 변경될 수 있습니다.

다음 섹션에서는 성능에 영향을 줄 수 있는 보다 일반적인 요인들을 조정하는 방법을 안내합니다.

SAP용 BigQuery 커넥터의 복제 성능에 대한 자세한 내용은 성능 계획을 참조하세요.

테이블의 성능 옵션 설정

SAP LT Replication Server에서는 성능에 영향을 주는 각 테이블에 대해 복제 옵션을 지정할 수 있습니다.

특히 복제하는 데 더 많은 시간과 리소스가 필요한 큰 테이블의 경우에는 범위를 지정하고 테이블에 사용할 수 있는 최대 병렬 복제 작업 수를 늘려서 복제 성능을 향상시킬 수 있습니다.

일반적으로 크게 증가하는 테이블 예시에는 MSEG, ACDOCA, MATDOC 등이 있습니다.

큰 테이블에 대해 병렬 복제 작업을 지정할 때는 대량 전송 구성에서 허용되는 총 병렬 작업 수에 따라 특정 테이블에 허용되는 병렬 작업 수를 균형적으로 조절해야 합니다. 또한 해당 조직에서 특정 서버에 지정할 수 있는 병렬 복제 작업 수가 제한될 수도 있습니다.

테이블의 성능 옵션을 설정하려면 다음 안내를 따르세요.

  1. SAP GUI에서 SAP 트랜잭션 LTRS를 입력합니다.

  2. 고급 복제 설정 화면에서 테이블의 대량 전송 설정 ID를 지정합니다.

  3. 고급 복제 설정 폴더 계층 구조에서 성능 옵션이 정의된 테이블을 표시하려면 성능 옵션 폴더를 클릭합니다.

  4. 필요한 테이블이 목록에 없으면 성능 옵션 폴더를 마우스 오른쪽 버튼으로 클릭하고 테이블 추가를 선택합니다.

  5. 테이블의 이름을 지정합니다.

  6. 필요에 따라 다음 옵션을 지정합니다.

    • 일반 성능 옵션에서 다음을 지정합니다.
      • 병렬 작업 수는 테이블에 사용할 수 있는 최대 병렬 복제 작업 수를 설정합니다.
      • 시퀀스 번호는 다른 테이블 복제에 대한 이 테이블의 복제 우선 순위를 지정합니다.
    • 초기 로드 옵션 아래에서 다음을 지정합니다.
      • 테이블이 너무 크지 않으면 읽기 유형에 대해 읽기 유형 1 범위 계산을 선택합니다. 자세한 내용은 성능 및 LTRS 고급 복제 설정을 참조하세요.
      • 패키지 크기에서는 SAP LT Replication Server로 전송되는 레코드 부분의 크기(바이트)를 지정합니다.
      • 범위를 사용하는 읽기 유형을 선택할 경우 적절한 범위를 정의합니다.
    • 복제 옵션 아래에서 다음을 지정합니다.
      • 로깅 테이블 범위에 대해 가장 안정적인 옵션으로 범위 없음을 지정합니다.
      • 수동으로 범위 지정을 선택한 경우 적절한 범위를 정의합니다.
  7. 저장을 클릭합니다.

기준 성능 벤치마크

이 섹션에는 복제 성능을 평가하는 데 도움이 되는 Google Cloud 테스트 시스템에서 관찰된 기준 성능 수치가 포함되어 있습니다.

성능에 영향을 미치는 여러 가지 요인으로 인해 성능 수치가 달라질 수 있습니다.

예를 들어 SAP 시스템이 Google Cloud에서 실행되지 않는 경우 네트워크 지연 시간 및 액세스 토큰과 관련된 오버헤드 등으로 인해 로드 및 복제 속도가 기준 속도보다 느릴 수 있습니다. 소스 테이블의 열이 더 적거나 독립형 아키텍처의 자체 서버에 SAP LT Replication Server를 설치하는 경우 SAP LT Replication Server가 리소스에 대해 소스 시스템과 경합할 필요가 없으므로 속도가 더 빨라질 수 있습니다.

관찰된 기준 성능 수치

다음 성능 수치는 테스트 중에 각 소스 시스템 유형에 대해 Google Cloud가 관찰한 기준 성능을 나타냅니다. 각 테스트 시스템에서 SAP LT Replication Server는 Compute Engine VM의 임베디드 아키텍처로 SAP 소스 시스템에 설치되었습니다. SAP 소스 시스템은 대상 BigQuery 데이터 세트와 동일한 Google Cloud 리전에서 실행되었습니다.

테스트 시스템 구성에 대한 자세한 내용은 기준 성능 테스트 시스템 구성을 참조하세요.

성능 수치를 확인하려면 소스 시스템 유형을 클릭합니다.

S/4HANA

  • 테이블: ACDOCA
    • 3억 4,300만 개의 레코드
    • 477개의 열
  • 초기 로드
    • 로드 속도: 시간당 평균 3억 5,000만 개의 레코드
    • 로드 기간: 평균 59분
  • 복제
    • 소스 테이블 변경률: 시간당 평균 5,000만 개의 레코드
    • 최대 복제 속도: 시간당 평균 5,000만 개의 레코드

ECC

  • 테이블: MSEG
    • 2억 300만 개의 레코드
    • 188개의 열
  • 초기 로드
    • 로드 속도: 시간당 평균 3억 8,500만 개의 레코드
    • 로드 기간: 평균 32분
  • 복제
    • 소스 테이블 변경률: 시간당 평균 5,000만 개의 레코드
    • 최대 복제 속도: 시간당 평균 6,900만 개의 레코드

앞의 성능 수치는 Google Cloud 테스터에서 관찰한 기준입니다.

관찰된 성능은 다음 속성이 있는 테스트 시스템에서 더 우수했습니다.

  • SAP LT Replication Server는 독립형 아키텍처의 자체 VM에 설치되었습니다.
    • S/4HANA 시스템의 경우 독립형 아키텍처는 SAP LT Replication Server 프로세스의 독립적인 확장으로 인해 임베디드 아키텍처보다 초기 로드 속도가 약 42% 빠른 것으로 관찰되었습니다.
    • ECC 시스템의 경우 독립형 아키텍처는 SAP LT Replication Server 프로세스의 독립적인 확장으로 인해 임베디드 아키텍처보다 초기 로드 속도가 약 10% 빠른 것으로 관찰되었습니다.
  • 소스 테이블의 열 수가 더 적습니다.
  • 레코드의 전체 바이트 크기가 더 작습니다.

성능 향상을 위해 수정할 수 있는 시스템 속성에 대한 자세한 내용은 다음을 참조하세요.

기준 성능 테스트 시스템 구성

이 섹션에 설명된 테스트 시스템은 이전 섹션인 관찰된 기준 성능 수치에 나열된 기준 성능 수치를 생성했습니다.

SAP 소스 시스템, SAP LT Replication Server, BigQuery 데이터 세트를 포함한 테스트 시스템은 모두 동일한 Google Cloud 리전의 Compute Engine VM에서 실행되었습니다.

각 시스템에서 서버와 워크로드는 다수의 실제 설치에서 찾아볼 수 있는 보다 과중한 워크로드와 더 많은 복제 볼륨을 시뮬레이션하도록 설계되었습니다.

테스트 시스템 속성을 보려면 소스 시스템 유형을 클릭합니다.

S/4HANA

  • SAP LT Replication Server 설치 아키텍처:
    • 임베디드 아키텍처
  • 소스 시스템 서버:
    • 각각 다음과 같은 사양을 갖춘 N2 기반 Compute Engine 커스텀 머신 유형의 애플리케이션 서버 2개
      • vCPU: 60
      • 메모리: 324 GB
      • CPU 플랫폼: Intel Cascade Lake
    • 다음 사양의 m1-ultramem-80 Compute Engine VM에 있는 SAP HANA 서버 한 대:
      • vCPU: 80
      • 메모리: 1,900 GB
      • CPU 플랫폼: Intel Broadwell
  • 소프트웨어 버전:
    • S/4HANA 1909
    • SAP LT Replication Server: S/4CORE 104 SP00
  • 테이블 크기:
    • 테이블 이름: ACDOCA, 총 계정원장 저널 입력 항목 데이터
    • 레코드 수: 3억 4,300만 개
    • 열 개수: 477
  • 각 애플리케이션 서버의 작업 프로세스:
    • 60개의 대화상자 프로세스
    • 220개의 백그라운드 프로세스
  • SAP LT Replication Server의 로드 설정:
    • 작업: 99
    • 읽기 유형: 1 범위
    • 계산: 자동 범위
  • 복제 설정:
    • 작업: 99
    • 키 필드를 사용하여 로깅 테이블 범위 계산
    • 범위 128

ECC

  • SAP LT Replication Server 설치 아키텍처:
    • 임베디드 아키텍처
  • 소스 시스템 서버:
    • 각각 다음 사양을 갖춘 n2-highmem-48 Compute Engine VM에 있는 애플리케이션 서버 두 대:
      • vCPU: 60
      • 메모리: 348 GB
      • CPU 플랫폼: Intel Cascade Lake
  • 소프트웨어 버전:
    • SAP NetWeaver: 7.0 EHP2
    • SAP LT Replication Server: DMIS 2011_1_700 SP17
  • 테이블 크기:
    • 테이블: MSEG, 자료 인벤토리 관리 문서
    • 레코드 수: 2억 300만 개
    • 열 개수: 188
  • 각 애플리케이션 서버의 작업 프로세스:
    • 60개의 대화상자 프로세스
    • 100개의 백그라운드 프로세스
  • SAP LT Replication Server의 로드 설정:
    • 작업: 99
    • 읽기 유형: 5 발신자
    • 큐: 수동 범위
  • 복제 설정:
    • 작업: 99
    • Logging 테이블 범위: 키 필드를 사용하여 범위 계산
    • 범위 수: 128개

동적 청크 크기

청크의 바이트 크기가 BigQuery에서 허용되는 HTTP 요청의 최대 바이트 크기를 초과할 경우 청크 크기를 줄여서 바이트 크기를 수동으로 줄여야 합니다. 동적 청크 크기 기능을 사용하면 청크 크기를 자동으로 줄이고 청크의 바이트 크기가 BigQuery에서 허용되는 HTTP 요청의 최대 바이트 크기를 초과할 때 BigQuery로 복제를 다시 시도할 수 있습니다. 동적 청크 크기는 요청의 바이트 크기 초과로 인한 대부분의 복제 오류를 방지하는 데 도움이 됩니다. 청크 크기가 1에 도달할 경우에만 오류가 발생할 수 있지만 바이트 크기는 각 HTTP 요청에서 바이트 수에 대한 BigQuery 한도보다 높게 유지됩니다.

/GOOG/SLT_SETTINGS 트랜잭션을 사용하여 테이블의 대량 전송 구성에서 동적 청크 크기를 사용 설정합니다. 동적 청크 크기는 선택적인 설정입니다. 동적 청크 크기를 사용 설정하는 방법은 다음을 참조하세요.

동적 청크 크기가 사용 설정되었으면 SAP용 BigQuery 커넥터에서 허용하는 최대 청크 크기가 BigQuery 할당량 한도인 50,000개 레코드 이내로 유지됩니다.

청크 크기에 대한 자세한 내용은 부분 크기 및 청크 크기를 참조하세요.

동적 청크 크기 작동 방식

동적 청크 크기를 사용하면 초기 청크 크기의 HTTP 요청이 바이트 크기에 대한 BigQuery 한도를 초과할 경우 SAP용 BigQuery 커넥터가 청크 크기를 줄이고 데이터 전송을 다시 시도합니다. SAP용 BigQuery 커넥터는 특정 청크에 대해 데이터가 성공적으로 전송되거나 청크 크기가 1에 도달할 때까지 청크 크기를 계속 줄이고 BigQuery에 데이터 전송을 다시 시도합니다.

데이터 전송이 성공할 때까지 최종적으로 줄어든 청크 크기가 해당 부분의 남은 모든 청크의 청크 크기로 사용됩니다. SAP LT Replication Server 애플리케이션 로그에서 각 부분에 대해 성공한 최종 감소한 청크 크기를 정보 메시지로 찾을 수 있습니다.

Dynamic chunking triggered. Chunk size reduced from INITIAL_CHUNK_SIZE_VALUE to FINAL_REDUCED_CHUNK_SIZE_VALUE.

후속 부분 및 후속 복제의 경우 SAP용 BigQuery 커넥터는 /GOOG/SLT_SETTINGS 트랜잭션에 구성된 청크 크기로 BigQuery에 데이터 전송을 시작하고 동적 청크 생성이 트리거될 경우 청크 크기를 계속 줄입니다.

기본적으로 청크 크기는 재시도할 때마다 50%씩 줄어듭니다. 청크 크기를 더 높거나 낮은 비율로 줄이려면 고급 설정 매개변수를 수정합니다.

동적 청크 크기가 테이블에 사용 설정되었을 때 복제 프로세스에서 청크 크기가 결정되는 방법을 예를 들어 살펴보겠습니다. 이 예시에서 SAP LT Replication Server 부분 크기는 SAP용 BigQuery 커넥터 청크 크기보다 크고 /GOOG/SLT_SETTINGS 트랜잭션에 청크 크기가 10,000개 레코드로 정의되어 있습니다. SAP용 BigQuery 커넥터는 부분을 다음과 같이 BigQuery에 복제합니다.

  1. 20,000개 레코드가 포함된 부분에 대해 복제가 시작될 때 첫 번째 청크의 청크 크기는 10,000개 레코드이지만, HTTP 요청의 바이트 크기가 10MB보다 크면 SAP용 BigQuery 커넥터가 청크 크기를 50% 줄이고 새 청크 크기는 5,000개 레코드가 됩니다.

  2. SAP용 BigQuery 커넥터는 5,000개 레코드의 청크 크기를 전송하려고 재시도하지만, HTTP 요청의 바이트 크기가 여전히 10MB보다 크면 SAP용 BigQuery 커넥터가 다시 청크 크기를 50% 줄여서 새 청크 크기는 2,500개 레코드가 됩니다.

  3. SAP용 BigQuery 커넥터가 2,500개 레코드의 청크 크기를 전송하려고 재시도하고, 이제 이 청크에 대한 HTTP 요청의 바이트 크기가 10MB보다 작으면 복제가 성공하고 데이터가 BigQuery에 삽입됩니다.

  4. 모든 후속 청크의 청크 크기는 각 HTTP 요청의 바이트 크기가 10MB보다 작은 한 2,500개 레코드가 됩니다. 모든 후속 청크에 대해 HTTP 요청의 바이트 크기가 10MB를 초과하면 SAP용 BigQuery 커넥터가 다시 청크 크기를 줄이고 특정 청크에 대해 데이터가 성공적으로 전송될 때까지 BigQuery로 데이터 전송을 재시도합니다. 축소된 청크 크기는 현재 복제의 현재 부분에만 사용됩니다.

동적 청크 크기를 사용할 때의 성능

동적 청크 크기는 BigQuery에 대한 복제 성능에 영향을 줄 수 있습니다. 모든 청크에 대해 SAP용 BigQuery 커넥터는 청크의 레코드 수를 계산하고 HTTP 요청의 바이트 크기를 확인합니다. 바이트 크기가 10MB보다 크면 SAP용 BigQuery 커넥터가 청크 크기를 줄이고 BigQuery에 데이터 전송을 재시도하여 전체 복제 시간이 늘어납니다.

일부 데이터 레코드에 대해 이상적인 청크 크기를 구성한 후에도 요청 크기가 BigQuery의 HTTP 요청 한도를 초과할 수 있고 청크 크기 오류가 발생하지 않도록 하려는 특정 상황에서만 동적 청크 크기를 사용합니다. 예를 들면 다음과 같습니다.

  • 더 적은 필드가 유지되는 레코드와 더 많은 필드가 유지되는 레코드와 같이 필드에서 데이터의 희소성 차이가 큰 소스 테이블
  • EDID4-SDATA, VARI-CLUSTID, REPOSRC-DATA와 같은 긴 텍스트 필드를 포함하는 소스 테이블

또한 테스트 단계 중 동적 청크 크기를 사용하여 프로덕션 SAP 시스템에서 정의할 수 있는 테이블의 이상적인 청크 크기를 식별할 수 있습니다.

청크 크기 구성에 대한 자세한 내용은 다음을 참조하세요.

  • SAP LT Replication Server가 Compute Engine VM에서 실행되는 경우 테이블 속성 지정을 참조하세요.
  • SAP LT Replication Server가 Google Cloud 외부의 호스트에서 실행되는 경우 테이블 속성 지정을 참조하세요.

대량 전송 설정을 프로덕션으로 전송

대량 전송 설정을 프로덕션으로 전송하려면 먼저 개발 시스템에서 설정을 내보낸 후 프로덕션 시스템으로 가져옵니다.

원하는 경우 대량 전송 설정의 세 가지 부분을 프로덕션으로 가져올 수 있습니다.

  • LTRS 트랜잭션을 사용하여 액세스할 수 있는 고급 복제 설정
  • SM30 트랜잭션을 사용하여 액세스할 수 있는 /GOOG/CLIENT_KEY 테이블의 클라이언트 키 설정
  • /GOOG/SLT_SETTINGS 트랜잭션을 사용하여 액세스할 수 있는 SAP용 BigQuery 커넥터 대량 전송 설정

개발 시스템에서 대량 전송 설정 내보내기

SAP LT Replication Server 개발 시스템에서 대량 전송 설정의 각 부분을 내보냅니다.

  1. 고급 복제 설정을 내보냅니다.

    1. LTRS 트랜잭션을 실행합니다.
    2. 프로덕션으로 전송할 대량 전송 레코드를 선택합니다.
    3. 파일 드롭다운 메뉴에서 모든 설정 내보내기를 선택합니다.
    4. 내보내기 설정 대화상자에서 대상을 선택하고 저장을 클릭합니다. 설정은 로컬 워크스테이션에서 CSV 형식의 압축 파일에 저장됩니다.
  2. SAP용 BigQuery 커넥터 대량 전송 설정을 내보냅니다.

    1. /GOOG/SLT_SETTINGS 트랜잭션을 실행합니다.

      /n/GOOG/SLT_SETTINGS
    2. 설정 테이블 필드에서 대량 전송을 선택합니다.

    3. 프로덕션으로 전송할 대량 전송 레코드를 선택합니다.

    4. 대량 전송을 클릭합니다.

    5. Workbench 요청 프롬프트에서 전송 요청 번호를 입력하고 계속 아이콘을 클릭합니다. 선택한 대량 전송 레코드마다 다음 커스텀 구성 테이블의 설정이 전송에 포함됩니다.

      • /GOOG/BQ_MASTR
      • /GOOG/BQ_TABLE
      • /GOOG/BQ_FIELD

    대량 전송 설정은 전송 요청에 저장됩니다.

  3. 전송 요청에 /GOOG/CLIENT_KEY 테이블의 콘텐츠를 수동으로 포함하여 클라이언트 키 설정을 내보냅니다.

  4. 파일을 로컬 워크스테이션에 저장합니다.

프로덕션 시스템으로 대량 전송 설정 가져오기

SAP LT Replication Server 프로덕션 시스템에서 대량 전송 설정의 각 부분을 가져옵니다.

  1. 대량 전송 설정의 SAP LT Replication Server 복제 구성을 만듭니다.

  2. 고급 복제 설정을 가져옵니다.

    1. LTRS 트랜잭션을 실행합니다.
    2. 첫 번째 단계에서 만든 대량 전송을 선택합니다.
    3. 파일 드롭다운 메뉴에서 모든 설정 가져오기를 선택합니다.
    4. 파일 선택 대화상자에서 로컬 워크스테이션의 압축 파일을 선택하고 열기를 클릭합니다. 설정을 대량 전송의 설정으로 가져옵니다.
  3. 대량 전송 설정이 포함된 전송 요청을 가져옵니다.

  4. SM30 트랜잭션을 실행합니다.

  5. 프로덕션 환경에 맞게 클라이언트 키 설정을 업데이트합니다.

  6. /GOOG/SLT_SETTINGS 트랜잭션을 실행합니다.

    /n/GOOG/SLT_SETTINGS
  7. 대량 전송 화면에 올바른 대량 전송이 표시되는지 확인합니다.

  8. 대량 전송 ID 열에서 개발 시스템의 대량 전송 ID를 첫 번째 단계에서 만든 복제 구성의 대량 전송 ID로 바꿉니다.

  9. 후속 테이블필드 설정 화면에서 프로덕션 환경에 맞게 테이블 및 필드 매핑의 다른 값을 업데이트합니다.

  10. 초기 로드나 복제를 시작하여 구성을 테스트합니다. 초기 로드나 복제를 시작하는 방법에 대한 자세한 내용은 다음을 참조하세요.

    • SAP LT Replication Server가 Compute Engine VM에서 실행 중인 경우, 복제를 테스트합니다.
    • SAP LT Replication Server가 Google Cloud 외부에 있는 호스트에서 실행 중인 경우 복제를 테스트합니다.

SAP용 BigQuery 커넥터 업데이트

Google Cloud는 SAP용 BigQuery 커넥터의 새 출시 버전을 SAP 전송으로 전달합니다.

SAP 관리자는 다음 단계를 수행하여 SAP용 BigQuery 커넥터를 업데이트할 수 있습니다.

  1. 클러스터 테이블 복제 또는 JWT 기반 인증에 대한 기본 대상 설정에 핫픽스를 적용한 경우 SAP용 BigQuery 커넥터를 버전 2.6으로 업데이트하기 전에 이러한 핫픽스를 삭제해야 합니다. 핫픽스 삭제에 대한 자세한 내용은 SAP 페이지 개선 구현 만들기, 수정, 삭제를 참조하세요.
  2. SAP LT Replication Server에서 구성을 비활성화합니다.
  3. 새 SAP 전송 요청을 가져옵니다.
  4. 가져오기 및 객체 활성화가 성공했는지 검사한 후 SAP LT Replication Server에서 구성을 활성화합니다.

gcloud CLI 업데이트

SAP LT Replication Server 호스트에서 Google Cloud CLI를 업데이트 상태로 유지해야 합니다.

gcloud CLI 관리에 대한 자세한 내용은 gcloud CLI 구성요소 관리를 참고하세요.

모니터링

SAP 데이터 소스에서 대상 BigQuery 테이블로의 데이터 경로를 따라 다음과 같은 여러 지점을 모니터링할 수 있습니다.

  • 인프라 - 네트워크, 하드웨어, 운영체제
  • SAP 데이터베이스 레이어
  • SAP 애플리케이션 레이어
  • SAP용 BigQuery 커넥터
  • BigQuery

이러한 각 지점에서의 모니터링 옵션은 다음 하위 섹션에서 설명합니다.

인프라 모니터링

Google Cloud에서는 고급 모니터링 및 로깅을 위해 호스트 VM에 운영 에이전트를 설치할 수 있습니다. 운영 에이전트는 Google Cloud 콘솔에서 Cloud Monitoring으로 데이터를 전송합니다.

자세한 내용은 다음을 참고하세요.

Google Cloud에서 실행되지 않는 시스템의 경우 ST06 트랜잭션과 같은 SAP 트랜잭션을 실행해서 서버 정보를 가져올 수도 있습니다.

데이터베이스 레이어 모니터링

표준 SAP 트랜잭션 코드를 사용하여 데이터베이스 상태를 모니터링합니다.

트랜잭션 코드 DBACOCKPIT은 데이터베이스 모니터링을 위한 가장 일반적인 트랜잭션입니다. 이 트랜잭션은 또한 오류 문제 해결에 사용할 수 있는 자세한 로그를 제공합니다.

SAP HANA의 경우 SAP HANA 작업을 위해 SAP HANA Studio를 사용할 수 있습니다. 모든 프런트엔드 머신에 SAP HANA Studio를 설치할 수 있습니다.

성능 또는 기타 문제를 해결할 때는 소스 데이터베이스에서 다음 항목을 확인합니다.

  • 고비용 SQL 문
  • 잠금
  • 로드 기록
  • 색인
  • 프로세스

애플리케이션 레이어 모니터링

애플리케이션 레이어에서 실행되기 때문에 SAP 애플리케이션 모니터링 및 문제 해결 도구를 사용해서 SAP용 BigQuery 커넥터를 모니터링하고 문제 해결할 수 있습니다.

SAP 애플리케이션 모니터링 및 문제 해결은 다음과 같이 더 자세히 분류할 수 있습니다.

  • 표준 SAP 모니터링 및 문제 해결
  • SAP용 BigQuery 커넥터 모니터링 및 문제 해결

더 큰 환경의 경우 SAP Solution Manager를 중앙 모니터링 도구로 사용할 수 있습니다.

다음 목록의 SAP 트랜잭션 코드를 사용해서 개별 SAP 애플리케이션 시스템의 문제를 모니터링하고 진단할 수 있습니다.

  • SLT 구성 상태: LTRC
  • SLT 오류 및 로그: LTROSLG1
  • 인터넷 통신 관리자(HTTP 및 HTTPS 호출): SMICM
  • 보안 및 인증서: STRUST
  • SAP 전송: STMS
  • RFC 연결: SM59
  • OS 명령어: SM69
  • 패키지 확인: SE80
  • 승인 확인: SU53
  • 백그라운드 작업: SM37
  • 시스템 로그: SM21

BigQuery 모니터링

Cloud Monitoring을 사용하여 BigQuery 측정항목을 보고 차트와 알림을 만들 수 있습니다. 각 측정항목에는 bigquery_dataset, bigquery_project, global과 같은 리소스 유형과 라벨 집합이 포함됩니다.

리소스 유형과 라벨을 사용하여 모니터링 쿼리 언어(MQL)로 쿼리를 빌드합니다.

라벨을 사용하여 각 측정항목을 그룹화하거나 필터링할 수 있습니다.

Monitoring에 대한 자세한 내용은 Cloud Monitoring 문서를 참조하세요.

SAP용 BigQuery 커넥터 설정 보기

SAP용 BigQuery 커넥터의 대량 전송 설정을 보려면 SAP GUI에서 /GOOG/SLT_SETT_DISP 트랜잭션을 실행합니다.

테이블 만들기 도구

SAP의 빈 소스 테이블에 대해 SAP SLT는 BigQuery에서 대상 테이블을 만들지 않도록 방지합니다. 빈 소스 테이블에 대해 BigQuery 데이터 세트에서 대상 테이블을 만들어야 하는 경우 테이블 만들기 도구를 사용할 수 있습니다.

테이블 만들기 도구를 실행하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 앞에 /n을 입력하여 /GOOG/CREATE_BQ_TAB 트랜잭션을 실행합니다.

    /n/GOOG/CREATE_BQ_TAB
  2. BQ 설정에서 대상 테이블 만들기 화면에서 다음 필드의 값을 제공합니다.

    • 대량 전송 키: SAP 테이블을 포함하는 대량 전송 키입니다.
    • SAP 테이블 이름: 만들어야 하는 SAP 테이블 이름입니다.
  3. 실행 아이콘을 클릭합니다. 대상 테이블이 BigQuery 데이터 세트에 생성됩니다.

  4. 선택적으로 BigQuery 데이터 세트에서 테이블이 올바른 스키마로 생성되었는지 확인합니다.

대량 필드 변환 도구

SAP용 BigQuery 커넥터가 대부분 필드에 대해 BigQuery 데이터 유형을 자동으로 추천하지만 필드를 수동으로 매핑해야 할 수 있습니다. 각 필드에 데이터 유형을 수동으로 할당하는 대신 대량 필드 변환 도구를 사용해서 /GOOG/SLT_SETTINGS 트랜잭션의 필드 매핑 화면에서 모든 필드에 대해 데이터 유형 할당을 매핑할 수 있습니다. 대량 필드 변환 도구는 BigQuery에서 테이블의 모든 필드 매핑을 STRING 유형으로 변환합니다.

테이블이 이미 복제되었거나 LTRC 트랜잭션에서 초기 로드를 위해 추가되었으면 스키마 불일치 문제가 발생할 수 있으므로 이러한 테이블에 대해 대량 필드 변환 도구를 사용하지 마세요. 초기 로드 또는 복제가 시작되지 않은 SAP 테이블에 대해서만 이 도구를 사용할 수 있습니다.

대량 필드 변환 도구를 실행하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 앞에 /n을 입력하여 /GOOG/MASS_CNVT_FMAP 트랜잭션을 실행합니다.

    /n/GOOG/MASS_CNVT_FMAP
  2. 대량 필드 변환 화면에서 다음 필드의 값을 제공합니다.

    • 대량 전송 키: SAP 테이블을 포함하는 대량 전송 키입니다.
    • SAP 테이블 이름: 모든 필드 매핑을 STRING 유형으로 변환해야 하는 SAP 테이블 이름입니다.
  3. 실행 아이콘을 클릭합니다. 선택한 테이블에 대해 모든 필드 매핑이 STRING 유형으로 변환됩니다.

부하 시뮬레이션 도구

이 섹션에서는 부하 시뮬레이션 도구에 대한 개요 및 이를 사용하여 수행할 수 있는 작업에 대해 설명합니다.

부하 시뮬레이션 도구는 BigQuery로의 SAP 데이터 복제를 시뮬레이션할 수 있게 해주는 SAP용 BigQuery 커넥터를 위한 지원 도구입니다. 이 도구는 SAP용 BigQuery 커넥터에 대해 Google Cloud에서 제공되는 전송에 포함됩니다. 부하 시뮬레이션 도구를 사용해서 SAP용 BigQuery 커넥터의 비즈니스 부가기능(BAdI)을 직접 호출하여 BigQuery로 소스 SAP 데이터를 복제합니다. 부하 시뮬레이션 도구에는 기본 SLT 프레임워크가 사용되지 않기 때문에 SLT 트리거에 영향을 주지 않습니다. 프로덕션 환경의 데이터 복제에는 부하 시뮬레이션 도구를 사용하지 마세요.

부하 시뮬레이션 도구는 복제 성능을 평가하고, 잠재적인 문제를 식별하고, 문제의 근본 원인을 파악하고, SAP용 BigQuery 커넥터를 사용하여 BigQuery에 SAP 데이터를 실제로 복제하기 전에 문제를 해결하기 위해 분석할 수 있는 보고서를 제공합니다.

다음은 부하 시뮬레이션 도구를 사용할 수 있는 몇 가지 일반적인 사용 사례입니다.

  • 모든 네트워크 연결, 승인, 인증 문제를 재현하고 문제 해결합니다.
  • 문제 해결을 위해 BigQuery API 호출에 대해 향상된 로그를 생성합니다.
  • Cloud Customer Care에서 문제 해결 지원을 받기 위해 부하 시뮬레이션 도구를 실행하고 로그를 고객 지원팀에 제공합니다.
  • 복제 프로세스에서 각 단계에 걸리는 시간을 제공하여 성능 측정항목을 측정합니다.
  • 임베디드 아키텍처의 SAP LT Replication Server의 경우 SAP 테이블의 최적 청크 크기를 결정합니다.

부하 분산 도구에 커스텀 트랜잭션 /GOOG/SLT_SETTINGS를 사용해서 만드는 샘플 대량 전송 구성을 사용합니다. 부하 시뮬레이션 도구를 실행하는 데에는 프로덕션 데이터 세트 및 BigQuery 테이블을 사용하지 마세요.

SAP LT Replication Server가 임베디드 아키텍처에 있으면 MARAT001과 같은 표준 SAP 테이블을 사용하여 부하 시뮬레이션 도구를 실행합니다.

SAP LT Replication Server가 독립형 아키텍처에 있으면 Google Cloud가 SAP용 BigQuery 커넥터와 함께 제공하는 샘플 테이블 /GOOG/TEST_REPL을 사용하여 부하 시뮬레이션 도구를 실행합니다. 부하 시뮬레이션 도구는 원격 시스템에서 소스 테이블 읽기를 지원하지 않습니다.

Google Cloud에서 SAP 데이터 소스의 아키텍처에 대한 자세한 내용은 설치 아키텍처를 참조하세요.

기본 요건

부하 시뮬레이션 도구를 실행하기 전 다음 기본 요건이 충족되었는지 확인합니다.

부하 시뮬레이션 도구 실행 방법

부하 시뮬레이션 도구를 실행하려면 다음 단계를 수행합니다.

  1. SAP GUI에서 /n에 이어 /GOOG/LOAD_SIMULATE 트랜잭션을 입력합니다.

    /n/GOOG/LOAD_SIMULATE
  2. 실행 아이콘을 클릭합니다. SLT 부하 시뮬레이션 화면이 표시됩니다.

  3. 처리 옵션에서 시뮬레이션 실행 옵션이 선택되었는지 확인합니다.

  4. 선택 옵션 섹션에서 다음 사양을 입력합니다.

    • Google Cloud 파트너 필드의 드롭다운 메뉴에서 BigQuery를 선택합니다.
    • 대량 전송 키 필드에 대량 전송 구성을 위한 대량 전송 키를 입력합니다.

      부하 시뮬레이션 도구에 샘플 대량 전송 구성을 사용합니다. 프로덕션 데이터 세트 및 BigQuery 테이블을 사용하지 마세요.

    • 테이블 이름 필드에 샘플 대량 전송 구성에서 제공한 소스 SAP 테이블의 이름을 입력합니다.

    • 선택적으로 Where 조건 필드에 소스 테이블의 데이터 선택 조건을 입력합니다.

      최대 255자까지 입력할 수 있습니다. 예를 들어 SAP 테이블 MARA에 대해 부하 시뮬레이션 도구를 실행하고 특정 범위에서 자료 번호를 선택해야 할 경우 Where 조건으로 MATNR GE '000000000400000001' AND MATNR LE '000000000600000001'과 같은 값을 지정합니다.

    • 주기 수 필드에 부하 시뮬레이션 도구가 실행하는 처리 주기 수를 입력합니다.

      이것은 시뮬레이션 보고서가 여러 주기로 나타나는 방식을 비교해야 할 때 유용합니다. 값은 1보다 커야 합니다.

    • 주기별 레코드 수 필드에 각 처리 주기에서 BigQuery에 전송하려는 레코드 수를 입력합니다. 값은 1보다 커야 합니다.

    • 부분 크기 필드에 SAP LT Replication Server가 각 부분에서 SAP용 BigQuery 커넥터의 BAdI에 전송하는 주기별 레코드 수 중 레코드 수를 입력합니다.

    • 필요에 따라 플래그를 하나 이상 선택합니다.

      • 정확한 레코드 수: 주기별 레코드 수 필드에 제공된 것과 정확히 동일한 개수의 레코드가 각 처리 주기에 BigQuery로 전송되는지를 나타냅니다. 테이블에 레코드가 충분하지 않으면 부하 시뮬레이션 도구가 필요한 수를 얻기 위해 기존 레코드를 복제합니다. 레코드는 소스 테이블에 데이터를 삽입하기 위해서가 아니라 BigQuery에 데이터를 삽입하기 위해서만 복제됩니다.

      • SLT 대상 구조 사용: SLT 로깅 테이블의 구조를 사용하여 소스 테이블 필드를 가져옵니다. 이 플래그를 설정하지 않으면 소스 테이블에서 직접 필드를 읽어서 대상 구조를 생성합니다. SAP LT Replication Server 데이터 흐름에 대한 자세한 내용은 데이터 흐름의 세부 아키텍처 보기를 참조하세요.

      • 자세한 로그: SAP용 BigQuery 커넥터에서 모든 정의된 메서드에 대해 로그 레코드가 생성됩니다. 이 플래그를 설정하지 않으면 중요한 메서드만 로깅됩니다.

      • 이전 결과 지우기: 동일한 대량 전송 및 SAP 테이블에 대해 이전에 생성된 로그 레코드를 지웁니다. 이 플래그를 설정하지 않으면 로그가 이전 결과에 추가됩니다.

  5. 부하 시뮬레이션 도구를 실행하려면 실행 아이콘을 클릭합니다.

  6. 부하 시뮬레이션이 완료된 후 처리 옵션 섹션에서 보고서 표시 라디오 버튼을 선택합니다.

  7. 선택 옵션 섹션에서 다음 사양을 입력합니다.

    • Google Cloud 파트너 필드의 드롭다운 메뉴에서 BigQuery를 선택합니다.
    • 대량 전송 키 필드에 샘플 대량 전송 구성을 위한 대량 전송 키를 입력합니다.
    • 테이블 이름 필드에 소스 SAP 테이블의 이름을 입력합니다.
    • 선택적으로 부하 시뮬레이션 실행 날짜별로 보고서를 보려면 보고서 날짜 필드에 날짜 범위를 지정합니다.
    • 선택적으로 현재 보고서와 함께 마지막 실행된 보고서를 보려면 마지막 실행만 플래그를 선택합니다.
  8. 보고서를 표시하려면 실행 아이콘을 클릭합니다.

다음 표에서는 시뮬레이션 보고서에 표시된 열에 대해 설명합니다.

이름 설명
전송 키 대량 전송 구성의 대량 전송 키입니다.
SAP 테이블 BigQuery에 복제 중인 SAP 테이블의 이름입니다.
실행 시작 타임스탬프 SAP용 BigQuery 커넥터 메서드에 대해 실행이 시작된 시간입니다.
완료 타임스탬프 SAP용 BigQuery 커넥터 메서드에 대해 실행이 완료된 시간입니다.
작업 번호 부하 시뮬레이션 도구가 실행될 때마다 자동으로 생성되는 각각의 완료된 실행에 대한 고유한 작업 번호입니다.
주기 번호 보고서가 생성된 처리 주기의 시퀀스 넘버입니다. 시뮬레이션 입력에 제공된 주기별 레코드 수가 각 주기에 대해 BigQuery로 전송됩니다.
부분 번호 부분의 시퀀스 넘버입니다. 시뮬레이션 입력에 제공된 주기별 레코드 수는 지정된 부분 크기를 기준으로 여러 부분으로 분할됩니다. SAP용 BigQuery 커넥터의 BAdI이 각 부분에 대해 호출됩니다.
클래스 이름 SAP용 BigQuery 커넥터 메서드의 클래스 이름입니다.
메서드 이름 SAP용 BigQuery 커넥터 메서드의 이름입니다. SAP용 BigQuery 커넥터에서 호출되는 메서드가 순서에 따라 로깅됩니다. 자세한 로그 플래그를 시뮬레이션 입력에서 선택하면 모든 메서드가 로깅되고, 그렇지 않으면 중요한 메서드만 로깅됩니다.
메서드로 호출 현재 SAP용 BigQuery 커넥터 메서드를 호출한 마지막 메서드입니다.
기간 SAP용 BigQuery 커넥터 메서드를 실행하는 데 걸린 총 시간입니다.
레코드 수 SAP용 BigQuery 커넥터 메서드에 전달된 레코드 수입니다. 레코드가 전달되는 메서드에 대해서만 표시됩니다.
URI 메서드 ABAP 메서드가 BigQuery API 호출을 수행할 경우를 대비한 HTTP 메서드의 이름입니다.
URI 문자열 ABAP 메서드가 BigQuery API 호출을 수행할 경우를 대비한 HTTP URL입니다.
토큰 소스 부하 분산 도구가 사용 중인 인증 토큰의 소스입니다. 토큰 캐싱이 /GOOG/CLIENT_KEY 테이블에 활성화된 경우에만 적용됩니다. 사용할 수 있는 값은 다음과 같습니다.
  • A: 특정 프로세스의 정적 속성 값입니다.
  • M: 여러 프로세스 간에 공유되는 메모리의 공유 메모리 값입니다.
  • L: 메모리 잠금이 있는 새 값입니다. 메모리 잠금이 있고 캐시된 토큰을 읽을 수 없으면 새 토큰이 생성됩니다.
  • N: 메모리 잠금이 없는 새 값입니다. 토큰이 만료되었거나 메모리에서 찾을 수 없으면 새 토큰이 생성됩니다.
만료 시간 인증 토큰의 만료 시간입니다.
토큰 캐싱이 /GOOG/CLIENT_KEY 테이블에 활성화된 경우에만 적용할 수 있습니다.
토큰 값 부하 시뮬레이션 도구가 BigQuery에 액세스하기 위해 사용하는 인증 토큰의 값입니다.
반환 코드 메서드 실행의 반환 코드입니다. 사용할 수 있는 값은 다음과 같습니다.
  • 0: 실행 성공을 나타냅니다.
  • 오류 코드입니다. 오류가 발생하면 해당하는 SAP용 BigQuery 커넥터 오류 코드가 표시됩니다. 오류 코드에 대한 자세한 내용은 SAP용 BigQuery 커넥터 문제 해결 가이드를 참조하세요.
오류 텍스트 오류 제목입니다(있는 경우).
오류 설명 오류에 대한 자세한 정보입니다.
페이로드 크기 BigQuery Insert API에 대한 HTTP 페이로드 크기입니다. 메서드 실행에 오류가 있고 페이로드 크기가 10MB보다 크면 청크 크기를 조정하여 페이로드 크기를 줄일 수 있습니다.
정보 텍스트 SAP용 BigQuery 커넥터의 BAdI로 발생한 관련 정보 메시지입니다. 예를 들어 동적 청크 생성이 트리거되면 다음 정보 메시지가 표시됩니다. Dynamic chunking triggered. Chunk size reduced from INITIAL_CHUNK_SIZE_VALUE to FINAL_REDUCED_CHUNK_SIZE_VALUE.
상태 메서드 실행 상태 메서드 실행이 실패할 경우 문제 해결을 위해 SAP용 BigQuery 커넥터 문제 해결 가이드를 참조하세요.

부하 시뮬레이션 도구 예약

프로그램 이름 /GOOG/R_LOAD_SIMULATION을 사용하여 SAP LT Replication Server에서 백그라운드 작업으로 자동으로 실행되도록 부하 시뮬레이션 도구를 예약할 수 있습니다. SAP에서 백그라운드 작업 예약에 대한 자세한 내용은 백그라운드 작업 예약을 참조하세요.

복제 검증

트랜잭션 /GOOG/SLT_SETTINGS로 대상 BigQuery 테이블을 만들 때 추가 필드 플래그를 선택하면 복제를 트리거한 각 레코드의 변경 유형을 저장하기 위한 열과 SAP LT Replication Server에서 레코드가 포함된 부분을 수신한 시간을 반영하는 타임스탬프에 대한 열이 테이블 스키마에 추가됩니다.

변경 유형과 타임스탬프를 사용하여 다음 유형의 레코드 수를 쿼리할 수 있습니다.

  • 초기 로드 중에 BigQuery 테이블에 로드된 레코드 수입니다.
  • 지정된 날짜에 BigQuery 테이블에 복제된 레코드 수입니다.
  • BigQuery 테이블에 있는 총 고유 레코드 수입니다.

이러한 수를 확인하려면 Google Cloud 콘솔에서 SQL 쿼리를 제출하여 BigQuery 테이블을 직접 쿼리하거나, BigQuery 레코드 수를 SAP LT Replication Server 통계 또는 소스 테이블의 레코드 수와 비교하는 보고서를 생성하는 복제 유효성 검사 도구를 실행하면 됩니다.

추가 필드 플래그 개요는 레코드 변경사항 및 집계 쿼리를 위한 추가 필드를 참고하세요.

추가 필드 플래그를 지정하는 방법에 대한 자세한 내용은 다음을 참고하세요.

레코드 수에 대한 SQL 쿼리

Google Cloud 콘솔의 BigQuery SQL 편집기 페이지에서 SQL 쿼리를 실행하여 BigQuery 테이블의 레코드 수를 확인할 수 있습니다.

그런 다음 BigQuery 레코드 수를 소스 테이블 또는 SAP LT Replication Server 통계의 수와 비교할 수 있습니다.

초기 로드 모드에 삽입된 레코드 수 쿼리

BigQuery 테이블 스키마에 선택적 operation_flag 열이 포함된 경우 초기 로드 모드에서 테이블에 삽입되는 레코드에는 L 작업 플래그가 포함됩니다.

초기 로드 중에 BigQuery에서 수신한 레코드 수를 가져오려면 다음 쿼리를 실행합니다.

SELECT COUNT(*)
  FROM
      `PROJECT.DATASET.TABLE`
  WHERE operation_flag = 'L'

복제 모드에 삽입된 레코드 수 쿼리

BigQuery 테이블 스키마에 operation_flag 열(선택사항)이 포함된 경우 복제 모드의 테이블에 삽입되는 레코드에는 다음 작업 플래그 중 하나가 포함됩니다.

  • I: 레코드가 소스 테이블에 삽입되었습니다.
  • D: 소스 테이블에서 레코드가 삭제되었습니다.
  • U: 소스 테이블에서 레코드가 업데이트되었습니다.

복제 모드에서 BigQuery가 수신한 레코드 수를 가져오려면 다음 쿼리를 실행합니다.

SELECT COUNT(*)
  FROM
      `PROJECT.DATASET.TABLE`
  WHERE operation_flag = 'I' | 'D' | 'U'

BigQuery 테이블의 총 레코드 수 쿼리

BigQuery 테이블 스키마에 recordstamp 열(선택사항)이 포함된 경우 테이블에 삽입되는 각 레코드의 해당 recordstamp 필드에 SAP LT Replication Server가 BigQuery에 레코드를 전송한 시점을 나타내는 타임스탬프가 포함됩니다.

소스 테이블의 총 레코드 수와 비교할 수 있는 BigQuery 테이블의 총 레코드 수를 가져오려면 recordstampis_deleted 필드를 사용하여 소스 테이블에서 삭제되지 않은 BigQuery 테이블에 있는 고유 레코드를 계수합니다.

레코드를 쿼리할 때 소스 테이블이 활성 업데이트 중이거나 복제가 활성 상태이면 소스 및 대상 테이블의 레코드 수가 정확하게 일치하지 않을 수 있습니다.

BigQuery 대상 테이블의 현재 고유 레코드 수를 가져오려면 다음 쿼리를 실행합니다.

SELECT COUNT(*)
  FROM (
    SELECT
      *,
      ROW_NUMBER() OVER (PARTITION BY KEY_FIELD_1, ..., KEY_FIELD_N ORDER BY recordstamp DESC) row_num
    FROM
      `PROJECT.DATASET.TABLE` )
  WHERE row_num = 1 AND is_deleted = false

복제 검사 도구

이 섹션에서는 복제 검증 도구와 이 도구로 할 수 있는 작업을 간략하게 설명합니다.

복제 검증 도구는 BigQuery 테이블의 레코드 수와 SAP LT Replication Server 통계 및 소스 테이블의 레코드 수를 비교하는 보고서를 생성합니다. 수가 정확하게 일치하지 않으면 이 도구는 보고서에 빨간색 원으로 표시합니다.

이 도구는 BigQuery에서 레코드를 계산하기 위해 이전 섹션 레코드 수에 대한 SQL 쿼리에 표시된 SQL 쿼리를 사용합니다.

복제 검증 도구를 주기적으로 실행하여 SAP LT Replication Server와 SAP용 BigQuery 커넥터가 레코드를 BigQuery에 예상대로 복제하는지 확인합니다.

복제 유효성 검사 도구를 실행하려면 /n을 앞에 추가하여 커스텀 트랜잭션 /GOOG/REPLIC_VALID를 SAP GUI에 입력합니다. 단계별 안내는 다음을 참조하세요.

복제 검증 보고서

복제 검증 도구를 사용하여 다음 검증 보고서를 생성할 수 있습니다.

  • 초기 로드 수: 로드 모드에서 SAP LT Replication Server가 전송한 레코드 수와 BigQuery에 로드된 레코드 수를 비교합니다.
  • 복제 수: 복제 모드에서 SAP LT Replication Server가 전송한 레코드 수와 지정된 날 BigQuery에 삽입된 레코드 수를 비교합니다.
  • 현재 수: 소스 테이블에 있는 레코드 수와 BigQuery의 고유 레코드 수를 비교한 특정 시점입니다. 소스 테이블의 현재 개수는 32비트 정수 제한(-2,147,483,648 ~ 2,147,483,647)보다 큰 숫자를 표시할 수 없습니다.

각 보고서를 개별적으로 생성하거나 도구를 실행할 때 모든 검사를 선택하여 한 번의 실행으로 세 가지 보고서를 모두 생성할 수 있습니다. 테이블 이름 필드를 사용하면 대량 전송 구성의 특정 테이블에 대해 복제 검증 보고서를 생성할 수 있습니다.

복제 검증 보고서 표시

보고서를 생성한 후 복제 검증 도구 인터페이스의 처리 옵션 섹션에서 보고서 표시 라디오 버튼을 선택하여 보고서를 표시할 수 있습니다.

복제 검증 도구에서 각 보고서에 표시하는 정보는 보고서 유형에 따라 약간 다릅니다.

모든 보고서에는 다음 유형의 정보가 포함됩니다.

  • SAP LT Replication Server 통계 및 소스 테이블의 소스 레코드 수입니다.
  • 대상 BigQuery 테이블의 대상 레코드 수입니다.
  • 두 수의 차이입니다. 차이는 소스 레코드 수에서 BigQuery 수를 뺀 값으로 계산됩니다. 양수 값은 문제가 발생할 수 있음을 나타내며, 이는 모든 소스 레코드가 BigQuery에 도달하지는 않음을 시사하기 때문입니다.
  • 소스 레코드 수의 백분율로 표시되는 수 차이입니다.
  • 소스 및 대상 수가 동일한지 여부를 나타내는 시각적 지표입니다.

불일치 레코드 수

복제 검증 도구에는 상태 필드와 해당 필드가 표시하는 각 보고서가 포함됩니다.

상태 필드에 녹색 정사각형이 표시되면 소스 레코드 수가 BigQuery의 대상 레코드 수와 일치한다는 것을 의미입니다.

상태 필드에 빨간색 원은 레코드 수가 같지 않음을 의미합니다.

레코드 수가 같지 않아도 문제가 없는 경우도 있습니다. 다음 지표는 가능한 문제를 제안합니다.

  • 현재 개수 보고서의 불일치 값은 항상 문제가 있음을 나타냅니다.
  • 초기 로드 수 또는 복제 수 보고서의 양수 값은 문제가 발생할 가능성이 있음을 나타냅니다.

    상대적으로 낮은 음수 값은 문제가 되지 않습니다. SAP LT Replication Server가 데이터를 다시 전송하도록 하는 일시적인 연결 중단과 같은 이벤트로 인해 대상 BigQuery 테이블 수가 소스 레코드 수보다 약간 많을 수 있습니다.

수가 일치하지 않으면 보고서를 다시 실행하여 일시적인 문제로 인한 것인지 확인합니다. 도구에서 보고서를 생성한 시점의 복제 처리로 인해 레코드 수가 같지 않을 수 있습니다.

매우 큰 소스 테이블이나 초기 로드 또는 복제를 위해 SAP LT Replication Server에 설정된 필터가 있는 경우 복제 검증 도구가 개수 일치에 필요한 모든 레코드를 계산하지 못할 수 있습니다.

검증 확인 예약

SAP 백그라운드 작업 기능을 사용하여 복제 검증 도구가 일정한 간격으로 자동 실행되도록 예약할 수 있습니다.

CSV 파일에서 BigQuery 필드 맵 수정

다음 섹션에서는 데이터 엔지니어 또는 BigQuery 관리자가 SAP LT Replication Server에 액세스하지 않고 대상 필드 값을 수정할 수 있도록 기본 필드 매핑을 내보내는 방법을 설명합니다.

기본 필드 매핑의 스프레드시트 또는 텍스트 파일 만들기

SAP LT Replication Server 외부에서 수정할 CSV 파일을 만들려면 다음 안내를 따르세요.

  1. /GOOG/SLT_SETTINGS 트랜잭션을 실행합니다.

  2. SLT 설정 유지보수 화면에서 다음 값을 지정합니다.

    • 설정 테이블 필드에서 필드를 지정합니다.
    • 대량 전송 키 필드에서 업데이트할 대량 전송의 ID를 지정합니다.
    • 테이블 이름 필드에서 필드를 공백으로 남겨 모든 테이블의 모든 필드에 대해 작업하거나 테이블 이름을 지정하여 특정 테이블에 대해 작업합니다.
    • 다른 모든 필드를 비워둡니다.
  3. 실행 아이콘을 클릭합니다. BigQuery 설정 유지보수 - 필드 화면이 표시됩니다.

  4. BigQuery 설정 유지보수 - 필드 화면에서 열 제목을 마우스 오른쪽 버튼으로 클릭하고 드롭다운 메뉴에서 숨기기를 선택하여 다음 목록의 열을 제외한 모든 열을 숨깁니다.

    • SAP 테이블 이름
    • SAP 필드 이름
    • 외부 데이터 요소
    • 외부 필드 이름
    • 필드 설명
  5. 나머지 5개 열이 표시되면 내보내기 아이콘을 클릭합니다.

  6. 내보내기 메뉴에서 다음 옵션 중 하나를 선택합니다.

    • 스프레드시트
    • 로컬 파일. 파일 콘텐츠를 CSV 형식으로 쉽게 변환하려면 파일을 탭이 있는 텍스트 형식으로 저장하는 것이 좋습니다.
  7. 체크표시 아이콘을 클릭하여 기본 필드 매핑을 저장합니다.

스프레드시트 또는 텍스트 파일을 CSV 형식으로 변환

커스텀 트랜잭션 /GOOG/SLT_SETTINGS를 사용하여 수정된 필드 매핑을 업로드하려면 필드 매핑이 CSV 형식이어야 합니다.

스프레드시트를 사용하는 경우 파일을 업로드하기 전에 스프레드시트를 CSV 파일로 저장하세요.

탭으로 구분된 형식 또는 기타 형식의 로컬 파일을 사용하는 경우 CSV 형식에 맞게 파일을 수정해야 합니다.

예를 들면 다음과 같습니다.

SAP Table,SAP Field Name,External Data Element,External Field Name,Field Description
SAP_TABLE_NAME,SAP_FIELD_NAME1,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME1,BIGQUERY_FIELD_DESCRIPTION1
SAP_TABLE_NAME,SAP_FIELD_NAME2,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME2,BIGQUERY_FIELD_DESCRIPTION2
SAP_TABLE_NAME,SAP_FIELD_NAME3,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME3,BIGQUERY_FIELD_DESCRIPTION3

CSV 파일 업로드

수정된 CSV 파일을 업로드하려면 다음 안내를 따르세요.

  1. /GOOG/SLT_SETTINGS 트랜잭션을 실행합니다.

  2. SLT 설정 유지보수 화면에서 다음 값을 지정합니다.

    • 설정 테이블 필드에서 필드를 지정합니다.
    • 대량 전송 키 필드에서 업데이트할 대량 전송의 ID를 지정합니다.
    • 파일에서 업로드 체크박스를 선택합니다.
  3. 실행 아이콘을 클릭합니다. 업로드할 파일 선택 대화상자가 열립니다.

  4. 업로드할 파일 선택 대화상자에서 수정된 필드 값이 포함된 CSV 파일을 선택합니다.

  5. 열기를 클릭합니다.

  6. 보안 경고를 받은 경우 허용을 클릭합니다. 파일이 로드되고 파일의 수정된 값이 BigQuery 설정 유지보수 - 필드 화면의 해당 행에 나타납니다.

  7. 저장 아이콘을 클릭합니다.

  8. 값이 적용되었는지 확인하려면 CSV 파일의 값을 SAP LT Replication Server에 표시된 값과 비교합니다.

소스 데이터의 오류 처리

SAP용 BigQuery 커넥터에서 레코드 청크가 수신된 다음 BigQuery 테이블에 레코드를 삽입하기 전 BigQuery streaming API가 데이터 오류를 확인합니다.

대량 전송 설정에서 다음 플래그를 지정하여 데이터 오류가 발견되었을 때 BigQuery API 및 SAP용 BigQuery 커넥터가 응답하는 방법을 제어할 수 있습니다.

  • Skip Invalid Records(SKIP) 플래그
  • Break at First Error Flag(BREAK) 플래그

SKIP 플래그

SKIP 플래그를 지정하면 BigQuery API가 레코드 청크를 수신하고 데이터 오류가 있는 레코드를 발견했을 때 BigQuery API가 오류가 있는 레코드에 대해 삭제 또는 건너뛰기를 수행하고 계속해서 청크의 다른 모든 레코드를 BigQuery 테이블에 삽입합니다.

SKIP 플래그를 지정하지 않으면 BigQuery가 데이터 오류가 있는 레코드를 찾았을 때 BigQuery가 레코드를 BigQuery 테이블에 삽입하지 않고 전체 청크를 삭제합니다. 이는 기본 동작입니다.

개발 및 QA 환경에서는 SKIP 플래그를 지정하는 것이 좋으며, 프로덕션 환경에서는 권장되지 않습니다.

복제를 구성할 때 /GOOG/SLT_SETTINGS 트랜잭션에 SKIP 플래그를 지정할 수 있습니다. 사양은 /GOOG/BQ_MASTR 구성 테이블에 저장됩니다.

SKIP 사양이 BREAK 사양과 상호작용하는 방법을 보려면 SKIPBREAK 상호작용 매트릭스 표를 참조하세요.

BREAK 플래그

BREAK 플래그를 지정하면 BigQuery API를 통해 레코드에서 발견된 데이터 오류가 SAP용 BigQuery 커넥터에 보고되었을 때 SAP용 BigQuery 커넥터가 BigQuery에 대한 레코드 전송을 중지하고 복제 작업을 종료합니다. 기본적으로 설정되어 있습니다.

BREAK 플래그를 지정하지 않으면 BigQuery를 통해 레코드에서 발견된 데이터 오류가 SAP용 BigQuery 커넥터에 보고되었을 때 SAP용 BigQuery 커넥터가 다음 청크를 전송해서 BigQuery에 대한 레코드 전송을 계속하고 복제 작업도 계속 수행됩니다.

프로덕션 환경에서는 BREAK 플래그를 지정하는 것이 좋습니다.

복제를 구성할 때 /GOOG/SLT_SETTINGS 트랜잭션에 BREAK 플래그를 지정할 수 있습니다. 새 대량 전송 키를 만들면 BREAK 플래그가 기본적으로 사용 설정됩니다.

사양은 /GOOG/BQ_MASTR 구성 테이블에 저장됩니다.

BREAK 사양이 SKIP 사양과 상호작용하는 방법을 보려면 SKIPBREAK 상호작용 매트릭스 표를 참조하세요.

SKIPBREAK 상호작용 매트릭스 표

다음 방법으로 데이터 오류를 처리하도록 SAP용 BigQuery 커넥터를 구성할 수 있습니다.

SKIP 플래그 BREAK 플래그 동작
FALSE TRUE

BigQuery가 현재 청크의 레코드를 BigQuery 테이블에 삽입하지 않고 현재 레코드 청크를 삭제합니다.

SAP용 BigQuery 커넥터가 현재 부분의 레코드 청크를 더 이상 전송하지 않고 SAP LT Replication Server에 복제 작업 종료를 지시합니다.

기본값이며 권장 설정입니다.

FALSE FALSE

BigQuery가 현재 청크의 레코드를 BigQuery 테이블에 삽입하지 않고 현재 레코드 청크를 삭제합니다.

SAP용 BigQuery 커넥터가 현재 부분에서 남은 모든 레코드 청크를 전송하고 다음 부분을 검색합니다. SAP용 BigQuery 커넥터가 SAP LT Replication Server에 복제 작업 종료를 지시하지 않습니다.

TRUE TRUE

BigQuery가 오류가 포함된 레코드만 삭제하고 현재 청크에서 나머지 레코드는 BigQuery 테이블에 삽입합니다.

SAP용 BigQuery 커넥터가 현재 부분의 레코드 청크를 더 이상 전송하지 않고 SAP LT Replication Server에 복제 작업 종료를 지시합니다.

TRUE FALSE

BigQuery가 오류가 포함된 레코드만 삭제하고 현재 청크에서 나머지 레코드는 BigQuery 테이블에 삽입합니다.

SAP용 BigQuery 커넥터가 현재 부분에서 남은 모든 레코드 청크를 전송하고 다음 부분을 검색합니다. SAP용 BigQuery 커넥터가 SAP LT Replication Server에 복제 작업 종료를 지시하지 않습니다.

테이블 구조 변경사항

이 섹션에서는 기존 LTRC 복제가 진행 중인 SAP 소스 테이블 구조를 수정하는 방법을 설명합니다.

소스 테이블에 열 추가

소스 테이블에 새 열을 추가하려면 다음 단계를 수행합니다.

  1. 소스 테이블에 새 열을 추가합니다. 이 단계로 인해 복제 상태가 Load/Replication blocked로 변경됩니다.

  2. SLT 시스템에서 LTRC 트랜잭션을 사용하여 복제 상태를 재설정합니다. 복제 상태를 재설정하는 방법에 대한 SAP의 추가 정보는 SAP Note 2204955 - SLT tables are in status 'Load /Replication blocked'를 참조하세요.

  3. 소스 테이블에서 항목을 추가, 업데이트 또는 삭제합니다.

  4. BigQuery에서 복제 결과의 유효성을 검사합니다.

소스 테이블에서 열 삭제

소스 테이블에서 기존 열을 삭제하려면 다음 단계를 수행합니다.

  1. SLT 시스템에서 LTRC 트랜잭션을 사용하여 복제를 일시중지합니다.

  2. 소스 테이블에서 열을 삭제합니다. 이 단계의 결과로 기존 SLT 트리거는 삭제되거나 일관되지 않은 상태로 변경됩니다.

  3. BigQuery에서 대상 BigQuery 테이블의 열을 삭제합니다. 기존 테이블에서 열을 삭제하는 단계에 대한 자세한 내용은 BigQuery 문서를 참조하세요.

  4. SLT 시스템에서 LTRC 트랜잭션을 사용하여 복제를 다시 시작합니다.

  5. SLT 시스템에서 SLT 트리거를 다시 만듭니다. SLT 트리거를 다시 만드는 방법에 대한 SAP의 추가 정보는 SAP Note 2254376 - SLT trigger(s) in an inconsistent state를 참조하세요.

  6. 복제 상태가 Load /Replication blocked이면 LTRC 트랜잭션을 사용하여 복제 상태를 재설정합니다. 복제 상태를 재설정하는 방법에 대한 SAP의 추가 정보는 SAP Note 2204955 - SLT tables are in status 'Load /Replication blocked'를 참조하세요.

  7. 로그를 삭제합니다(있는 경우).

  8. 소스 테이블에서 항목을 추가, 업데이트 또는 삭제합니다.

  9. BigQuery에서 복제 결과의 유효성을 검사합니다.

기존 열의 데이터 유형 변경

SAP 소스 테이블에서 기존 열의 데이터 유형을 변경할 때는 대상 BigQuery 테이블을 사용하여 데이터 유형을 호환되는 또는 호환되지 않는 데이터 유형으로 변경하는지 여부에 따라 특정 단계를 수행해야 합니다.

기존 데이터 유형과 기존 열의 새 데이터 유형이 대상 BigQuery 테이블의 동일한 데이터 유형에 매핑되면 데이터 유형은 대상 BigQuery 테이블의 데이터 유형과 호환됩니다. 예를 들어 열의 데이터 유형이 소스 테이블의 INT1에서 INT2로 변경되면 모든 데이터 유형이 대상 BigQuery 테이블의 데이터 유형 INTEGER와 호환됩니다.

SAP용 BigQuery 커넥터의 데이터 유형 매핑에 대한 자세한 내용은 데이터 유형 매핑을 참조하세요.

데이터 유형을 호환되는 데이터 유형으로 변경

기존 열의 데이터 유형을 호환되는 데이터 유형으로 변경하려면 다음 단계를 수행합니다.

  1. 데이터 유형을 소스 시스템에서 호환되는 데이터 유형으로 변경합니다. 이 단계의 결과로 기존 SLT 트리거는 삭제되거나 일관되지 않은 상태로 변경됩니다.

  2. SLT 시스템에서 SLT 트리거를 다시 만듭니다. SLT 트리거를 다시 만드는 방법에 대한 SAP의 추가 정보는 SAP Note 2254376 - SLT trigger(s) in an inconsistent state를 참조하세요.

  3. 복제 상태가 Load /Replication blocked이면 LTRC 트랜잭션을 사용하여 복제 상태를 재설정합니다. 복제 상태를 재설정하는 방법에 대한 SAP의 추가 정보는 SAP Note 2204955 - SLT tables are in status 'Load /Replication blocked'를 참조하세요.

  4. 로그를 삭제합니다(있는 경우).

  5. 소스 테이블에서 항목을 추가, 업데이트 또는 삭제합니다.

  6. BigQuery에서 복제 결과의 유효성을 검사합니다.

데이터 유형을 호환되지 않는 데이터 유형으로 변경

기존 열의 데이터 유형을 호환되지 않는 데이터 유형으로 변경하려면 다음 단계를 수행합니다.

  1. SLT 시스템에서 LTRC 트랜잭션을 사용하여 복제를 중지합니다.
  2. BigQuery에서 대상 테이블을 삭제합니다.
  3. 소스 시스템의 데이터 유형을 변경합니다.
  4. SLT 시스템에서 LTRC 트랜잭션을 사용하여 복제를 시작합니다.

테이블 구조 변경사항에 대한 자세한 내용은 SAP용 BigQuery 커넥터: 전문가처럼 테이블 구조 변경사항 처리를 참조하세요.

수정 종료

SAP용 BigQuery 커넥터는 해당 코드에서 ABAP 개발자가 커스텀 기능 추가를 위해 코드를 삽입할 수 있는 몇 가지 수정 지점을 제공합니다.

다음 표에서는 수정 지점에서 지원되는 함수, 메서드, 수정 지점이 포함된 클래스를 보여줍니다.

함수 클래스 메서드 스팟 옵션
외부 필드, 이름, 데이터 유형 등의 필드 매핑을 업데이트합니다. /GOOG/CL_IUUC_REPL_RUNTIME CREATE_FLD_MAPPINGS /GOOG/ES_IUUC_REPL_RUNTIME /GOOG/UPDATE_FIELD_MAPPING
필드를 추가하거나 삭제하여 필드 테이블의 매핑을 업데이트합니다. /GOOG/CL_IUUC_REPL_RUNTIME CREATE_FLD_MAPPINGS /GOOG/ES_IUUC_REPL_RUNTIME /GOOG/UPDATE_FIELD_MAPPINGS
필드가 대상 필드로 변환되기 전 소스 필드의 값을 변경합니다. /GOOG/CL_IUUC_REPL_RUNTIME_BQ FILL_TARGET_RECORDS /GOOG/ES_IUUC_REPL_RUNTIME_BQ /GOOG/CHANGE_SOURCE_FIELD
소스 필드가 대상 테이블의 대상 필드로 변환된 후 대상 필드의 값을 변경합니다. /GOOG/CL_IUUC_REPL_RUNTIME_BQ FILL_TARGET_RECORDS /GOOG/ES_IUUC_REPL_RUNTIME_BQ /GOOG/FILL_TARGET_FIELD
소스-대상 테이블 변환 중 소스 테이블에 존재하지 않는 필드를 대상 테이블에 추가합니다. /GOOG/CL_IUUC_REPL_RUNTIME_BQ FILL_TARGET_RECORDS /GOOG/ES_IUUC_REPL_RUNTIME_BQ /GOOG/FILL_EXTRA_FIELD
BigQuery 테이블이 생성되기 전 BigQuery 스키마 필드를 준비합니다. /GOOG/CL_GCP_CLIENT_BQ PREP_BQ_TABLE_SCHEMA /GOOG/ES_GCP_CLIENT_BQ /GOOG/PREPARE_SCHEMA_FIELD
HTTP 오류가 발생하면 문제 해결을 위해 BigQuery API에 대한 HTTP 호출 이후로 로깅 데이터를 수집합니다. /GOOG/CL_GCP_CLIENT_BQ_SLT INSERT_TABLEDATA /GOOG/ES_GCP_CLIENT_BQ_SLT /GOOG/LOG_INSERT_ERROR

고급 설정

선택적으로 SAP용 BigQuery 커넥터에 대해 고급 설정을 수정할 수 있습니다. Google Cloud에서는 새 값이 성능에 미치는 영향에 대한 포괄적인 분석을 마친 후에만 고급 설정 매개변수를 수정하는 것이 좋습니다. SAP용 BigQuery 커넥터의 새로운 고급 설정이 오류 및 성능 문제를 일으키지 않는지 확인해야 합니다.

SAP용 BigQuery 커넥터의 고급 설정은 시스템 수준에서 적용되며 모든 대량 전송 키에 공통적입니다. 고급 설정 매개변수를 수정하지 않으면 SAP용 BigQuery 커넥터가 기본 설정으로 작동합니다.

고급 설정 매개변수를 수정하려면 다음 단계를 완료합니다.

  1. SAP GUI에서 /n에 이어 /GOOG/SLT_SETTINGS 트랜잭션을 입력합니다.

    /n/GOOG/SLT_SETTINGS
  2. /GOOG/SLT_SETTINGS 트랜잭션 시작 화면의 설정 테이블 드롭다운 메뉴에서 매개변수를 선택합니다.

  3. 실행 아이콘을 클릭합니다. BigQuery 설정 유지보수 - 매개변수 화면이 표시됩니다.

  4. 행 삽입 아이콘을 클릭합니다.

  5. 표시된 행에서 다음 설정을 지정합니다.

    1. 매개변수 이름 필드에 매개변수의 이름을 입력합니다. 매개변수 설명이 자동으로 채워집니다.
    2. 매개변수 값 필드에 값을 입력합니다.

      고급 설정 매개변수에 대해 알아보려면 고급 설정 매개변수를 참조하세요.

  6. 저장을 클릭합니다.

    고급 설정이 /GOOG/BQ_PARAM 구성 테이블에 레코드로 저장되고 변경한 사람, 변경 시간, 변경 위치 필드가 자동으로 채워집니다.

고급 설정 매개변수

다음 표는 SAP용 BigQuery 커넥터의 고급 설정 매개변수를 보여줍니다.

매개변수 이름 설명 기본값 유효한 값
CHUNK_SIZE_DEF SAP용 BigQuery 커넥터가 지원하는 기본 청크 크기입니다.
청크 크기가 설정에서 유지되지 않으면 기본 청크 크기가 사용됩니다.
10,000 값이 BigQuery Quota 한도 내에 있어야 합니다.
PERC_REDUC_DEF 청크 크기 백분율 감소.
동적 청크 크기가 사용 설정되었으면 이상적인 청크 크기에 도달하고 청크 데이터가 BigQuery에 성공적으로 전송될 때까지 이 백분율만큼 청크 크기가 줄어듭니다.
50 값은 1부터 99까지여야 합니다.
CMD_EXEC_TRIES Google Cloud에서 실행되지 않는 SAP 시스템의 경우 SM69 트랜잭션에서 만든 운영체제 명령어가 Google Cloud에서 액세스 토큰을 검색하지 못하면 이것이 SAP용 BigQuery 커넥터가 토큰 검색을 시도하는 횟수입니다. 5 이 매개변수에 할당할 수 있는 최솟값은 1입니다. 1회 이상 사용하려면 값을 2로 설정합니다. 이 매개변수의 최댓값은 토큰 검색이 복제 성능에 미칠 수 있는 영향을 분석한 후에 설정해야 합니다.
CMD_SECS_DEFLT 토큰 캐싱을 사용 설정한 경우 캐시된 토큰이 만료되는 시간(초)입니다. 3500 값은 1부터 3599까지여야 합니다.