我在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)
您可以發送您的工作ID,以便我們(谷歌bigquery工程師)可以調查? –
當然,這個表格的舊版本出現錯誤(我使用相同的加載規格)。 job_af9221ada5534f16acc1c7855fd6f76c。這裏是一個較新的,我更關心,目前正在重新加載所有文件:job_3a95ce0bec184100b99a45900a261b00 –