데이터 웨어하우스는 의사결정 지원에 효과적으로 사용될 수 있도록 다양한 시스템에서 추출, 변환, 통합, 요약된 읽기 전용의 데이터베이스이다.
그리고 하이브는 하둡에서의 데이터 웨어하우스로 볼 수 있다.
하이브는 HDFS와 연계되어 작동하는데,
작동 순서는 다음과 같다.
- HDFS에 테이블 생성
- HDFS에 테이블 저장
- 메타스토어에 테이블 정보 저장
- 테이블에 데이터 로드
- HiveQL 실행
- MapReduce 형태로 변환되어 실행
- 결과 반환
*HiveQL : Hive에서 사용되는 SQL로, 사용법은 일반 RDBMS의 SQL과 유사.
하이브를 구성하는 아키텍처는 다음과 같다.
- User Interface : 사용자에 HDFS를 사용하기 위한 인터페이스 제공 (Web UI, CLI)
- Meta Store : DB의 메타 정보들과 HDFS 매핑 정보들을 RDBMS 형태로 저장한다.
- HiveQL Process Engine : HiveQL을 사용하여 MapReduce Job을 위한 쿼리를 실행한다.
- Execution Engine : 맵 리듀스 실행 엔진
- HDFS or HBASE : 분산처리 파일 시스템
*메타 스토어는 내장 메타스토어, 로컬 메타스토어, 원격 메타스토어로 나뉜다.
버킷 (Bucket)
하이브는 테이블을 파티션으로 구조화할 수 있다.
그리고 테이블과 파티션은 보다 효율적인 쿼리를 위해 데이터에 추가된 구조인 버킷으로 보다 세분화할 수 있다.
버킷은 해시를 기준으로 데이터를 지정된 개수의 파일로 분리하여 저장하는데,
이는 보다 효율적인 쿼리와 샘플링이 가능하도록 만들어준다.
사용법은 CREATE 을 할 때 CLUSTGER BY <COLUMN> INTO <버킷 개수> BUCKETS; 명령어로 가능하다.
SQL-ON-HADOOP
HDFS에 저장된 데이터에 대한 SQL 질의 처리를 제공하는 시스템이다.
크게 두 가지로 분류된다.
1) Interactive Query (Short Time Query)
빠른 시간 안에 결과를 도출하는 질의로, 주로 캐시나 메모리에 데이터를 로딩하여 처리하기에 원본 데이터가 메모리보다 크면 질의가 불가능하다.
2) Long Time Query
시간이 오래 걸리지만 큰 원본 데이터를 질의할 수 있다.
내고장성과 동적 스케줄링이 지원된다.
여기서 롱 타임 쿼리는 또 두 가지로 나뉠 수 있다.
2-1) Data Warehouse Infrastructure
수 시간 이상 걸리는 질의를 수행하는 데 사용된다.
ETL (Extract Transform Load) 작업을 사용하며, 다수 데이터 소스에 대한 통합을 지원한다.
타조, 하이브 등이 있다.
2-2) Distributed Query Engine
수 초에서 수 분의 질의를 수행하는 데 사용된다.
빠른 응답을 가지는 애드혹 질의이다.
임팔라, 프레스토 등이 있다.
임팔라
C++ 기반으로 만들어진, 별도의 실행 엔진을 사용하는 프로그램으로 맵리듀스 프로그래밍이 필요가 없어졌다.
셔플링 단계를 거치지 않고, 하이브보다 CPU 부하를 줄였다.
타조 (Tajo)
2010년 고려대 컴퓨터학과 데이터베이스 연구실에서 시작된 프로젝트이다.
SQL과 유사한 질의가 아닌, SQL 표준을 지원한다.
성능 향상을 위해 질의 전체를 분산 처리 하였으며, 맵리듀스를 사용하지 않았다.
사용자가 직접 함수를 정의할 수 있다. 이 부분은 하이브와 유사하다.
'IT 지식 > 빅데이터 & 분석' 카테고리의 다른 글
[빅데이터] Spark & Zeppelin (0) | 2021.07.30 |
---|---|
[빅데이터] Sqoop & Flume (0) | 2021.07.30 |
[빅데이터] 하둡2와 얀(YARN) (0) | 2021.07.29 |
[빅데이터] 맵리듀스 (0) | 2021.07.29 |
[빅데이터] Hadoop Distributed File Syste (HDFS) (0) | 2021.07.29 |