2012-06-17 4 views
1

앱 엔진에서 Google BigQuery를 사용하고 있습니다. BigQuery로 내보내기를 수행하는 데 15 분마다 실행되는 크론 작업이 있습니다. 임의로 가져 오기가 두 번 실행됩니다. 그러나 appengine 로그에는이를 반영하지 않습니다. 나는 bigquery에 데이터를 쓰려고 유지하는 블롭 세트를 가지고 있고, 중복 데이터는 그들에게 쓰여지지 않는다. 다른 사람이 중복 수입에 대해 bigquery 문제를 겪었습니까? 다시 말하면, 내 appengine 로그는 한 번만 발생하는 가져 오기를 표시하며, 문제를 해결하는 방법을 잃어 버렸습니다.BigQuery Double Imports

답변

2

문제를 해결하는 한 가지 방법은 가져 오기 작업을 보는 것입니다. 실행 한 작업을 나열하려면 bq ls -j을 실행하고 특정 작업에 대한 세부 정보를 표시하려면 bq show -j <job_id>을 실행하여 bq 도구를 사용하십시오.

다른 중복로드 사례에 대해 들어 본 적이 없습니다. 이 문제를 방지하기위한 한 가지 아이디어는 가져 오기 작업에 ID를 부여하는 것입니다. 기본적으로 ID는 사용자를 위해 생성됩니다 (job_과 같이 보입니다). 작업 ID는 프로젝트 내에서 고유하게 적용되므로 수행 할 가져 오기마다 ID를 생성하면 이중 가져 오기가 트리거되면 작업 ID가 이미 존재하므로 두 번째 가져 오기가 즉시 실패합니다.

+0

매우 유용한 정보 !!! 특히 직업 이름. 그 점에서 태스크 큐와 동일한 의미를 가졌는지는 몰랐다. –

1

로그에 한 번만 제출되었다고 표시 되더라도 작업이 두 번 가져온 것과 같은 문제가 있습니다.

작업을 살펴보면 위의 명령은 성공적으로 한 번 처리되었음을 보여줍니다.

작업이 한 번만 제출되었으므로이 경우 job_id를 제어하는 ​​것이 도움이 될 것입니다. BigQuery의 내부 작업으로 인해 작업이 복제 될 수 있습니다.

내 말부터 조사해야 할 것이 있으면 알려주세요.

감사합니다.