Open su3inni opened 10 months ago
Hadoop의 Data Warehousing Package 이다.
1. Client가 쿼리를 실행한다. 2. Driver가 쿼리 플랜을 Compiler에게 요청한다. 3. Compiler는 쿼리에 해당하는 맵리듀스 코드를 생성한다. 3-1. MetaStore를 통해 하이브의 메타데이터(컬럼 정보, 컬럼 매핑)를 가져와 사용한다. 3-2. 쿼리 플랜을 생성한다. 3-3. 쿼리 플랜을 Execution Engine에 전달한다. 4. Execution Engine은 Hadoop에 MapReduce Job을 요청하고 Job의 결과를 받아 전달한다.
차세대 SQL on Hadoop
맵리듀스를 사용하지 않고 자체 엔진을 사용하여 실시간 쿼리가 가능하다.
비정형 쿼리(ad-hoc query)를 지원하고 하이브와 호환을 위한 metastore 사용을 지원한다.
Impala 의 경우 Long Time query 를 제대로 수행하지 못하거나 데이터 크기가 커질 수록 성능이 떨어진다.
쿼리 종류
External Table
테이블 스키마만 Hive에서 관리한다. 하둡에 있는 데이터를 기반으로 테이블을 만들기 때문에 스키마만 정해주면 된다.
테이블(스키마) 따로, 파일(데이터)을 따로 관리하기 때문에 안전하다 → Loosely Coupled
사용자의 실수를 방지하기 위해 많이 사용한다.
메타 스토어를 유지해야하는 경우라면 외부 메타스토어를 생성해야한다.
Managed Table
Managed Table의 경우 데이터가 warehouse directory에 저장되지만 External Table의 경우 데이터를 저장할 위치를 지정하고 테이블을 생성한다.
API 를 이용해서 HDFS나 S3에 데이터를 저장할 수 있다.
HDFS
Hive + HDFS
S3
Hive + S3
[ 참고 자료 ]
3. Hive : Hadoop ecosystem
Hadoop의 Data Warehousing Package 이다.
3-1. Hive Architecture
3-2. Hive 와 차세대 SQL on Hadoop 비교
차세대 SQL on Hadoop
맵리듀스를 사용하지 않고 자체 엔진을 사용하여 실시간 쿼리가 가능하다.
비정형 쿼리(ad-hoc query)를 지원하고 하이브와 호환을 위한 metastore 사용을 지원한다.
Impala 의 경우 Long Time query 를 제대로 수행하지 못하거나 데이터 크기가 커질 수록 성능이 떨어진다.
쿼리 종류
3-3. Hive Table
External Table
테이블 스키마만 Hive에서 관리한다. 하둡에 있는 데이터를 기반으로 테이블을 만들기 때문에 스키마만 정해주면 된다.
테이블(스키마) 따로, 파일(데이터)을 따로 관리하기 때문에 안전하다 → Loosely Coupled
사용자의 실수를 방지하기 위해 많이 사용한다.
메타 스토어를 유지해야하는 경우라면 외부 메타스토어를 생성해야한다.
Managed Table
3-4. Hive with HDFS / S3
API 를 이용해서 HDFS나 S3에 데이터를 저장할 수 있다.
HDFS
Hive + HDFS
S3
Hive + S3
[ 참고 자료 ]