2014-09-15 3 views
4

쿼리의 응답 시간을 안정화시키는 방법이 있습니까?BigQuery 성능

작업 ID : job_gzTkFvGculpLw0tQRMZvj6rskMI 쿼리 시간 : 00 : 00 : 09.2827336

작업 ID : job_9wXD9ONxDoI87lD6lOXZJSEM1aE 쿼리 시간 : 00 : 00 : 28.1064037

예를 들어, 같은 쿼리를 실행이 두 작업은 서로 다른 응답 시간이

왜 동일한 쿼리가 매우 다른 응답 시간을 사용합니까?

** 편집 : projectId 기본적으로

+0

는 참고 :이 작업 ID와 함께 프로젝트 ID를 게시하는 경우는 로그에 무슨 일이 있었는지 찾아 볼 수있는 BigQuery에 엔지니어 쉽습니다. –

+0

projectId는 nostrum.eu : nostrum – RCalaf

+0

입니다. 이제이 jobId job_KsGKrJuoE9_LvuDBKNnIZnaZn5s가 응답에 1 분 이상 소요되었습니다. – RCalaf

답변

2

nostrum.eu:nostrum이다, BigQuery를 여러 번 사용할 수있는 일반적인 질의 응답 시간을 빠르게 Query caching를 사용합니다.

캐시 된 쿼리 결과가 쿼리의 최신 결과가 아닐 수 있으므로 데이터를 지속적으로 데이터베이스에로드하거나 스트리밍하는 경우이를 기억해야합니다.

당신이 쿼리 캐싱을 사용하지 않으려면, 당신이 API에 보내는 쿼리 본문에 매개 변수를 설정할 수 있습니다 동일한 쿼리의 당신의 반복 요청이있을 것이다 있도록

{ 
    "kind": "bigquery#queryRequest", 
    "query": query, 
    "defaultDataset": { 
    "datasetId": string, 
    "projectId": string 
    }, 
    "useQueryCache": False 
} 

이 그것을해야한다을 상대적으로 동일한 응답 시간이지만 결과를 캐시하는 데 필요한 하나의 요청에 대해서만 요금이 부과되는 것과 달리 각 쿼리 요청에 대해 요금이 청구됩니다.

+0

BigQuery 캐시는 기본 테이블이 변경 될 때마다 자동으로 무효화되므로 오래된 데이터는 제공되지 않아야합니다. –

1

BigQuery 사용자는 공유 인프라에서 쿼리를 실행합니다. 그 이점은 시간당 가격을 지불 할 필요없이 가격이 상당히 낮다는 것입니다. 그러나 실행 시간은 다른 사용자가 동시에 실행하는 동시 쿼리 수에 따라 달라집니다. BQ가 각 사용자에 대해 동시 쿼리 할당량 제한을 적용하는 이유입니다.

일관성이 필요한 경우 BigQuery는 독점적 인 전용 모드를 고객에게 제공하며,이 모드는 독점적으로 전용 시스템에서 실행됩니다. 그러나이 기계는 월 단위로 예약해야합니다. 추가 이점으로서, 이러한 고객은 동시 쿼리 쿼터를받지 않습니다. 왜냐하면 어쨌든 자신 만의 공간이기 때문입니다.

https://developers.google.com/bigquery/pricing#reserved_cap

+0

우리는이 인프라를 계약하기 위해 상용 서비스에 연락했습니다. 상용 서비스에서는 가상 머신을 만들지 만 가상 머신에서 BigQuery를 사용하는 방법은 무엇입니까? 이것에 대해 더 자세히 설명해 주시겠습니까? – RCalaf

+0

이상한. 조사 할 수있는 자세한 정보가 있습니까? –

+0

당신이 추천하는대로 우리는 고객 서비스에 연락했지만 BigQuery의 독점 인프라 모드에 대해 알지 못했지만 가상 머신에 관해 이야기했지만 가상 머신에 대해서는 언급하지 않았다고 생각합니다. 이 독점적 인 서비스를 어떻게 계약 할 수 있습니까? – RCalaf