2016-12-08 1 views
4

J'essaie de diagnostiquer les problèmes de mise à jour de Google Fusion Tables à l'aide de données CSV via l'API. Tout semble fonctionner correctement côté code des choses sans erreurs signalées mais les données ne reflètent pas les changements. Des idées comment je peux diagnostiquer ce qui ne va pas?Diagnostic de la mise à jour de Google Fusion Table en utilisant l'API pour télécharger le fichier CSV

J'ai utilisé le Google.Apis.Fusiontables.v2 C# libraries (v1.27.1.833 est le dernier que j'ai essayé) pour mettre à jour une table de fusion quotidienne. Le processus fonctionnait parfaitement depuis un certain temps, mais il ne semble plus fonctionner. Je soupçonne que le processus a été interrompu pendant un mois ou plus maintenant.

Tout semble fonctionner du côté du code, aucune erreur signalée. J'ai également débogué le processus à partir de Visual Studio sans aucun problème indiqué - il semble juste fonctionner du côté du client.

Dans le cas où il est utile de la méthode C# J'utilise est:

fusiontablesService.Table.ReplaceRows(tableId, stream, "application/octet-stream").Upload(); 

Le tableau que je tente de mettre à jour est - https://fusiontables.google.com/DataSource?docid=1ndrFm1g0iZpz5gszjz5Ij9r_KiQbNYRXVM2JNfv3

La colonne UpdatedUtc indique que quelques lignes mises à jour deviennent par mais pas tous.

Si j'exporte mon flux CSV dans un fichier physique et que je crée manuellement une nouvelle table de fusion via l'interface Web, cela fonctionne parfaitement et montre toutes les données manquantes que j'attends.

Voici le fichier CSV compressé dans le cas où il est utile - http://www.paydirt.co.nz/stackoverflow/GoldPermits.zip

Ceci est le test Fusion Le tableau I Importée le fichier CSV manuellement dans - https://www.google.com/fusiontables/DataSource?docid=1Udnre88O8e1zokvnhrkmqdY7BbYD2OQtELdyz3uG

Exemple de données manquantes dans les mises à jour de table en direct: enter image description here

Par rapport à la table de test créé à partir des mêmes données: enter image description here

Les PERMIT_NUMBER pour les 2 lignes manquantes dans l'exemple sont 60304 et 60247.

Avez-vous des idées sur la façon dont je peux étudier ce qui pourrait mal se passer? Peut-être y at-il des journaux ou des options de journalisation disponibles quelque part que je ne connais pas?

Toute aide/idées à explorer est grandement appréciée.

Répondre

1

Upload de fusiontablesService.Table.ReplaceRows(...).Upload() retourne un objet Google.Apis.Upload.ResumableUpload.ResumableUploadProgress qui a à la fois une propriété Status et Exception qui peut être vérifié.

Dans mon cas, je recevais le résultat de progrès suivants:

{Google.Apis.Upload.ResumableUpload.ResumableUploadProgress} 
    BytesSent: 10485760 
    Exception: {"Google.Apis.Requests.RequestError\r\nContent has a different number of columns than the table (line 1). [400]\r\nErrors [\r\n\tMessage[Content has a different number of columns than the table (line 1).] Location[ - ] Reason[badImportNumColumnsMismatch] Domain[fusiontables]\r\n]\r\n"} 
    Status: Failed