Hadoop & NoSQL

BigData의 기술 요소들을 정리해본다.
Hadoop과 NoSQL을 먼저 생각해보자.
전통적인 RDB로 처리가 어려운 수준의 Data가 발생했기 때문에,
이를 위한 다른 구조가 필요했다.
Hadoop과 NoSQL은 각각 다른 요구를 충족하기 위해 태어났다.
우선, Hadoop은 다수의 컴퓨터에서 대량의 데이터를 처리하기 위함이다.
NoSQL은 빈번한 읽기/쓰기 및 분산 처리를 위함이다.
NoSQL은 여러 종류의 제품군으로 구분할 수 있는데,

  • JSON과 같은 형태를 저장하는 Document store
  • Key/Value를 활용한 Key-value store
  • 여러 키를 사용하는 Wide-column store 등이 대표적이다.

Data pipeline

기존 Data Warehouse와의 결정적으로 다른 점이라면, 다수의 분산 시스템을 조합하여 확장성이 뛰어난 Data 처리 구조를 만든다는 점이다.
Data pipeline은 수집부터 시각화까지 일련의 과정을 의미한다.

Data source

Data source는 주로 서비스를 위한 RDB, Log 등을 저장하는 File server 등이 주요 Data source이다.

Data ingest

Data는 아래와 같이 크게 두 가지로 분류한다.

  • Batch(혹은 Bulk)
  • Stream

Data storage

수집된 Data는 Object Storage 혹은 Distributed Storage에 일반적으로 저장한다.
대표적인 Object Storage는 AWS S3가 있다. 또한 Distributed Storage로는 NoSQL을 사용한다. NoSQL의 특징인 확장성이 좋은 부분이 Storage로 사용가능하게 한다.

Data warehouse

전통적인 데이터 분석을 위해 Data warehouse 제품을 활용한다.
Data source로부터 Extract, Transform, Load를 ETL 프로세스라고 하는데, 이러한 ETL 프로세스의 뒤에는 Data warehouse가 위치한다.

Data lake

발생하는 Data의 type과 source가 다양해짐에 따라 필연적으로 ETL 프로세스가 복잡해진다. ETL을 통한 Data warehouse에 넣으려고 할 때 이를 위한 Transform 작업에서 부하가 걸리는 상황이다. 또한 Textfile이나 Binary data 등은 있는 그대로 Data warehouse에 넣을 수 없는 것도 발생한다. 이러한 이유로 우선 Data를 원래의 형태대로 저장(Load)하고, 그것을 나중에 가공하는 형태로 변환(Transform)하는 것을 ELT 프로세스라고 할 수 있다. 이를 위해선 Data lake와 같이 CSV나 JSON 등의 범용적인 형식을 사용하는 것이 일반적이다.

Data mart

Data warehouse 혹은 Data lake에 Ad-hoc query를 활용해서 분석이 가능하다. 예를 들어 Redshift나 S3에 Athena를 활용한 Ad-hoc 분석이 이에 해당된다. 하지만 Data warehouse 혹은 Data lake을 그대로 활용하기 보다는 Data mart로 추출한 후에 분석을 진행한다. 이런 Data mart에서 SQL과 BI tool을 활용한 분석 및 시각화 작업을 실시한다.

Workflow management

정기적으로 실행하고, 오류 발생 시에 notification이 가능하게 하기 위해 Workflow management를 많이 활용한다. 가장 알려진 제품은 Airflow이다.

0개의 댓글