2013-07-15 40 views
0

我在Google Big Query上扔了一些日誌文件,並且已經有一個過程在大約7個月的時間內完成。我們重建了該網站,因此我創建了一張新表格和一個幾乎完全相同的流程。我可以批量上傳Google存儲中的舊文件,並且大多數文件都可以毫無例外地加載。然後,當我在cronjob中運行相同的程序時,BQ報告後端錯誤,並且數據未加載。谷歌大查詢後端錯誤

該文件被gzip和製表符分隔。我正在使用Python gzip包。我相信我已經通過閱讀原文正確預處理這些文件,刪除所有沒有適當數量字段的行(本例中爲476),然後編寫並上傳到Google存儲。該錯誤幾乎總是發生在文件的末尾。奇怪的是,我對壞行設置了很高的容忍度,並且設置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

您可以發送您的工作ID,以便我們(谷歌bigquery工程師)可以調查? –

+0

當然,這個表格的舊版本出現錯誤(我使用相同的加載規格)。 job_af9221ada5534f16acc1c7855fd6f76c。這裏是一個較新的,我更關心,目前正在重新加載所有文件:job_3a95ce0bec184100b99a45900a261b00 –

回答

1

解壓縮gzip文件時出錯。解決方法可能是首先解壓縮文件。我仍在調查。

+0

感謝您的關注。我編輯了一些我的問題來添加一些細節,但我不認爲它會有幫助。 –