P08-C05 Hive
1 Hive Overview
1.1 Hive 란?
Hive 는 HDFS(또는 다른 분산 스토리지)의 대량의 데이터를 SQL로 다룰 수 있도록 하는 도구(소프트웨어 패키지)이다.
오픈소스이고 무료로 사용할 수 있다.
1.2 Hive 의 장점
- HDFS 를 대상으로 SQL을 사용할 수 있다.
- 다양한 client 프로토콜을 지원한다. (ODBC, JDBC, Thrift)
- 대상 파일의 위치로 다양한 외부 저장소를 선택할 수 있다. (HDFS, S3, Azure storage)
- 실행 엔진(execution engine)을 선택할 수 있다. (MapReduce, Tez 등)
- 현재 다양한 언어의 클라이언트 라이브러리가 나와있다. (Java, Python, C++, Ruby, Javascript 등)
1.3 Hive 의 단점
- 성능이 Execution Engine 의 종류, 동작방식, 상태에 따라 정해진다. (단점이자 장점)
- Transaction을 지원하지 않는다. (4부터는 지원한다고는 하지만, 아직 4를 쓰는 패키지가 거의 없다.)
- 쿼리가 (하이브 이후 나온 도구들에 비해 상대적으로) 느리기 때문에 실시간에 적합하지 않다.
- Impala, Presto, OLAP형 DB들 등