谷歌大查询后端错误

Posted

技术标签:

【中文标题】谷歌大查询后端错误【英文标题】:Google big query backend error 【发布时间】:2013-07-15 19:18:46 【问题描述】:

我在 Google Big Query 上提交了一些日志文件,并且已经制定了大约 7 个月的流程。我们已经重建了站点,所以我制作了一个新表和几乎相同的过程。我可以从 Google 存储中批量上传旧文件,并且大多数文件都会毫无意外地加载。然后我在cronjob中运行同一个程序,BQ报后端错误,数据没有加载。

文件被压缩并以制表符分隔。我正在使用 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)。然后像这样到 Google Storage:

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

【问题讨论】:

您能否发送您的工作 ID 以便我们(Google BigQuery 工程师)进行调查? 当然,这个表的旧版本有一个错误(我使用的是相同的加载规范)。 job_af9221ada5534f16acc1c7855fd6f76c。这是一个较新的,我更关心并且目前正在重新加载所有文件:job_3a95ce0bec184100b99a45900a261b00 【参考方案1】:

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

【讨论】:

感谢您的调查。我稍微编辑了我的问题以添加更多细节,但我认为这不会有帮助。

以上是关于谷歌大查询后端错误的主要内容,如果未能解决你的问题,请参考以下文章

向谷歌大查询插入数据时出现 503 错误

谷歌大查询:导出表到自己的存储桶导致意外错误

左加入谷歌大查询

允许谷歌大查询中的大结果

将工作从谷歌云存储插入谷歌大查询时路径无效

如何在谷歌大查询中从谷歌云存储上传表格