Esta seção fornece orientações para solucionar problemas comuns encontrados ao usar conectores de gravador do BigQuery.
Solução de problemas da configuração orientada por tabela
No modo de configuração orientada por tabela, as mensagens do Kafka precisam estar alinhadas ao esquema da tabela. Confira alguns problemas comuns que podem ocorrer ao configurar esse método.
Coluna não anulável ausente
Se uma mensagem do Kafka omitir um campo que existe como uma coluna não anulável na tabela do BigQuery, a operação de gravação vai falhar com uma mensagem de erro semelhante a esta:
Failed to write rows after BQ table creation or schema update within 30
attempts for: GenericData{classInfo=[datasetId, projectId, tableId], {datasetId=<datasetID>, tableId=<tableID>}}"
Substitua <datasetID> e <tableID> pelos IDs reais do conjunto de dados e da tabela.
Para resolver o problema, mude a coluna do BigQuery para NULLABLE
e reinicie o conector.
Campos indefinidos
Se algum campo na mensagem do Kafka não estiver definido no esquema da tabela do BigQuery, a operação de gravação vai falhar com uma mensagem de erro semelhante a esta:
Insertion failed at table repairScenario for following rows:
[row index 0] (Failure reason : The source object has fields unknown to BigQuery: root.<fieldName>.)
Substitua <fieldName> pelo nome do campo indefinido.
Para resolver o problema, adicione os campos ausentes à tabela do BigQuery e reinicie o conector.
Incompatibilidade de tipos
Se houver uma incompatibilidade de tipo entre um campo de mensagem do Kafka e a coluna da tabela do BigQuery correspondente (por exemplo, uma string no Kafka e um número inteiro no BigQuery), a operação de gravação vai falhar com uma mensagem de erro semelhante a esta:
[row index 0] (location <field>, reason: invalid): Cannot convert value to <type> (bad value): <val>
Substitua <field>, <type> e <val> pelo nome do campo, tipo de dados e valor relevantes, respectivamente.
Esse é um problema conhecido.
Solicitação AppendRows muito grande
Ao usar o modo StorageWrite do conector, talvez você encontre um erro
semelhante a este:
INVALID_ARGUMENT: AppendRows request too large: 11053472 limit 10485760
O conector tenta gravar todas as mensagens em uma única pesquisa do Kafka em
um único lote para o BigQuery. Se o tamanho do lote exceder o limite do BigQuery (10485760 bytes), a operação de gravação vai falhar.
Para resolver esse erro, defina a propriedade de configuração consumer.override.max.poll.records no conector com um número menor. O valor padrão desse parâmetro é 500.