[책정리] 빅데이터를 지탱하는 기술 : 3-2. 쿼리 엔진

2022. 6. 8. 18:25·AI & 빅데이터/[Book] 빅데이터를 지탱하는 기술
728x90

CHAPTER 3 빅데이터의 분산 처리

3-1. 대규모 분산 처리의 프레임워크

3-2. 쿼리 엔진

3-3. 데이터 마트의 구축

3-4. 요약

 

3장에서는 분산 시스템의 대표적인 프레임워크인 Hadoop과 Spark를 이용한 데이터 처리에 관해 설명한다.


Hadoop 위에서 구조화 데이터를 집계하기 위한 '쿼리 엔진'에 대해 설명한다. 배치형의 쿼리 엔진인 'Hive'와 대화형의 쿼리 엔진인 'Presto'를 비교하고, 그것의 사용 구분에 관해 설명한다.


데이터 마트 구축의 파이프라인

쿼리 엔진을 사용하여 데이터 마트를 만들기까지의 흐름을 살펴보자.

Hive와 Presto를 결합한 데이터 파이프라인

 

분산 스토리지에 저장된 데이터를 구조화하고 열 지향 스토리지 형식으로 저장한다. 많은 텍스트 파일을 읽어 가공하는 부하가 큰 처리가 되기 때문에 Hive를 이용한다.

 

완성한 구조화 데이터를 결합, 집계하고 비정규화 테이블로 데이터 마트에 써서 내보낸다. Presto를 사용함으로써 열 지향 스토리지를 이용한 쿼리의 실행 시간을 단축한다.

 

Hive에서 만든 각 테이블 정보는 'Hive 메타 스토어'라고 불리는 데이터베이스에 저장된다.


 데이터 분석의 프레임워크 선택하기 : MPP 데이터베이스, Hive, Presto, Spark

MPP 데이터베이스

MPP 데이터베이스는 스토리지 및 계산 노드가 일체화되어 있어 처음에 ETL 프로세스 등으로 데이터를 가져오는 절차가 필요하다. 그다음은 SQL만으로 데이터를 집계할 수 있으므로 다른 기술은 필요하지 않다.

 

한편, 확장성 및 유연성 등의 측면에서는 분산 시스템이 유리하다. 대량의 텍스트 처리나 데이터 처리를 프로그래밍하고 싶은 경우, NoSQL 데이터베이스에 저장된 데이터를 집계하고 싶은 경우에는 분산 시스템의 프레임워크를 결합한다.

 

시각화를 위한 데이터 마트를 생각하면 MPP 데이터베이스가 좋다. BI 도구와의 조합에는 비정규화 테이블을 고속으로 집계하는 데 매우 적합하다.

 

Hive

Hive는 대규모 배치 처리를 꾸준히 실행하는 점에서 좋다. 텍스트 데이터를 가공하거나 열 지향 스토리지를 만드는 무거운 처리는 Hive에서 실행하는 것이 적합하다.

 

Tez의 등장으로 Hive는 대화형 쿼리에서도 사용된다. 

 

분산 시스템은 점점 인 메모리의 데이터 처리로 옮겨가고 있지만, Hive는 데이터 양에 좌우되지 않는 쿼리 엔진으로 계속 이용될 것이다.

 

Presto

윈도우 함수를 비롯한 표준 SQL을 준수하고 있어 일상적인 데이터 분석을 위해 자주 사용하는 쿼리 엔진이다. Hadoop 뿐만 아니라 MySQL과 카산드라, 몽고DB 등 많은 데이터 스토어에 대응하고 있다.

 

대화식 쿼리의 실행에 특화되어 있기 때문에 텍스트 처리가 중심이 되는 ETL 프로세스 및 데이터 구조화에는 적합하지 않다. 데이터의 구조화에는 Hive와 Spark를 사용하는 것이 좋다.

 

Spark

인 메모리의 데이터 처리가 중심이며, 대화형 쿼리 실행에 적합하다. Spark의 장점은 ETL 프로세스에서 SQL까지 일련의 흐름을 하나의 데이터 파이프라인으로 기술할 수 있다는 점이다. 텍스트 데이터를 읽어 들여 열 지향 스토리지로 변환하고 SQL로 집계해서 결과를 내보내는 것까지 일련의 프로세스를 한 번의 데이터 처리로 기술할 수 있다.

 

Spark는 분산 시스템을 사용한 프로그래밍 환경이기 때문에 ETL 프로세스이거나 머신러닝과 같은 모든 데이터 처리에 사용할 수 있다.

 

728x90

'AI & 빅데이터 > [Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글

[책정리] 빅데이터를 지탱하는 기술 : 3-3. 데이터 마트의 구축  (0) 2022.06.20
[책정리] 빅데이터를 지탱하는 기술 : 3-1. 대규모 분산 처리의 프레임워크  (0) 2022.06.08
[책정리] 빅데이터를 지탱하는 기술 : 2-4. 데이터 마트의 기본 구조  (0) 2022.06.03
[책정리] 빅데이터를 지탱하는 기술 : 2-3. 애드 혹 분석과 시각화 도구  (0) 2022.05.24
[책정리] 빅데이터를 지탱하는 기술 : 2-2. 열 지향 스토리지에 의한 고속화  (0) 2022.05.23
'AI & 빅데이터/[Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글
  • [책정리] 빅데이터를 지탱하는 기술 : 3-3. 데이터 마트의 구축
  • [책정리] 빅데이터를 지탱하는 기술 : 3-1. 대규모 분산 처리의 프레임워크
  • [책정리] 빅데이터를 지탱하는 기술 : 2-4. 데이터 마트의 기본 구조
  • [책정리] 빅데이터를 지탱하는 기술 : 2-3. 애드 혹 분석과 시각화 도구
kiminae
kiminae
공부한 내용을 정리합니다.
  • kiminae
    데이터 다루는 사람
    kiminae
  • 전체
    오늘
    어제
    • 분류 전체보기 (67)
      • AI & 빅데이터 (6)
        • kafka (10)
        • [Book] 빅데이터를 지탱하는 기술 (12)
      • 알고리즘 (19)
      • 알고리즘 문제풀이 (13)
        • programmers (0)
        • 백준 (1)
        • LeetCode (12)
      • Android (3)
      • Book&Lesson (13)
        • [Lesson] 프로그래머스 커뮤러닝 (Pyth.. (1)
      • 참고한 글들 (1)
      • 컨퍼런스 정리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터시각화
    빅데이터를지탱하는기술
    머신러닝
    리트코드
    MPP데이터베이스
    DP문제
    버블정렬
    데이터엔지니어
    Algorithm
    릿코드
    정렬알고리즘
    추천알고리즘
    빅데이터
    카프카클라이언트
    시간복잡도
    카프카
    BI도구
    개인화추천
    mvvm
    트리
    알고리즘
    Kafka
    알고리즘문제
    hadoop
    sort
    정렬
    ViewModel
    leetcode
    파이프라인구축
    알고리즘풀이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
kiminae
[책정리] 빅데이터를 지탱하는 기술 : 3-2. 쿼리 엔진
상단으로

티스토리툴바