BigQuery 싱크 커넥터 문제 해결

이 섹션에서는 BigQuery 싱크 커넥터를 사용할 때 발생하는 일반적인 문제에 대한 문제 해결 안내를 제공합니다.

표 기반 구성 문제 해결

표 기반 구성 모드에서는 Kafka 메시지가 표 스키마와 긴밀하게 일치해야 합니다. 이 방법을 구성할 때 발생할 수 있는 몇 가지 일반적인 문제는 다음과 같습니다.

null이 아닌 열이 누락됨

Kafka 메시지에서 BigQuery 테이블에 null이 아닌 열로 존재하는 필드를 누락하면 쓰기 작업이 다음 오류 메시지와 유사한 메시지와 함께 실패합니다.

Failed to write rows after BQ table creation or schema update within 30
attempts for: GenericData{classInfo=[datasetId, projectId, tableId], {datasetId=<datasetID>, tableId=<tableID>}}"

<datasetID><tableID>을 실제 데이터 세트 및 테이블 ID로 바꿉니다.

이 문제를 해결하려면 BigQuery 열을 NULLABLE로 변경하고 커넥터를 다시 시작하세요.

정의되지 않은 필드

Kafka 메시지의 필드가 BigQuery 테이블 스키마에 정의되어 있지 않으면 다음과 유사한 오류 메시지와 함께 쓰기 작업이 실패합니다.

Insertion failed at table repairScenario for following rows:
[row index 0] (Failure reason : The source object has fields unknown to BigQuery: root.<fieldName>.)

<fieldName>을 정의되지 않은 필드의 이름으로 바꿉니다.

이 문제를 해결하려면 BigQuery 테이블에 누락된 필드를 추가하고 커넥터를 다시 시작하세요.

유형 불일치

Kafka 메시지 필드와 해당 BigQuery 테이블 열 간에 유형 불일치가 발생하면 (예: Kafka의 문자열과 BigQuery의 정수) 다음과 유사한 오류 메시지와 함께 쓰기 작업이 실패합니다.

[row index 0] (location <field>, reason: invalid): Cannot convert value to <type> (bad value): <val>

<field>, <type>, <val>를 각각 관련 필드 이름, 데이터 유형, 값으로 바꿉니다.

이는 알려진 문제입니다.

Apache Kafka®는 미국 및/또는 다른 국가에서 사용되는 Apache Software Foundation 또는 해당 계열사의 등록 상표입니다.

AppendRows 요청이 너무 큼

커넥터의 StorageWrite 모드를 사용하면 다음과 비슷한 오류가 표시될 수 있습니다.

INVALID_ARGUMENT: AppendRows request too large: 11053472 limit 10485760

커넥터는 Kafka에서 단일 폴링 내의 모든 메시지를 BigQuery에 단일 배치로 쓰려고 시도합니다. 일괄 처리 크기가 BigQuery 한도 (10485760바이트)를 초과하면 쓰기 작업이 실패합니다. 이 오류를 해결하려면 커넥터의 consumer.override.max.poll.records 구성 속성을 더 작은 숫자로 설정하세요. 이 파라미터의 기본값은 500입니다.

다음 단계