2013-07-02 3 views
3

큰 쿼리를 사용하여 테스트를 실행하고 있습니다. 기본적으로 나는 평균적으로 크기가 각각 27MB 인 50,000 개의 파일을 가지고 있습니다. 약간 큰, 작은 것.Google 클라우드 저장소에서 큰 쿼리로로드하는 것이 느립니다.

타이밍은 각 파일의 업로드가 계시 :

실제 0m49.868s 사용자 0m0.297s 에 sys 0m0.173s 비슷한 사용

:

시간 BQ 부하 --encoding = "UTF을 -8 "--field_delimiter ="~ "데이터 세트는 GS :이 //project/b_20130630_0003_1/20130630_0003_4565900000.tsv schema.json

명령을 실행 :"BQ LS -j "를 연속적 실행"BQ 쇼 -j는 "계시가 I 일이있다 전자 다음과 같은 오류 :

작업 종류 주 시작 시간 기간 바이트가 처리 된


로드 실패 7월 1일 22시 21분 18초 0시 0분 0초

오류는 작업을 실행하는 동안 발생했습니다. 초과 할당량 :이 테이블에 대해 테이블 ​​당 너무 많은 가져 오기

데이터베이스를 확인한 후 오류가 발생하면 행에 문제가 발생하여로드가 잘되지 않을 것으로 예상됩니다. 문제는 내가 단지 방금 파일을 업로드하기 시작한 이래로 할당량 한도에 도달 한 방법을 이해하지 못하고 한계가 200,000 요청이라고 생각한다는 것입니다.

현재 모든 데이터가 Google Cloud Storage에 있으므로 클라우드에있는 클라우드 저장소와 Big Query 간의 상호 작용이 매우 빠르기 때문에 데이터로드가 상당히 빨라질 것으로 기대합니다.

내 계산에 따르면 전체로드는 (50,000 * 49 초) 28 일이 걸립니다.

이 숫자가 잘못 되었으면 좋겠다.

감사합니다.

+2

돌아가서 BQ 명령 줄 유틸리티 도움말을주의 깊게 읽으십시오. 그것은 별도의로드 작업으로 각 파일을로드하는 것 같습니다. 나는 이것이 문제의 원인이라고 생각한다. 각 파일을로드하는 대신 globbing을 사용할 수 있다는 것이 나에게 즉시 명백하지 않았습니다. 즉, bq load --encoding = "UTF-8"--field_delimiter = "~"dataset gs : // cs/b_20130630_0003_1/* schema.json. 와일드 카드에 유의하십시오. 최대 10,000 개의 파일로로드 작업을 수행하려고 시도합니다. – richjcooper

+0

메신저는 이것이 정확히 무엇인지 알고 싶어했습니다! 저것은 미친 양의 파일 thats –

답변

3

표 당 할당량 한도는 하루에 1000 회입니다. 이것은 우리가 한 번에 더 많은 데이터를 볼 수 있다면 더 효율적인 테이블 표현을 생성 할 수 있기 때문에 사람들이로드를 일괄 처리하도록 장려하는 것입니다.

BigQuery는 병렬로로드 작업을 수행 할 수 있습니다. 부하의 크기에 따라 여러 작업자가 작업에 배정됩니다. 파일이 큰 경우 해당 파일은 작업자간에 분할됩니다. 또는 여러 파일을 전달하는 경우 각 작업자가 다른 파일을 처리 할 수 ​​있습니다. 따라서 한 파일에 소요되는 시간은 여러 파일로로드 작업을 실행하는 데 걸리는 시간을 나타냅니다.

+0

나는 결국 이것을 알아 냈다. 나는 이전에 다른 Google Comput 컴퓨터를 설치하여 병렬로드를 수행했습니다.로딩의 이러한 측면은 내가 이전에 놓친 것입니다. 어쨌든, 하루가 끝날 때 나는 100 억 개의 행을 업로드했습니다. 건배. – richjcooper

관련 문제