버전 2.0: SAP용 BigQuery 커넥터 문제 해결 가이드

SAP LT Replication Server 애플리케이션 로깅과 Google Cloud 로그를 사용하여 오류 및 로그 메시지를 검토하면 SAP용 BigQuery 커넥터 버전 2.0 및 2.1의 문제를 해결할 수 있습니다.

SAP용 BigQuery 커넥터는 표준 SAP LT Replication Server 애플리케이션 로그로 모든 오류를 전송합니다.

SAP LT Replication Server 디버깅을 사용하여 문제를 격리할 수도 있습니다.

문제 해결 개요

SAP용 BigQuery 커넥터 문제를 해결할 때는 조사하는 문제의 영역 또는 범위에 따라 주의해야 할 몇 가지 영역이 있습니다.

  • 네트워크, 하드웨어 또는 운영체제와 같은 인프라
  • 소스 서버 및 SAP LT Replication Server를 포함한 SAP 소프트웨어
  • SAP용 BigQuery 커넥터
  • BigQuery API 및 대상 테이블이 포함한 BigQuery

적합한 팀의 참여

문제를 해결할 때 가장 먼저 해야 할 일은 문제가 발생한 이전 영역과 문제의 범위를 확인하는 것입니다.

문제를 해결하려면 Basis 관리자, SAP LT Replication Server 관리자, DBA, Google Cloud 보안 관리자와 같은 여러 팀과의 협력이 필요할 수 있습니다.

조기에 적절한 팀과 기술을 활용하면 문제를 더 빨리 해결할 수 있습니다.

근본 원인 파악

문제의 근본 원인을 파악하고, 원인이라고 생각되는 것이 실제로는 다른 문제에 대한 근본 원인의 증상이 아닌지 확인해야 합니다.

SAP 시스템은 긴밀히 통합되어 있지만 여러 위치의 파일에 로그와 trace를 쓸 수 있습니다. 문제를 해결할 때는 올바른 로그와 확인할 trace 파일을 결정해야 합니다.

소프트웨어 요구사항 및 기본 요건 확인

모든 시스템 소프트웨어가 요구되는 최소 버전에서 실행 중이고 SAP용 BigQuery 커넥터 기본 요건을 충족하는지 확인하세요.

SAP용 BigQuery 커넥터 설치 기본 요건에 대한 자세한 내용은 기본 요건을 참조합니다.

  • SAP LT Replication Server가 Compute Engine VM에서 실행 중인 경우 기본 요건을 참조하세요.

  • SAP LT Replication Server가 Google Cloud 외부의 호스트에서 실행 중인 경우 기본 요건을 참조하세요.

SAP용 BigQuery 커넥터 소프트웨어 요구사항은 소프트웨어 요구사항을 참조하세요.

이전 버전의 ECC 소프트웨어를 사용하는 경우 SAP LT Replication Server 버전이 ECC 버전과 호환되는지 확인합니다. 자세한 내용은 SAP Note 2577774 - Version compatibility for source and target systems - SLT(SAP 노트 2577774 - 소스 및 대상 시스템의 버전 호환성)를 참조하세요.

SAP 지원 문서 읽기

SAP 사용자 계정이 있는 경우 SAP ONE Support Launchpad에서 제공되는 SAP 노트 및 SAP 기술 자료 문서를 살펴보면 여러 SAP 소프트웨어 문제에 대한 해결 방법을 찾을 수 있습니다.

로깅

SAP용 BigQuery 커넥터는 로그 메시지를 SAP LT Replication Server로 전송합니다. 사용자가 SAP LT Replication Server 애플리케이션 로그에서 이 메시지를 볼 수 있습니다.

이러한 메시지에는 SAP용 BigQuery 커넥터가 BigQuery API에서 수신하는 메시지가 포함됩니다.

일반 BigQuery 로그 메시지는 Google Cloud 콘솔에서 볼 수 있습니다.

SAP LT Replication Server 애플리케이션 로그

모든 오류 메시지는 표준 SAP LT Replication Server 애플리케이션 로그에 저장됩니다. 애플리케이션 로그를 확인하여 문제의 근본 원인을 분석하고 해결합니다.

LTRC 트랜잭션을 실행하고 구성을 열어 애플리케이션 로그를 선택하면 SAP LT Replication Server와 관련된 애플리케이션 로그를 표시할 수 있습니다.

로그가 표시되면 테이블 행을 선택한 후 버튼을 클릭하여 오류 메시지를 표시하면 됩니다. 복제에서 애플리케이션 로그 탭을 클릭하면 복제의 관련 런타임 로그 메시지를 필터링할 수 있습니다.

SAP용 BigQuery 커넥터에서 생성된 메시지

레코드가 BigQuery로 전송되기 전에 SAP용 BigQuery 커넥터에서 발생하는 오류에는 /GOOG/SLT라는 프리픽스가 포함됩니다.

BigQuery API에서 반환된 모든 오류에는 /GOOG/MSG라는 프리픽스가 포함됩니다. 여기에는 모든 HTTP 오류가 포함됩니다.

오류에 이러한 값 중 하나의 프리픽스가 붙지 않으면 SAP LT Replication Server에서 오류가 발생한 것입니다.

BigQuery 로그

BigQuery는 Google Cloud 콘솔의 Cloud Logging에 다양한 로그 항목을 씁니다.

BigQuery 로그 항목을 보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Logging을 엽니다.

    로그 탐색기로 이동

  2. 쿼리 편집기에서 BigQuery 리소스를 지정합니다. 예를 들면 다음과 같습니다.

    resource.type="bigquery_dataset"

BigQuery 로그에 대한 자세한 내용은 로그를 참조하세요.

HTTP trace

오류를 해결하는 동안 SMICM 또는 ST05 트랜잭션에서 HTTP trace를 사용 설정할 수 있습니다.

성능에 미치는 영향을 제한하려면 작업이 완료되는 즉시 HTTP trace를 중지합니다.

디버깅

필요한 승인을 받았으면 SAP용 BigQuery 커넥터의 비즈니스 추가 기능(BAdI) 코드를 디버깅할 수 있습니다.

BAdI 코드를 디버깅하려면 다음 안내를 따르세요.

  1. BAdI 코드 디버깅에 필요한 SAP 승인을 아직 받지 못했으면 SAP 관리자에게 요청하세요.

  2. SAP GUI의 트랜잭션 항목 필드에 /h를 입력한 후 Enter를 눌러 디버깅을 사용 설정합니다.

  3. Settings(설정) 메뉴에서 Change Debugger Profile/ Settings(Debugger 프로필/설정 변경)를 선택합니다.

  4. Debug Modes(디버그 모드)에서 System Debugging(시스템 디버깅)이 선택되어 있는지 확인합니다.

  5. 필요에 따라 코드에 외부 중단점을 설정합니다.

모니터링

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

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

이러한 각 지점의 모니터링에 대한 자세한 내용은 SAP용 BigQuery 커넥터 작업 가이드를 참조하세요.

데이터 조정

레코드 수를 확인할 수 있는 세 가지 지점은 다음과 같습니다.

  • 소스 테이블
  • LTRC 트랜잭션의 SAP LT Replication Server 로드 또는 복제 통계
  • BigQuery 대상 테이블

복제 검사 도구를 사용해서 레코드 수를 확인 및 비교하거나 SQL 쿼리를 실행하여 레코드를 직접 검색할 수 있습니다.

데이터 조정에 대한 자세한 내용은 SAP용 BigQuery 커넥터 작업 가이드를 참조하세요.

일반적인 구성 문제

이 섹션에서는 SAP용 BigQuery 커넥터를 처음으로 설정 및 구성할 때 발생할 수 있는 일반적인 문제의 해결 방법을 설명합니다.

SAP LT Replication Server의 데이터베이스 데이터 유형 지원

SAP 소프트웨어 버전에 따라 SAP LT Replication Server가 소스 데이터베이스의 일부 데이터 유형을 지원하지 않을 수도 있습니다. 자세한 내용은 SAP Note 1605140 - SAP Landscape Transformation Replication Server (SLT)(SAP 노트 1605140 - SAP Landscape Transformation Replication Server(SLT)의 중요 고려사항 섹션을 참조하세요.

문제: SAP LT Replication Server에서 작동하지 않는 액세스 토큰에 대한 OS 명령어

문제: 액세스 토큰 인쇄를 위한 운영체제(OS) 명령어를 만들었지만 SAP LT Replication Server에서 작동하지 않습니다.

원인: 여러 가지 문제로 인해 발생할 수 있지만 OS 명령어에 필요한 환경 변수가 올바르게 구성되지 않았기 때문에 문제가 발생했을 가능성이 가장 높습니다.

해결 방법: OS 명령어가 올바르게 구성되었는지 확인합니다. 구성 단계는 액세스 토큰 출력을 위한 OS 명령어 만들기를 참조하세요.

sidadm로 OS에서와 SAP 트랜잭션 SM69에서 모두 printenv 명령어를 실행하고 출력을 비교합니다.

SM69 트랜잭션에서 반환된 변수가 불완전한 경우 SAP LT Replication Server를 다시 시작하여 변수를 등록하세요.

문제: /GOOG/MSG: 413 - Request Entity Too Large

문제: /GOOG/MSG: 413 - Request Entity Too Large 오류 메시지가 표시되면서 데이터 전송이 실패했습니다.

원인: 이 문제는 SAP용 BigQuery 커넥터에서 전송하는 청크의 바이트 크기가 BigQuery에서 허용하는 HTTP 요청의 최대 바이트 크기를 초과하는 경우에 발생할 수 있습니다. 이 문제는 테이블 레코드 크기나 레코드에 포함된 데이터 양으로 인해 청크 바이트 크기가 BigQuery 한도를 초과하는 경우에 발생할 수 있습니다.

해결 방법: SAP용 BigQuery 커넥터에서 테이블에 대해 전송하는 청크의 크기를 줄입니다. /GOOG/SLT_SETTINGS 트랜잭션을 실행하면 청크 크기를 조정할 수 있습니다.

청크 크기 조정은 SAP용 BigQuery 커넥터의 청크 크기를 참조하세요.

문제: /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending

문제: /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending 오류 메시지가 표시되면서 데이터 전송이 실패했습니다.

원인: 이 문제는 연결 문제나 네트워크 문제로 인해 발생할 수 있습니다.

해결 방법: 연결을 검증하고 네트워크가 올바르게 설정되어 있고 오류 없이 실행되며 정체되어 있지 않는지 확인합니다.

문제: /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving

문제: /GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving 오류 메시지가 표시되면서 데이터 전송이 실패했습니다.

이 문제는 다음과 같은 경우에 발생할 수 있습니다.

SSL 핸드셰이크 실패

원인: SAP LT Replication Server 호스트와 BigQuery API 엔드포인트 간에 SSL 핸드셰이크가 실패한 경우. 이는 TLS 서버에서 제공하는 인증서가 SAP LT Replication Server에서 제공한 대상 호스트 이름에 유효하지 않은 경우에 발생하며 선택적 TLS 확장 프로그램 SNI의 클라이언트 측 전송이 NetWeaver 커널에 구현되지 않았기 때문일 수 있습니다.

해결 방법: SMICM 트랜잭션에서 반환 코드 SSLERR_SERVER_CERT_MISMATCH를 찾습니다. 반환 코드 SSLERR_SERVER_CERT_MISMATCH를 찾으면 TLS 확장 프로그램 SNI 전송을 사용 설정해야 합니다. 또한 NetWeaver 커널에서 선택적 TLS 확장 프로그램 SNI의 클라이언트 측 전송을 구현하는지 확인합니다.

TLS 확장 프로그램 SNI 전송을 사용 설정하려면 NetWeaver 커널 버전에 따라 프로필 매개변수 icm/HTTPS/client_sni_enabled 또는 ssl/client_sni_enabledTRUE로 설정합니다. SAP에 대한 자세한 내용은 다음을 참조하세요.

청크의 바이트 크기가 BigQuery에서 허용하는 HTTP 요청의 최대 바이트 크기를 초과함

원인: SAP용 BigQuery 커넥터에서 전송하는 청크의 바이트 크기가 BigQuery에서 허용하는 HTTP 요청의 최대 바이트 크기를 초과하는 경우. 이 문제는 테이블 레코드 크기나 레코드에 포함된 데이터 양으로 인해 청크 바이트 크기가 BigQuery 한도를 초과하는 경우에 발생할 수 있습니다.

해결 방법: SAP용 BigQuery 커넥터에서 이 테이블에 대해 전송하는 청크의 크기를 줄입니다. /GOOG/SLT_SETTINGS 트랜잭션을 실행하면 청크 크기를 조정할 수 있습니다. 자세한 내용은 SAP용 BigQuery 커넥터의 청크 크기를 참조하세요.

문제: /GOOG/MSG: 404 - Not found: Dataset DATASET_NAME

문제: Google Cloud 보안을 검증하거나 BigQuery 테이블에 데이터를 로드하려고 하면 /GOOG/MSG: 404 - Not found: Dataset DATASET_NAME 메시지가 표시됩니다.

원인: 이 문제는 다음과 같은 경우에 발생할 수 있습니다.

  • BigQuery 데이터 세트가 아직 생성되지 않았습니다.
  • 대량 전송 구성에서 데이터 세트 이름이 올바르게 지정되지 않았습니다.
  • SAP LT Replication Server에서 복제 구성을 활성화해야 합니다.

해결 방법: 다음 해결 방법을 시도해 보세요.

  • BigQuery에서 데이터 세트가 생성되었는지 확인합니다.
  • 대량 전송 구성의 데이터 세트 이름이 BigQuery의 데이터 세트 이름과 동일한지 확인합니다.
  • LTRC 트랜잭션을 실행하고 복제 구성을 비활성화했다가 다시 활성화합니다.

문제: Mass Transfer Key can not be found for Mass Transfer ID XXX

문제: /GOOG/SLT: Mass Transfer Key can not be found for Mass Transfer ID XXX 오류가 표시됩니다.

원인: 이 문제는 다음과 같은 경우에 발생할 수 있습니다.

  • 지정된 대량 전송 ID에 대량 전송 구성이 없습니다.
  • 해당하는 복제 구성이 활성화되지 않았습니다.

해결 방법: 문제를 해결하려면 다음 작업 중 하나를 수행합니다.

  • /GOOG/SLT_SETTINGS 트랜잭션을 실행하고 대량 전송 ID가 올바르게 지정되었는지 확인합니다.
  • LTRC 트랜잭션을 실행하고 복제 구성을 비활성화했다가 다시 활성화합니다.

문제: /GOOG/SLT : Unable to interpret VALUE as a BOOLEAN

문제: 레코드의 로드 또는 복제가 실패하며 /GOOG/SLT : Unable to interpret VALUE as a BOOLEAN 메시지가 반환됩니다.

원인: 이 문제는 소스 테이블의 필드를 BigQuery 데이터 유형 BOOLEAN에 매핑했지만 소스 필드의 데이터가 불리언으로 확인되지 않기 때문에 발생합니다.

해결 방법: 이 문제를 해결하려면 트랜잭션 /GOOG/SLT_Settings를 사용하여 소스 필드가 매핑된 데이터 유형을 변경하거나 데이터 유형 매핑을 삭제하고 기본 데이터 유형을 허용합니다.

문제: /GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS

문제: 레코드의 로드 또는 복제가 실패하며 /GOOG/SLT: Failed to convert field SAP_FIELD_NAME value to field BIGQUERY_FIELD_NAME: ERROR_DETAILS 메시지가 반환됩니다.

원인: 소스 필드에 잘못된 값이 포함되었거나, 소스 필드가 소스 필드에 포함된 데이터의 매핑으로 유효하지 않은 BigQuery 데이터 유형으로 매핑된 경우입니다.

해결 방법: 이 문제를 해결하려면 /GOOG/SLT_SETTINGS 트랜잭션을 사용하여 소스 필드가 매핑되는 데이터 유형을 변경하거나 데이터 유형 매핑을 삭제하고 데이터 유형의 기본 매핑을 허용합니다.

문제: /GOOG/MSG : Client key is not found in /GOOG/CLIENT_KEY table

문제: /GOOG/MSG: Client key is not found in /GOOG/CLIENT_KEY table 메시지를 사용해도 로드 또는 복제가 시작되지 않습니다.

원인: 클라이언트 키가 존재하지 않거나 /GOOG/SLT_SETTINGS 트랜잭션의 대량 전송 구성에서 클라이언트 키가 잘못 지정되었습니다.

해결 방법: 문제를 해결하려면 SM30 트랜잭션을 사용하여 클라이언트 키를 만들거나 /GOOG/SLT_SETTINGS 트랜잭션을 사용하여 대량 전송 구성의 클라이언트 키 값 사양을 수정합니다.

일반적인 운영 문제

이 섹션에서는 SAP용 BigQuery 커넥터를 처음 설정한 후 발생할 수 있는 일반적인 문제의 해결 방법을 설명합니다.

문제: BigQuery의 잘못된 쓰기 수

문제: BigQuery에 작성된 레코드 수가 SAP LT Replication Server 로그에 표시된 레코드 수보다 많습니다.

원인: 이 문제에는 SAP LT Replication Server가 레코드를 두 번 이상 전송하게 하는 일시적인 연결 문제 또는 BigQuery 테이블이 삽입만 허용하는 사실 등 둘 이상의 원인이 있을 수 있으며, 소스의 단일 레코드에 대한 각 변경사항은 대상 테이블에 별도의 항목으로 삽입됩니다.

해결 방법: 레코드 수의 차이가 크지 않고 소스 테이블보다 BigQuery에 있는 레코드 수가 많지 않은 경우 이는 정상적인 동작이며 문제가 되지 않습니다.

BigQuery의 레코드 수를 소스 테이블의 레코드 수와 정확하게 맞추려면 레코드 수에 대한 SQL 쿼리에 설명된 대로 BigQuery 테이블을 쿼리합니다.

이 문제의 가능 원인에 대한 자세한 내용은 ABAP 소스/대상의 특별 고려사항을 참조하세요.

문제: /GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME

문제: /GOOG/MSG : 400 - Schema mismatch for table TABLE_NAME. Please delete the table from BigQuery and try again. 오류 메시지가 표시됩니다.

원인: 기존 BigQuery 테이블에 다음 변경사항 중 하나가 입력되었습니다.

  • 필드 삭제
  • 필드 이름 변경
  • 필드의 데이터 유형 변경
  • 테이블의 파티션 유형 변경

앞의 변경사항은 기존 BigQuery 테이블에 적용될 수 없습니다.

해결 방법: 기존 테이블에서 이러한 필드 속성을 변경해야 하는 경우 기존 테이블을 삭제하고 레코드를 새 테이블로 다시 로드해야 합니다.

실수로 변경되었다면 SAP LT Replication Server의 변경사항을 백업합니다.

대상 BigQuery 테이블의 필드 및 파티션 구성에 대한 자세한 내용은 BigQuery 복제 구성을 참조하세요.

문제: 잘못된 데이터와 관련된 오류 메시지

문제: 애플리케이션 로그에 오류 메시지(/GOOG/MSG/: DESCRIPTION_OF_INVALID_DATA error occurred in FIELD_NAME in record RECORD_KEYS)가 표시됩니다.

원인: 잘못된 데이터가 있는 레코드를 대상 테이블에 삽입하면 BigQuery에서 이 오류 메시지를 발행합니다. 다음 이유 중 하나로 인해 데이터가 잘못되었을 수 있습니다.

  • 특정 레코드의 필드에 있는 데이터는 BigQuery의 데이터 유형과 호환되지 않습니다. 예를 들어 BigQuery는 다음과 같은 경우에 오류 메시지를 생성합니다.
    • 문자열이 DATE, INTEGER 또는 BOOLEAN 유형의 필드에서 유지보수됩니다.
    • 잘못된 날짜(00/00/0000)가 DATE 유형 필드에서 유지보수됩니다.
  • /GOOG/SLT_SETTINGS 트랜잭션의 필드 매핑에서 잘못된 대상 데이터 유형이 유지보수됩니다.

BigQuery는 잘못된 데이터가 있는 필드를 포함하는 각 레코드에 대해 오류 메시지를 발생합니다.

해결 방법: 오류 메시지 DESCRIPTION_OF_INVALID_DATA를 분석하여 잘못된 데이터의 가능한 원인을 파악합니다. 잘못된 데이터가 포함된 필드로 레코드를 식별하려면 레코드의 처음 5개 필드의 콘텐츠가 포함된 RECORD_KEYS를 사용합니다. 테이블에 5개 이하의 필드가 있으면 모든 필드의 콘텐츠가 RECORD_KEYS에 포함됩니다.

  • 필드의 데이터가 BigQuery의 데이터 유형과 호환되지 않는 경우 소스 테이블의 데이터를 수정합니다.
  • 데이터와 데이터 유형 간 불일치로 인해 오류가 발생하면 /GOOG/SLT_SETTINGS 트랜잭션을 사용하여 적절한 데이터 유형을 지정합니다. 데이터 유형 매핑에 대한 자세한 내용은 데이터 유형 매핑을 참조하세요.

지원 받기

복제 및 SAP용 BigQuery 커넥터 문제를 해결하는 데 도움이 필요한 경우 사용 가능한 모든 진단 정보를 수집하여 Cloud Customer Care에 문의하세요.

Cloud Customer Care에 문의하는 방법에 대한 자세한 내용은 Google Cloud 기반 SAP에 대한 지원 받기를 참조하세요.