Tech

Apache Hive 를 이용한 온라인 행동 데이터 ETL

samine 2022. 5. 10. 17:09

TG360 Technologies는 다양한 비식별 기반 데이터를 수집하여, 최고도의 빅데이터 기술, ML/AI 기반의 분석 알고리즘을 기반으로 새롭게 만들어진 데이터를 제공하고 있습니다.  데이터를 제공하기 전에, 정리하고 변환해야 합니다. Hive 를 이용한 ETL (추출, 변환, 적재) 작업은 데이터를 준비하고 제공 가능한 형태로 데이터를 적재하는데 사용됩니다. 

 

1.  Hive 란

  • 하둡에서 동작하는 데이터 웨어하우스 인프라 구조로서 데이터 요약, 질의 및 분석 기능을 제공합니다.
  • Apache Hive 데이터 웨어하우스 소프트웨어는 SQL을 사용하여 분산 스토리지에 있는 대규모 데이터 세트를 읽고, 쓰고, 관리하는 것을 용이하게 합니다.
  • Hive 연결하기 위해 명령어 도구 및 JDBC 드라이버가 제공됩니다.
  • Hive는 온프레미스(on-premise)로 사용되거나 HDFS, Azure, AWS S3, Google Cloud Storage 등과 같은 다양한 스토리지 미디어와 함께 클라우드에서 사용 될 수 있습니다.
  • RDB의 데이터베이스, 테이블과 같은 형태로 HDFS에 저장된 데이터의 구조를 정의하는 방법을 제공하며, 이 데이터를 대상으로 SQL과 유사한 HiveQL 쿼리를 이용하여 데이터를 조회하는 방법을 제공합니다.
  • MySQL 구문에 가깝지만 ANSI SQL 표준을 준수하지 않습니다.

 

Hive 구성

그림 1

그림 1은 Hive의 주요 구성 요소와 Hadoop과의 상호 작용을 보여줍니다. 이 그림에서 볼 수 있듯이 Hive의 주요 구성 요소는 다음과 같습니다.

  • UI - 사용자가 쿼리 및 기타 작업을 시스템에 제출하는 사용자 인터페이스입니다. CLI, Beeline, JDBC 등이 있습니다.
  • Driver - 쿼리를 입력받고 작업을 처리 합니다. 사용자 세션을 생성하고, JDBC/ODBC 인터페이스 API 제공 합니다.
  • Compiler - 메타스토어를 참고하여 쿼리 구문을 분석하고 실행계획을 생성 합니다.
  • Metastore - 데이터베이스, 테이블, 파티션의 정보를 저장 합니다.
  • Execution Engine - 컴파일러에 의해 생성된 실행 계획을 실행 합니다.

 

Hive 실행 순서

  1. 사용자가 제출한 SQL문을 드라이버가 컴파일러에 요청하여 메타스토어의 정보를 이용해 처리에 적합한 형태로 컴파일합니다.
  2. 컴파일된 SQL을 실행엔진으로 실행합니다.
  3. 리소스 매니저가 클러스터의 자원을 적절히 활용하여 실행합니다.
  4. 실행 중 사용하는 원천데이터는 HDFS 등의 저장장치를 이용합니다.
  5. 실행 결과를 사용자에게 반환합니다.

 

Hive 에 대한 간략한 설명은 여기까지 하고 실제 TG360 온라인 행동 데이터 ETL 작업 사례를 예제로 통해서 설명을 진행하도록 하겠습니다.

 

2.  Hive 를 이용한 온라인 행동 데이터 ETL 프로세스 개요

다음 그림은 온라인 행동 데이터 ETL 프로세스를 간략히 보여주고 있습니다. 수집된 데이터는 Hive 를 ETL 도구로 사용하여 분석된 데이터로 제공합니다.

1. 마케팅/광고서비스등으로 온라인 행동 원본 데이터가 매시간 DMP Hadoop 지정된 경로에 파일로 적재됩니다.

2. Hive 에서 스키마를 저장하는데 사용할 메타데이터 저장소 데이터베이스 (MySQL 데이터베이스 사용)를 생성합니다.

3. 행동 데이터 원본을 읽을 수 있는 테이블과 ETL 작업 결과를 저장하는 테이블를 정의합니다. 

4. Jenkins 에서는 등록된 스케줄에 따라서 Hive 서비스를 실행하고, Hive 를 통해서 수집된 행동 데이터는 ETL(추출, 변환, 적재) 작업을 통해서 결과 테이블에 적재합니다.

5. Elastic Search, Greenplum, MySQL 등을 통해서 분석 데이터를 제공합니다.


본 포스팅에서는 ETL 도구인 Apache Hive 와 TG360 온라인 행동 데이터 ETL 개요에 대해서 간략히 알아봤습니다.

이후 포스팅에서는 TG360 ETL 각 프로세스 단계별로 상세하게 다뤄보도록 하겠습니다.