string(36) "/blog/?pageid=1&uid=144&mod=document"

HOME

ABOUT US

Blog

Blog

Blog

데이터웨어하우스(DW)와 HIVE

2021.01.26

4차산업혁명의 시대의 한복판에 있는 지금, 기업에선 방대한 데이터를 바탕으로 비즈니스 모델을 만들어내고 정립하는 데 데이터의 활용을 매우 중시하고 있다. 디지털 생태계를 구축하여 기업의 사업 방향, 의사결정, 정확한 수치를 통한 심층화된 고객 분석과 보고를 하기 위해 BI(Business Intelligence)가 생겼으며 이를 활용하여 빠른 변화에 대응할 수 있게 되었고 비즈니스를 성장시키는 데 도움이 되는 전략 모델이 되었다. 하지만 적시에 BI를 제공하기 위해선 고속의 쿼리를 수행하기 위한 정형데이터 저장에 최적화된 스토리지 시스템이 필요하다. 이러한 시스템의 도입으로 데이터웨어하우스란 개념이 등장하게 되었고 많은 기업에서 데이터웨어하우징 오픈소스 플랫폼 중 하나인 Hive 를 사용하고 있다.

 

20210126161747_ca3265u.png

 

 

 

데이터웨어하우스는 정보에 입각한 의사결정을 내릴 수 있도록 분석이 가능한 정보를 저장하기 위한 중앙 레포지토리이다. 보통 RDBMS 와 함께 구성하고 RDBMS의 ELT속성을 활용하여 Datalake 에 저장된 데이터들을 분석하기 위한 용도로 사용한다.

1. 데이터웨어하우스의 요소


20210126161839_r36ov3r.png
 

 

- 데이터를 저장 및 관리할 RDBMS

- 데이터 분석을 위한 ELT 솔루션

- 통계, 분석, 보고 및 데이터 마이닝 기능

- 데이터를 시각화하고 비즈니스 사용자에게 제공하기 위한 클라이언트 분석 도구

- 머신러닝 및 인공지능 알고리즘을 적용하여 실행가능한 정보를 생성하는 정교한 분석 어플리케이션

2. 데이터웨어하우스의 특징 

 

20210126161852_dybm6kp.png
 

Apache Hive는 페이스북에서 개발한 Hadoop 파일에 저장된 (HDFS) 대규모 데이터셋을 쿼리하여 분석하기 위한 오픈소스 데이터웨어하우징 시스템이다. Hive 가 탄생하기 전 페이스북은 전통적인 RDBMS를 사용하거나 HDFS를 사용하여 저장된 데이터를 분산저장 및 분석하고 분산된 데이터를 읽어오기 위해 구글에서 만든 Map-Reduce 라는 프레임워크를 사용하였다. 하지만 폭발적으로 증가하는 데이터의 크기로 인해 RDBMS의 사용은 한계에 부딪혔고, HDFS의 사용과 더불어 Map-Reduce 방식은 워낙 복잡하여 Map-Reduce에 능숙한 개발자 이외에는 HDFS 접근 뿐만 아니라 분석에 어려움을 겪었다. 이러한 이유로 Facebook에서 데이터웨어하우징이라는 모델을 도입한 Hive라는 플랫폼을 개발하였고, Hive 쿼리를 통해서 정형데이터 뿐만 아니라 HDFS에 올라와있는 비정형데이터 또한 쉽게 분석할 수 있게 되었다.

 

Map-Reduce는 간단히 말해 작업을 분할하여 처리하고 분할된 작업을 하나의 결과로 도출하는 프로세스이다.

Map: 일을 나누는과정

Reduce: 개별적인 처리결과를 집계하는 과정

Map-Reduce의 일련의 복잡한 과정들을 Hive ql 이라고 Hive만에 SQL 쿼리를 활용하여 원하는 데이터를 추출할 수 있다. 예를 들어 File 의 이름이 같은 것을 골라 각 파일의 갯수를 구한다고 했을 때, Map-Reduce의 경우 복잡한 프로세스를 거치고 각 프로세스 별로 값을 추출하기 위해 세팅을 해줘야 하지만, Hive 의 경우 SQL 쿼리를 사용하여 원하는 데이터를 간단하게 추출할 수 있다. 물론 Hive 에도 단점은 존재한다. 대표적으로 쿼리의 지연시간이 높으며 실시간 쿼리, 행수준 업데이트를 제공하지 않는다. 또한 대화형 데이터 검색에 허용가능한 대기시간이 발생한다.

 

 

20210126162109_q4fry7y.png
 

 

20210126161932_sfd9q5j.png 

 

- Input: 추출할 File 들을 HDFS에서 File 을 가져온다

- Splitting: 작업할 데이터를 작업 단위로 나눈다.

- Mapping: 원하는 데이터를 key, value형식으로 추출한다.

- Shuffle: Map 에서 Reduce로 전달하는 과정

- Reduce: 개별적으로 처리한 데이터를 집계하는 과정

Hive SQL : SELECT Count(dog), Count(cat), Count(rat) from animal

 

아크데이타의 Ark for Bigdata에서 Hive 지원 버젼 기능의 경우 Source 의 추출데이터를 분석에 필요로 한 정보로 변환시켜 Target에 설치되어 있는 Hive 에 전송을 한다. 기존 Ark for Bigdata의 HDFS Support 는 변경된 데이터를 모두 HDFS에 저장하는 반면 Hive 의 경우 보통 추출 DB의 기존 테이블의 내용 및 테이블의 변경사항을 Hive 에도 전송하는 기능을 넣어 HDFS의 저장된 데이터의 메타 정보를 Hive 에 전송하게 된다. Ark for Bigdata Hive 버젼은 올해 상반기 중으로 개발이 완료되어 지원을 할 예정이다.