使用 API 诊断 Google Fusion Table 更新以上传 CSV 问题
Diagnosing Google Fusion Table update using API to upload CSV issue
我正在尝试通过 API 使用 CSV 数据诊断更新 Google Fusion Table 的问题。一切似乎都在代码方面正常工作,没有报告任何错误,但数据并未反映更改。有什么想法可以诊断出问题吗?
我一直在使用 Google.Apis.Fusiontables.v2 C# libraries(v1.27.1.833 是我尝试过的最新版本)每天更新一个融合 table。该过程无缝运行了很长一段时间,但现在似乎不再起作用了。我怀疑这个过程现在已经中断了一个月或更长时间。
从代码方面看,一切似乎都正常,没有报告错误。我也一直在 Visual Studio 中调试过程,没有指出任何问题 - 它似乎只是在客户端工作。
如果有用,我使用的 C# 方法是:
fusiontablesService.Table.ReplaceRows(tableId, stream, "application/octet-stream").Upload();
我正在尝试更新的 table 是 - https://fusiontables.google.com/DataSource?docid=1ndrFm1g0iZpz5gszjz5Ij9r_KiQbNYRXVM2JNfv3
UpdatedUtc
列表示一些更新的行正在通过,但不是全部。
如果我将我的 CSV 流导出到一个物理文件并通过网络手动创建一个新的 Fusion Table UI 这将完美运行并显示我希望存在的所有缺失数据。
这是压缩的 CSV 文件,以备不时之需 - http://www.paydirt.co.nz/Whosebug/GoldPermits.zip
这是测试 Fusion Table 我手动将 CSV 文件导入 - https://www.google.com/fusiontables/DataSource?docid=1Udnre88O8e1zokvnhrkmqdY7BbYD2OQtELdyz3uG
实时 table 更新中缺失数据的示例:
与从相同数据创建的测试 table 相比:
示例中缺少的 2 行的 PERMIT_NUMBER
是 60304 和 60247。
关于如何进一步调查可能出了什么问题的任何想法?也许在我不知道的地方有一些可用的日志或日志记录选项?
非常感谢任何有助于探索的帮助/想法。
从 fusiontablesService.Table.ReplaceRows(...).Upload()
returns 上传一个 Google.Apis.Upload.ResumableUpload.ResumableUploadProgress
对象,其中有一个 Status
和 Exception
属性 可以检查。
就我而言,我得到了以下进度结果:
{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
我正在尝试通过 API 使用 CSV 数据诊断更新 Google Fusion Table 的问题。一切似乎都在代码方面正常工作,没有报告任何错误,但数据并未反映更改。有什么想法可以诊断出问题吗?
我一直在使用 Google.Apis.Fusiontables.v2 C# libraries(v1.27.1.833 是我尝试过的最新版本)每天更新一个融合 table。该过程无缝运行了很长一段时间,但现在似乎不再起作用了。我怀疑这个过程现在已经中断了一个月或更长时间。
从代码方面看,一切似乎都正常,没有报告错误。我也一直在 Visual Studio 中调试过程,没有指出任何问题 - 它似乎只是在客户端工作。
如果有用,我使用的 C# 方法是:
fusiontablesService.Table.ReplaceRows(tableId, stream, "application/octet-stream").Upload();
我正在尝试更新的 table 是 - https://fusiontables.google.com/DataSource?docid=1ndrFm1g0iZpz5gszjz5Ij9r_KiQbNYRXVM2JNfv3
UpdatedUtc
列表示一些更新的行正在通过,但不是全部。
如果我将我的 CSV 流导出到一个物理文件并通过网络手动创建一个新的 Fusion Table UI 这将完美运行并显示我希望存在的所有缺失数据。
这是压缩的 CSV 文件,以备不时之需 - http://www.paydirt.co.nz/Whosebug/GoldPermits.zip
这是测试 Fusion Table 我手动将 CSV 文件导入 - https://www.google.com/fusiontables/DataSource?docid=1Udnre88O8e1zokvnhrkmqdY7BbYD2OQtELdyz3uG
实时 table 更新中缺失数据的示例:
与从相同数据创建的测试 table 相比:
示例中缺少的 2 行的 PERMIT_NUMBER
是 60304 和 60247。
关于如何进一步调查可能出了什么问题的任何想法?也许在我不知道的地方有一些可用的日志或日志记录选项?
非常感谢任何有助于探索的帮助/想法。
从 fusiontablesService.Table.ReplaceRows(...).Upload()
returns 上传一个 Google.Apis.Upload.ResumableUpload.ResumableUploadProgress
对象,其中有一个 Status
和 Exception
属性 可以检查。
就我而言,我得到了以下进度结果:
{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