내가 하나가 하이브를 최적화 할 수있는 가장 좋은 방법입니다 알고 싶습니다 c를이 세 가지 후보 중 두 테이블을 조인 (0.12) 쿼리 (왜, 아마도 이해) :최적화가 HIVE 쿼리에 조인
SELECT * FROM a join b ON (a.id = b.id) WHERE b.dt = "2014-09-01";
또는
SELECT * FROM a JOIN b ON (a.id = b.id AND b.dt = "2014-09-01") ;
또는
SELECT * FROM a JOIN (
SELECT * FROM b where dt = "2014-09-01") c
ON a.id = c.id ;
는 그래서, 테이블이 저장 및 분할하는 방법에 대한 제어 할 수 없습니다 제 질문은 특정 사례보다 일반적인 우수 사례 인 에 관한 것입니다. 나는 a.id = b.id가 b.dt = '2014-09-01'일 때만 가능하다는 것을 알고 있으므로 속도를 향상시키기 위해 결합 할 수있는 데이터를 제한하고자합니다 (b는 거대한 테이블 임) .
HIVE 문서 읽기 일반적으로 a가 가장 작은 테이블이고 b가 (매우) 큰 테이블이라는 것을 이해했습니다. 그러나 위의 다른 쿼리가 성능면에서 어떻게 작동하는지 이해할 수는 없습니다.
내가 사용할 수있는 다른 방법이 있다면 잘 알고 싶습니다.
테이블이 얼마나 큽니까, 메모리에 맞습니까? – www
나는 이것을 사용할 수 있다고 말하고 싶다. 일반적으로는 할 수 없다. – lucacerone