본문 바로가기

Data Engineering/Hadoop Ecosystem

[FastCampus-DE] 1. 빅데이터 플랫폼 & 아키텍처

이번 포스팅에서는 빅데이터란 무엇인지 알아보고, 나아가 빅데이터 플랫폼빅데이터 아키텍처에 대한 내용도 정리해 보도록 하겠다.

 

"빅데이터란 무엇일까?"

 

빅데이터란 기존에 존재하는 데이터 처리 응용 소프트웨어로는 처리할 수 없을 만큼 "방대한 양의 데이터"를 의미한다. 뿐만 아니라 빅데이터란 데이터로부터 가치를 추출하고 결과를 "분석하는 기술"로도 그 의미를 갖는다.

 

"빅데이터 플랫폼, 빅데이터 아키텍처?"

 

우선 플랫폼이란 많은 사람들이 쉽게 이용할 수 있고, 다양한 목적의 비즈니스가 이루어지는 공간이라고 할 수 있겠다. 빅데이터 플랫폼은 "빅데이터 + 플랫폼"의 개념으로, 빅데이터 수집부터 저장/처리/분석 등 전 과정을 통합적으로 제공하여 해당 기술들을 잘 사용할 수 있도록 준비된 공간이라고 볼 수 있겠다.

 

이러한 빅데이터 플랫폼을 구축하기 위해서는 "빅데이터 아키텍처"에 대한 이해도가 필요하다. 빅데이터 아키텍처란 아래 그림과 같이 모든 업무를 빅데이터 측면에서 처음부터 끝까지 체계화한 설계도라고 할 수 있다. 빅데이터 플랫폼을 잘 구축하고 활용 및 관리하기 위해서는 이 빅데이터 아키텍처를 잘 설계하는 것이 무엇보다 중요다.

 

 

빅데이터 아키텍처를 설계하는 일은 매우 중요하기에, 세부적으로 살펴보도록 하겠다!

 

우선 빅데이터 아키텍처를 구성하는 단계는 크게 5단계로 나뉜다.


1. Sources (비즈니스 및 운영 데이터 생성 단계)

2. Ingestion and Processing (ETL 단계)

3. Storage (쿼리 및 프로세싱이 가능한 형태로 데이터를 저장하는 단계)

4. Analytics and Prediction (데이터를 분석 및 탐색하는 단계)

5. Output (데이터 분석 결과를 시각화 및 애플리케이션에 적용하는 단계)

* 모든 과정은 workflow management를 통해 관리된다!


각 단계 별로 조금 더 자세히 살펴보면 다음과 같다.

 

  1. Sources (비즈니스 및 운영 데이터 생성 단계)
    • 정형 데이터 (ex. RDBMS, 스프레드시트)
    • 비정형 데이터 (ex. 이미지, 텍스트, 음성, 영상)
    • 반정형 데이터 (ex. JSON, XML, 웹 로그, 센서 데이터)
  2. Ingestion and Processing (ETL 단계)
    • 배치형 데이터 수집
      • ex) 데이터베이스, 파일
      • 배치 처리 >> MapReduce, Spark, Hive, ...
    • 스트리밍형(실시간) 데이터 수집
      • ex) 애플리케이션 이벤트, 로그, 센서 데이터
      • 스트림 처리 >> Flink, Spark, Kafka, ...
    • 하이브리드 데이터 수집 (실시간 수집을 위한 것)
      • Lambda 아키텍처
        • "배치 처리 + 스트림 처리"
        • 총 3개의 Layer로 구성 (Batch Layer, Serving Layer, Speed Layer)
          • 비효율적 >> 이러한 문제를 보완하고자 Kappa 아키텍처가 개발되었다!
      • Kappa 아키텍처
        • Lambda 아키텍처와 다르게, Batch Layer가 제거된 아키텍처이다.
          • 즉, Lambda 아키텍처에 비해 단순한 형태!
  3. Storage (쿼리 및 프로세싱이 가능한 형태로 데이터를 저장하는 단계)
    • Data Warehouse
      • ex) Google BigQuery, Amazon Redshift, Snowflake, ...
    • Data Lake (Raw data 저장)
      • ex) AWS S3, HDFS, ...
  4. Analytics and Prediction (데이터를 분석 및 탐색하는 단계)
    • Interactive Query Engine
      • ex) Trino, Presto, (Cloudera) Impala, ...
      • 데이터 분석가 또는 데이터 과학자들이 쉽고 빠르게 분석을 진행할 수 있는 환경을 제공해준다. 
    • Realtime Analytics (실시간 분석 지원)
      • ex)  Druid, Pinot, ClickHouse, ...
    • Machine Learning
      • ex) Spark, Amazon SageMaker, Azure Machine Learning, Mahout, ...
  5. Output (데이터 분석 결과를 시각화 및 애플리케이션에 적용하는 단계)
    • ex) Tableau, Superset, Redash, ...
    • 데이터 기반의 의사결정을 지원하고, 프로덕트를 향상시킨다.

* Workflow Management

구축한 파이프라인에 대한 워크플로우 스케줄링 작업을 위해 사용되는 대표적인 도구들은 다음과 같다.

  • ex) Airflow, Azkaban, Luigi, Oozie, ...

<Reference>

1. [패스트캠퍼스] 한 번에 끝내는 빅데이터 처리 with Spark&Hadoop 강의