
Apache Hive
대규모 데이터 웨어하우스 시스템을 위한 데이터 쿼리 및 분석 프레임워크이다.
Hive는 Hadoop의 위에서 실행되며, 사용자가 SQL과 유사한 언어를 통해 Hadoop 분산 파일 시스템과 상호작용할 수 있게 해준다.
Apache Hive의 특징
1. 쿼리 언어
HiveQL (HQL) : Hive는 SQL과 유사한 쿼리 언어인 HiveQL 또는 HQL을 사용한다.
HiveQL은 표준 SQL 문법을 바탕으로 하며, 데이터를 쿼리하고 분석하는 데 필요한 기능을 제공한다.
-> 사용자는 복잡한 MapReduce 작업을 작성하지 않아도 데이터 분석을 수행할 수 있다.
2. 데이터 모델
- 테이블: Hive는 데이터를 테이블 형태로 저장한다. 테이블은 데이터베이스 내의 논리적 구조로, 실제 데이터는 HDFS에 저장된다.
- 파티셔닝: 데이터가 날짜, 지역 등 여러 기준으로 나누어져 저장될 수 있다. 파티셔닝을 통해 쿼리 성능을 개선할 수 있다.
- 버킷팅: 데이터를 여러 버킷으로 나누어 저장할 수 있다. 이는 쿼리 성능 향상과 데이터 관리의 효율성을 높인다.
3. 데이터 저장 형식
TextFile, ORC (Optimized Row Columnar), Parquet, Avro 등이 있다.
이러한 데이터 저장 형식은 데이터 압축 및 쿼리 성능을 최적화하는 데 도움을 준다.
4. 작업 처리
- 쿼리 컴파일: HiveQL 쿼리는 내부적으로 MapReduce 작업으로 변환된다. Hive는 사용자가 작성한 쿼리를 자동으로 MapReduce 작업으로 변환하여 Hadoop 클러스터에서 실행한다.
- 성능 최적화: Hive는 쿼리 성능을 향상시키기 위한 여러 최적화 기법을 지원한다. 예를 들어, 쿼리의 실행 계획을 분석하고, 다양한 캐싱 기법을 사용할 수 있다.
5. 메타스토어
Hive는 메타데이터를 저장하고 관리하기 위해 메타스토어라는 중앙 저장소를 사용한다.
메타스토어는 테이블 스키마, 데이터 위치, 파티셔닝 정보 등을 저장한다.
일반적으로 관계형 데이터베이스(MySQL, PostgreSQL 등)를 사용하여 메타스토어를 구현한다.
'Data Engineering > Hive' 카테고리의 다른 글
| [Linux/Hive] 공공데이터 포털에서 데이터셋을 다운로드 받아 Hive에 적재해보자 (0) | 2024.08.22 |
|---|---|
| [Linux/Hive] Apache Hive를 설치해보자 (0) | 2024.08.22 |