CHAPTER 3 빅데이터의 분산 처리
3-1. 대규모 분산 처리의 프레임워크
3-2. 쿼리 엔진
3-3. 데이터 마트의 구축
3-4. 요약
3장에서는 분산 시스템의 대표적인 프레임워크인 Hadoop과 Spark를 이용한 데이터 처리에 관해 설명한다.
Hadoop 위에서 구조화 데이터를 집계하기 위한 '쿼리 엔진'에 대해 설명한다. 배치형의 쿼리 엔진인 '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 프로세스이거나 머신러닝과 같은 모든 데이터 처리에 사용할 수 있다.
'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 |