하이브 쿼리를 최적화하려고합니다. 아래 그림과 같이 기본 테이블을 ORC 파일로 분할하여 저장했습니다.하이브 쿼리 최적화
create table if not exists processed (
plc string,
direction string,
table int,
speed float,
time string
) PARTITIONED BY (time_id bigint) STORED AS ORC;
위의 테이블 (500.000 레코드 포함)에서 아래의 쿼리가 실행됩니다. 최종 결과는 json
으로 저장됩니다. 전체 거래에는 약 35 초가 걸립니다. 이 시간을 줄일 수있는 방법이 있습니까? 또는 누군가가 Hive 대신 다른 프레임 워크를 사용하여 나를 제안 할 수 있습니다. 다음 쿼리입니다.
String finalQuery = "select plc,direction,AVG(speed) as speed ,COUNT(plc) as count,time_id from processed WHERE plc IN "
+ " "
+ "("
+ plcCSV
+ ")"
+ " " + " " + "AND" + " " + "time_id =" + " " + time_id + " "
+ "group by plc,direction,time_id";
어디 조건에 따라 단순히 행 수를 공유하겠습니다. –
@ZafarMalik .. where 조건의 In 절은 목록을 포함합니다. –