Résoudre les problèmes liés au connecteur de récepteur BigQuery

Cette section fournit des conseils de dépannage pour les problèmes courants rencontrés lors de l'utilisation des connecteurs de récepteur BigQuery.

Résoudre les problèmes de configuration basée sur des tableaux

En mode de configuration piloté par les tables, les messages Kafka doivent être étroitement alignés sur le schéma de table. Voici quelques problèmes courants qui peuvent survenir lorsque vous configurez cette méthode.

Colonne non nullable manquante

Si un message Kafka omet un champ qui existe en tant que colonne non nullable dans la table BigQuery, l'opération d'écriture échoue et un message d'erreur semblable à celui-ci s'affiche :

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

Remplacez <datasetID> et <tableID> par les ID réels de l'ensemble de données et de la table.

Pour résoudre le problème, remplacez la colonne BigQuery par NULLABLE et redémarrez le connecteur.

Champs non définis

Si des champs du message Kafka ne sont pas définis dans le schéma de table BigQuery, l'opération d'écriture échoue et un message d'erreur semblable à celui-ci s'affiche :

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

Remplacez <fieldName> par le nom du champ non défini.

Pour résoudre le problème, ajoutez les champs manquants à la table BigQuery et redémarrez le connecteur.

Incompatibilité de type

Si une incompatibilité de type se produit entre un champ de message Kafka et la colonne de table BigQuery correspondante (par exemple, une chaîne dans Kafka et un entier dans BigQuery), l'opération d'écriture échoue et un message d'erreur semblable à celui-ci s'affiche :

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

Remplacez <field>, <type> et <val> par le nom de champ, le type de données et la valeur correspondants, respectivement.

C'est un problème connu.

Apache Kafka® est une marque déposée d'Apache Software Foundation ou de ses filiales aux États-Unis et/ou dans d'autres pays.

Requête AppendRows trop volumineuse

Lorsque vous utilisez le mode StorageWrite du connecteur, une erreur semblable à celle-ci peut s'afficher :

INVALID_ARGUMENT: AppendRows request too large: 11053472 limit 10485760

Le connecteur tente d'écrire tous les messages d'un même sondage Kafka dans un seul lot BigQuery. Si la taille du lot dépasse la limite BigQuery (10 485 760 octets), l'opération d'écriture échoue. Pour résoudre cette erreur, définissez la propriété de configuration consumer.override.max.poll.records sur le connecteur sur un nombre plus petit. La valeur par défaut de ce paramètre est 500.

Étapes suivantes