2017-12-26 3 views
0

내가이 쿼리 실행 : 나는를했습니다BigQuery에서 와일드 카드 테이블 쿼리 속도를 높이려면 어떻게해야합니까?

BigQuery execution plan

: 전체

SELECT 
    _TABLE_SUFFIX table_id 
FROM 
    `mydataset.*` 
WHERE 
    _PARTITIONTIME = TIMESTAMP("2017-12-26") 
GROUP BY 
    table_id 

쿼리 (71.0s 경과, 0 B 처리) 여기

는 실행 계획입니다 이에 관한 몇 가지 질문 :

  1. 간단한 쿼리에 70 초 이상 걸립니다. 정상입니까?
  2. 내가 잘못하고 있니?
  3. 어쨌든 쿼리 시간을 줄일 수 있습니까?
+0

일관성이 있습니까, 아니면 한 번만 발생합니까? 대부분의 시간은 "대기"상태로 보냈습니다. –

+0

우리는 모든 데이터 집합에서이 쿼리를 실행할 때마다 발생합니다. – x97Core

+0

이상한 동작이므로 작업 ID를 제공해야합니다. 비슷한 쿼리가 나를 위해 더 빨리 작동합니다. 제공된 쿼리는 어쨌든 실행되지 않습니다. –

답변

1

검색어가 2000+ 테이블과 일치했습니다. 이 테이블의 스토리지 메타 데이터를 읽는 데 48 초가 걸렸습니다. 우리가 속도를 낼 수 있는지 확인할 수 있습니다. 어떤 의미에서는 분할 된 테이블에 대한 와일드 카드 테이블은 2 레벨 파티셔닝 된 테이블이 지원되기 전에 임시 해결 방법입니다. 메타 데이터는 1 테이블 대 2000 테이블 이상입니다.

+0

"2 단계 파티셔닝 테이블"기능이 추가 될 때 어떤 점이 있습니까? – Sourygna

+0

예, 우리는 또한 "2 단계 파티션 테이블"기능을 원합니다. 게다가 왜 그렇게 적은 양의 (메타) 데이터를 읽는 것이 그렇게 오래 걸릴지 궁금합니다. BigQuery에는 '중앙'메타 데이터 저장소가 없다는 것을 의미 할 수 있습니다. 맞습니까? –

+0

Q2 또는 Q3은 2 레벨 파티션 테이블의 대략적인 추정입니다. 메타 데이터의 경우 각 테이블에 대한 저장소가 별도로 읽혀집니다. 우리는 병렬 처리를하고 있지만, 동시에 읽을 수 있도록 2000+ 스레드를 돌리지는 않을 것입니다. –

관련 문제