Soluciona problemas del conector de receptor de BigQuery

En esta sección, se proporciona orientación para solucionar problemas habituales que se producen cuando se usan conectores de receptor de BigQuery.

Soluciona problemas relacionados con la configuración basada en tablas

En el modo de configuración basado en tablas, los mensajes de Kafka deben alinearse estrechamente con el esquema de la tabla. Estos son algunos problemas habituales que pueden ocurrir cuando configuras este método.

Falta una columna que no admite valores nulos

Si un mensaje de Kafka omite un campo que existe como una columna no anulable en la tabla de BigQuery, la operación de escritura falla y se muestra un mensaje de error similar al siguiente:

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

Reemplaza <datasetID> y <tableID> por los IDs reales del conjunto de datos y la tabla.

Para resolver el problema, cambia la columna de BigQuery a NULLABLE y reinicia el conector.

Campos sin definir

Si algún campo del mensaje de Kafka no está definido en el esquema de la tabla de BigQuery, la operación de escritura fallará con un mensaje de error similar al siguiente:

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

Reemplaza <fieldName> por el nombre del campo no definido.

Para resolver el problema, agrega los campos faltantes a la tabla de BigQuery y reinicia el conector.

Incompatibilidad de tipos

Si se produce una discrepancia de tipo entre un campo de mensaje de Kafka y la columna de la tabla de BigQuery correspondiente (por ejemplo, una cadena en Kafka y un número entero en BigQuery), la operación de escritura falla con un mensaje de error similar al siguiente:

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

Reemplaza <field>, <type> y <val> por el nombre del campo, el tipo de datos y el valor correspondientes, respectivamente.

Este es un problema conocido.

Apache Kafka® es una marca registrada de The Apache Software Foundation o sus afiliados en Estados Unidos y otros países.

La solicitud de AppendRows es demasiado grande

Cuando usas el modo StorageWrite del conector, es posible que veas un error similar al siguiente:

INVALID_ARGUMENT: AppendRows request too large: 11053472 limit 10485760

El conector intenta escribir todos los mensajes dentro de una sola recuperación de Kafka en un solo lote en BigQuery. Si el tamaño del lote supera el límite de BigQuery (10485760 bytes), la operación de escritura falla. Para resolver este error, establece la propiedad de configuración consumer.override.max.poll.records del conector en un número más pequeño. El valor predeterminado para este parámetro es 500.

¿Qué sigue?