2012-10-23 3 views
0

JSON을 BigQuery로 가져 오는 데 문제가 있습니다. 우리는 서비스 계정을 만들고 우리 서버와 BQ 사이의 모든 대화를 위해 맞춤형 .NET 4 라이브러리를 사용하고 있습니다. 검색어 작업, 작업 목록 작업, 기본적으로 모든 가져 오기 작업은 가능하지만 JSON 형식을 통한 업로드는 작동하지 않습니다. 여기 BigQuery JSON 가져 오기 내부 오류가 발생 했습니까?

무엇 시작된 작업에 반환됩니다 : 데이터가 JSON은 줄 바꿈이 같은 문자열로 구분했다

{ 
"kind": "bigquery#job", 
"etag": "\"WgwoVdnmFVq0E0riaWM5H0QXabs/R_b3J5b4GjwliMH_X8kjPNLVYsI\"", 
"id": "dot-metrics:job_f7eea1449bb24dffb0a0de1637f31abb", 
"selfLink": "https://www.googleapis.com/bigquery/v2/projects/dot-metrics/jobs/job_f7eea1449bb24dffb0a0de1637f31abb", 
"jobReference": { 
    "projectId": "dot-metrics", 
    "jobId": "job_f7eea1449bb24dffb0a0de1637f31abb" 
}, 
"configuration": { 
    "load": { 
    "schema": { 
    "fields": [ 
    { 
     "name": "word", 
     "type": "STRING", 
     "mode": "REQUIRED" 
    }, 
    { 
     "name": "word_count", 
     "type": "INTEGER", 
     "mode": "REQUIRED" 
    }, 
    { 
     "name": "corpus", 
     "type": "STRING", 
     "mode": "REQUIRED" 
    }, 
    { 
     "name": "corpus_date", 
     "type": "INTEGER", 
     "mode": "REQUIRED" 
    } 
    ] 
    }, 
    "destinationTable": { 
    "projectId": "dot-metrics", 
    "datasetId": "DotMetric_TEST", 
    "tableId": "TestTable" 
    }, 
    "writeDisposition": "WRITE_APPEND", 
    "allowQuotedNewlines": true, 
    "sourceFormat": "NEWLINE_DELIMITED_JSON" 
    } 
}, 
"status": { 
    "state": "DONE", 
    "errorResult": { 
    "reason": "internalError", 
    "message": "Backend error. Job aborted." 
    } 
}, 
"statistics": { 
    "startTime": "1350998303355", 
    "endTime": "1350998337446", 
    "load": { 
    "inputFiles": "1", 
    "inputFileBytes": "7359" 
    } 
} 
} 

:

{"Word":"blah_139","WordCount":6615,"Corpus":"Corpus_678","CorpusDate": 6088201915056} 
{"Word":"blah_602","WordCount":2978,"Corpus":"Corpus_493","CorpusDate": 6088201915056} 
{"Word":"blah_50","WordCount":8315,"Corpus":"Corpus_360","CorpusDate": 6088201915056} 
{"Word":"blah_736","WordCount":8971,"Corpus":"Corpus_751","CorpusDate": 6088201915056} 
{"Word":"blah_243","WordCount":2362,"Corpus":"Corpus_174","CorpusDate": 6088201915056} 
{"Word":"blah_643","WordCount":765,"Corpus":"Corpus_315","CorpusDate": 6088201915056} 

작업은 몇 시간 동안 실행됩니다 (약 10 초) 그러나 그 후에 다만 죽는다. 도와주세요!

답변

0

셰익스피어 샘플 테이블을 복사 한 다음 추가하는 것처럼 보입니다. 셰익스피어 샘플 스키마는 Google 내부에있는 소스 데이터에서 훨씬 오래된 버전의 bigquery를 사용하여 가져 왔기 때문에 스키마에 사마귀가 있습니다. 이러한 사마귀가 가져올 때 문제가 발생합니다 (특히 bigquery가 새로운 데이터에 대해 int32 만 지원하더라도 corpus_date 필드가 int64가 아닌 int64 필드 여야한다고 생각합니다).

append 대신 write_truncate를 수행하고 새 스키마를 전달하거나 새 테이블로 가져 오는 경우이 문제가 발생하지 않아야합니다.

+0

'WRITE_TRUNCATE'을 시도해 보았습니다. 이제 작업이 약 10 분 동안 '보류 중'상태가되었습니다. 이게 정상인가? –

+0

효과가있었습니다. 감사합니다 :) –

+0

잘 알고 있습니다. 계속해서 많은 수입이있을 경우 잠시 보류 상태에 빠질 수 있습니다. 작업자 풀은 이러한 상황이 발생하면 동적으로 조정해야하지만 때로는 추가 용량을 온라인으로 가져 오는 데 몇 분 정도 걸립니다. –

관련 문제