Google大查询后端错误

时间:2013-07-15 19:18:46

标签: google-bigquery

我在Google Big Query上投放了一些日志文件,并且已经有一个程序在大约7个月内完成。我们重建了这个网站,所以我创建了一个新表和一个几乎相同的过程。我可以从Google存储中批量上传旧文件,大多数文件都会加载而不会发生意外。然后,当我在cronjob中运行相同的程序时,BQ报告后端错误并且未加载数据。

该文件是gzip压缩并以制表符分隔。我正在使用Python gzip包。我相信我已经通过阅读原文正确预处理了这些文件,删除了所有没有正确数量字段的行(在这种情况下为476),然后编写并上传到谷歌存储。错误几乎总是发生在文件的末尾。同样奇怪的是,我为坏行设置了高容差,并设置了BQ以将所有字段读为字符串。它仍然没有加载。

Error loading table: {u'endTime': u'1373914994246',
 u'load': {u'inputFileBytes': u'528384',
           u'inputFiles': u'1',
           u'outputBytes': u'0',
           u'outputRows': u'4610'},
 u'startTime': u'1373914986420'}
{u'errorResult': {u'location': u'Line:4612 / Field:1',
                  u'message': u'Error reading source file',
                  u'reason': u'backendError'},
 u'errors': [{u'location': u'Line:4611 / Field:125',
              u'message': u'Bad character (ASCII 0) encountered: field starts with: <1373339>',
          u'reason': u'invalid'},
         {u'location': u'Line:4612 / Field:1',
          u'message': u'Error reading source file',
          u'reason': u'backendError'}],
 u'state': u'DONE'}

我从FTP下载文件,写入临时文件。然后我用local_file = gzip.open(fname, 'r')打开该文件。然后我读它看看每行是476个字段,如果不是,我把它写在别处,如果是,我在本地写。 local_file.write(row)。然后就像谷歌存储一样:

    args = ['python','/path/to/gsutil/gsutil', 'cp', local_file, folder]
    call(args)

1 个答案:

答案 0 :(得分:1)

解压缩gzip文件时出错。解决方法可能是首先解压缩文件。我还在调查。