yyyyMMdd 형식으로 날짜별로 파티셔닝 된 테이블이 있습니다. 다음과 같은 간단한 쿼리를 수행하는 경우 :Hadoop Hive 쿼리 최적화
SELECT COUNT(*) FROM MyTable WHERE Date >= '20140924'
그러면 3 일 동안 데이터를 검색합니다 (오늘은 26 일). 그러나 나는 항상 지난 3 개월보고 내 쿼리를하고 싶은, 그래서 문제는 이제 모든 파티션을 검사한다는 것입니다 나는이
SELECT COUNT(*) FROM MyTable
WHERE date >= from_unixtime(unix_timestamp() - 259200, 'yyyyMMdd')
처럼 물품. 그것보다 큰 후에 쿼리의 일부를 미리 계산할 수있는 방법이 있습니까?
이것이 이상적이지는 않지만 아마도 가장 좋은 해결책 일 것입니다. 일반적으로 과거에 SQL을 작성했을 때이 같은 것들이하기 쉬운 다른 언어에서 항상 호출되었습니다. 하이브와 다를 이유가 없습니다. – MikeKulls
또한 Hive 자체에서 조인 등을 사용하여 여러 가지 작업을 시도했지만 실제로는 아무 것도 해결하지 못했습니다 ... 그래서 셸을 사용할 수있는 모든 곳에서 쿼리를 실행하는 데 사용하려고 시도합니다 – Amar