このセクションでは、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 とテーブル 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> は、それぞれ関連するフィールド名、データ型、値に置き換えます。
これは既知の問題です。
AppendRows リクエストが大きすぎる
コネクタの StorageWrite モードを使用すると、次のようなエラーが表示されることがあります。
INVALID_ARGUMENT: AppendRows request too large: 11053472 limit 10485760
コネクタは、Kafka からの 1 回のポーリング内のすべてのメッセージを 1 つのバッチで BigQuery に書き込もうとします。バッチサイズが BigQuery の上限(10485760 バイト)を超えると、書き込みオペレーションは失敗します。このエラーを解決するには、コネクタの consumer.override.max.poll.records 構成プロパティを小さい値に設定します。このパラメータのデフォルト値は 500 です。