티스토리 뷰

기본적인  HiveQL을 사용해보기 전에 각 테이블을 import 해줍니다.

 

기본적인 쿼리를 사용해보면 RDBMS와 마찬가지로 결과를 볼 수 있습니다.

여기서 한 가지 차이점은 RDBMS처럼 column 명이 표시되지는 않습니다.

 

count를 사용했을 때는 위와 차이가 있습니다.

여기서는 job이 한개 잡힌 것을 확인할 수 있고 이 job이 맵리듀스를 실행하는 것을 볼 수 있습니다.

그리고 맵리듀스가 끝나면 마지막에 결과가 출력됩니다.

 

count, group by, order by를 사용한 쿼리입니다.

count와 group by에 대한 총 2개의 job을 만들고 각 job들에 대해 맵리듀스를 진행합니다.

join을 사용한 쿼리입니다.

join에 대한 1개의 job을 만들고 맵리듀스를 진행합니다.

 

 

 

HiveQL에서는 쿼리에서 사용되는 기능들에 대해 job으로 만들고 해당 job을 맵리듀스로 진행해줍니다.

SQL만 알고 있으면 맵리듀스를 코드로 직접 짜지 않고도 Hive를 이용해 데이터를 처리할 수 있습니다.

하지만 job이 생성이 되지않는 가장 기본적인 select * from table 정도의 쿼리를 제외하고는 대부분의 쿼리에서는 맵리듀스가 진행되기 때문에 RDBMS에서 돌아갈 만큼의 데이터를 사용하면 Hive가 RDBMS보다 결과를 출력하는 속도가 느리기 때문에 여러 Hive 성능향상 기법을 참고해서 사용해야 합니다.