-
[HIVE]HIVE란? 1부 - 소개 및 버전별 특징데이터 엔지니어링/Hive 2022. 9. 18. 16:53반응형
Hive란?
- 하둡 에코시스템 중에 데이터를 모델링하고 프로세싱하는 데이터 웨어하우징용 솔루션
- SQL 유사 언어인 HQL을 도입하여 쿼리를 날려 데이터 조회 및 조작을 할 수 있다.
- Catalog를 제공하여 RDB 데이터베이스 처럼 조작 가능하다.
- 메타스토어를 조작할 수 있다
- 메타스토어가 존재 RDB와는 다르게 미리 스키마를 정의하고 그 틀에 맞게 데이터를 입력하는 것이 아닌, 데이터를 저장하고 거기에 스키마를 입히는 것이 가장 큰 특징
- Hue와 연계하여 ADD-hoc 쿼리를 실행 시킬 수 있다.
HIVE 구성요소
- UI - 사용자가 쿼리 및 기타 작업을 시스템에 제출하는 사용자 인터페이스 (ex : CLI, Beeline, JDBC 등)
- Driver -쿼리를 입력받고 작업을 처리, 사용자 세션을 구현하고, JDBC/ODBC 인터페이스 API제공
- Compiler - 메타 스토어를 참고하여 쿼리 구문을 분석하고 실행 계획을 생성
- Metastore - 디비, 테이블, 파티션의 정보를 저장
- Execution Engine - 컴파일러에 의해 생성된 실행 계획을 실행
Hive에서 쿼리를 날렸을 때 실행 순서
- UI에서 쿼리를 날린다.
- Driver에서 만든 세션에 Plan을 가져온다
- Compiler가 메타스토어에서 메타데이터를 가져온다
- Plan을 Driver에 보낸다.
- Driver는 이 플랜을 실행하고
- Execution Engine은 Hadoop에 MR, TEZ를 사용하여 데이터를 처리 후 Execution Engine에 보낸다.
- Execution Engine은 결과를 UI에 보낸다
Hive 버전별 특징
HIVE 1.0
- SQL을 이용한 MR처리
- 파일 데이터의 논리적 표현
- 빅데이터의 배치 처리를 목표
- MR engine을 사용
HIVE 2.0
- LLAP(Live Long and Process)구조 추가
- 작업을 실행한 데몬을 계속 유지하여, 핫 데이터를 캐싱하여 빠른 속도로 데이터 처리 가능.
- LLAP은 작업을 도와주는 보조도구. 실제 작업을 처리하는 MR, TEX같은 작업엔진이 아님.
- 핫 데이터를 캐싱하는 것이지 영구히 저장하는 것아님
- Spark지원강화
- CBO 강화
- HPLSQL추가 - 오라클 PL/SQL과 같이 반족적인 SQL을 따로 만들어 빼서 사용 가능
- TEZ엔진이 추가
- TEZ는 YARN 기반의 비동기 사이클 그래프 프레임 워크
- 하이브에서 MR대신 실행 엔진으로 사용가능
- MR은 Map Reduce를 여러번 실행하게 되는데 반복적인 작업을 없애 MR보다 성능이 빠름
HIVE 3.0
MR, 하이브 CLI를 제거하고 TEZ엔진과 비라인을 이용하여 작업을 처리하도록 수정
- 작업 상태 관리(Workload Management)
- 룰, 권한을 이용한 작업 상태 관리 기능 추가. 오라클 룰 베이스 DB같은 거라고 보면 됨
CREATE RESOURCE PLAN daytime;
- 트랜잭션 처리 강화
- 집계 데이터를 개별적으로 테이블로 만들어 집계 데이터 테이블로 조회 가능
CREATE MATERIALIZED VIEW mv1 AS SELECT empid, deptname, hire_date FROM emps JOIN depts ON (emps.deptno = depts.deptno) WHERE hire_date >= '2016-01-01';
- 메터리얼 뷰 추가
- 쿼리 결과를 캐싱하여 더 빠른 속도로 작업 가능
- 테이블 정보 관리 데이터 베이스 추가
- 3.0 이전 버전에서는 하이브메타스토어에만 확인 할 수 있는 정보 데이터베이스를 통해서 확인 가능
use information_schema; use sys;
참고문헌
반응형'데이터 엔지니어링 > Hive' 카테고리의 다른 글
[Hive] Hive query - Bucketing table 알아보기 (0) 2022.10.06 [Hive] Hive Query Table 관련 sql 정리(create, drop, truncate table) - options(if not exists, file format) (0) 2022.10.06 [Hive] 테이블 생성(create table, view table, internal or external table 차이점, aws s3로 location 설정하는 법, 파일 포맷 설정하는 법) (0) 2022.09.19 [Hive]HQL-데이터베이스 알아보기(DB 생성, 수정, 삭제 ) (0) 2022.09.18 [HIVE]Hive란 2부 - 서비스들 설명 (0) 2022.09.18