본문 바로가기
카테고리 없음

[AA][리포트] 빅데이터 아키텍처

by ㅋㅕㅋㅕㅇㅣ 2023. 4. 26.

대량의 데이터를 관리하고 방대한 데이터에 대해 복잡한 작업을 수행하려면 관련 도구와 기술을 사용해야 함

 

 

 

Layer 역할
데이터 소스
(Data Source)
빅 데이터 파이프라인의 시작점이 있는 곳
- RDBMS, 데이터 웨어하우스, 클라우드 기반 데이터 웨어하우스, SaaS 애플리케이션, IoT 장치 센서 실시간 데이터 등
데이터 저장소
(Data Storage)
분산되어 있고 다양한 형식 기반의 큰 파일을 저장할 수 있는 파일 저장소
(데이터의 저장의 안정성과 속도가 중요)
- HDFS, Microsoft Azure, AWS storage GCP storage
일괄 처리
(Batch Processing)
각 데이터 청크는 분석을 위해 데이터를 필터링 및 집계하고 준비하는 실행 작업을 사용하여 여러 범주로 나뉨
- Hive 작업, U-SQL 작업, Sqoop 또는 Pig 및 Java/Scala/Python 등과 같은 언오로 작성된 사용자 지정 맵 축소기 작업
실시간 기반 메시지 수집
(Realtime Message Ingestion)
실시간 스트리밍 시스템은 일괄 처리 시스템임 (순차적이고 균일한 방식으로 생성되는 데이터 처리)
- Apache Kafka, Apache Flume, Azure event hub

수집된 모든 데이터를 고려한 다음 이를 게시-구독 도구로 활용
스트림 처리
(Stream Processing)
게시-구독 도구로 수집된 데이터 사용
스트림 형태의 모든 스트리밍 데이터를 처리하고 sink 에 씀
- Apache Spark, Flink, Strom 등
분석 기반 데이터저장소
(Analytical Data Storage)
이미 처리된 데이터를 분석하고 처리하기 위해 분석 도구는 HBase 또는 NoSQL 데이터 웨어하우스 기술을 기반으로 하는 데이터 저장소를 사용

메타데이터 추상화를 제공할 수 있는 하이브 데이터베이스의 대화형 사용을 통해 제공

 

빅 데이터

정의

빅데이터는 큰 사이즈의 데이터로부터 유의미한 지표를 분석해내는 것으로 정의할 수 있습니다. SNS, 로그, 문서 등 다양한 경로를 통해 수집한 여러가지 형태의 많은 양의 데이터를 이용하여 의사결정에 도움을 주는 지표를 분석하여 제공하는 것입니다.

 

특징 (3V)

  • Volume - 크기
    • 저장장치 가격의 하락, 네트워크 속도의 향상으로 수 페타바이트의 데이터가 매일 생성
  • Variety - 다양성
    • 정형, 반정형, 비정형 형태의 다양한 데이터를 분석
  • Velocity - 속도
    • 정보의 유통 속도가 굉장히 빠름.
    • 데이터의 처리 속도가 빠름. 일, 주, 월단위 배치 처리와 초단위 실시간 데이터 처리

 

수집 데이터

데이터는 수집 형태에 따라 정형, 반정형, 비정형으로 구분됩니다. 빅데이터는 정형 데이터보다는 비정형, 반정형의 데이터가 더 많이 수집됩니다. 수집된 데이터를 다양한 도구를 이용하여 정형 형태로 변형하고 분석에 이용하는 경우가 많습니다.

  • 정형
    • 데이터베이스, CSV, 엑셀과 같이 칼럼 단위의 명확한 구분자와 형태가 존재하는 데이터
  • 반정형
    • XML, HTML, JSON 형태와 같이 여러 가지 형태가 있을 수 있지만, 메타데이터나 스키마가 존재하는 데이터
  • 비정형
    • 동영상, SNS 메시지, 사진, 오디오, 음성 데이터처럼 형태가 존재하지 않는 데이터

 

수집 시간

데이터는 수집과 처리하는 시간에 따라 배치 데이터, 실시간 데이터로 구분할 수 있습니다.

  • 배치
    • 시, 일, 주, 월 단위로 일정한 주기로 수집, 처리되는 데이터
  • 실시간
    • 실시간 검색어, 실시간 차트 처럼 사용자의 입력과 동시에 처리되는 데이터

 

분석 형태

빅데이터 분석 형태로 구분할 수 있습니다.

  • 대화형 분석
    • 사용자가 입력한 쿼리에 바로 반응하여 결과를 반환하는 분석 방법
    • 대화형 대쉬보드
  • 배치 분석
    • 저장된 데이터를 일정한 주기로 분석하는 방법
    • 일/주/월간 보고서
  • 실시간 분석
    • 사용자의 여러 입력이 실시간으로 저장되고 분석하는 방법
    • 결제/사기 경고 1분 측정
  • 기계 학습
    • 기계 학습 알고리즘을 이용해 예측 모델을 생성하는 방법
    • 심리 분석, 예측 모델

 

처리 단계

빅데이터는 다음의 5단계로 처리됩니다.

  • 수집
    • 데이터를 수집하는 단계
    • 정형, 비정형, 반정형 데이터 수집
  • 정제
    • 수집한 데이터를 적재하기 위해 필요 없는 데이터, 깨진 데이터를 정리하는 단계
    • 반정형, 비정형 데이터는 분석에 필요한 데이터 외에 필요 없는 부분을 제거하는 단계가 필요함
  • 적재
    • 정제된 데이터를 분석하기 위해 적재하는 단계
    • RDB, NoSQL 데이터베이스, Redshift, Druid 등의 도구에 적재
  • 분석
    • 적재한 데이터를 의미 있는 지표로 분석하는 단계
    • 의사결정권자나 이용자가 사용할 수 있는 데이터로 분석하는 단계
    • 하둡의 MapReduce 를 기반으로, Spark, 하이브, HBase, 임팔라등 여러가지 기술이 있습니다.
  • 시각화
    • 분석한 데이터를 도표로 보여주는 단계
    • 데이터를 이해하기 쉬운 차트로 분석하는 단계

 

1. 수집

빅데이터는 내부/외부의 여러 원천에서 데이터를 수집합니다. 따라서 다양한 형식의 데이터를 수집하게 됩니다

 

2. 정제

정제 단계는 데이터를 분석 가능한 형태로 정리하는 것입니다.

여러 경로에서 수집된 데이터가 형식이 다르기 때문에 분석 단계에 사용할 도구에 맞는 형태로 변환합니다.

데이터를 변환할 때 오류 데이터, 불필요한 데이터를 제거합니다. 정제한 데이터는 압축하여 데이터 사이즈를 줄여줍니다.

 

3. 적재

적재 단계는 대량의 데이터를 안전하게 보관하고 분석할 수 있는 환경으로 옮기는 것입니다.

분석에 사용할 도구에 따라 NoSQL, RDB, 클라우드 스토리지, HDFS 등 다양한 환경으로 데이터를 적재합니다.

RDB에서 추출한 데이터나, CSV 형태로 제공되는 데이터는 별도의 정제 단계없이 바로 적재할 수 있습니다.

 

4. 분석

분석 단계는 적재된 데이터를 이용하여 의사 결정을 위한 데이터를 제공하기 위한 리포트를 생성하는 단계입니다.

대용량의 데이터를 빠르게 분석하기 위한 처리 엔진이 필요하고, 효율적으로 분석하기 위해서 파티셔닝, 인덱싱 등의 기술이 필요합니다. 실시간 분석, 배치 분석(일, 주, 월단위)을 이용해 리포트를 생성합니다.

 

5. 시각화

최종적으로 시각화 단계입니다. 너무 많은 데이터는 정보 과잉으로 사용자가 확인하기에 부담이 될 수 있기 때문에

사용자가 빠르게 인식할 수 있는 형태의 시각화가 필요합니다.

 

 

 

 

 

 

 


참고

[wiki] 빅데이터 - 하둡

 

[사례] 빅데이터 분석, EMR 로 시작하기 (2018)

IoT 장비에서 받아오는 미세먼지 데이터를 분석하기

- 배치성 데이터 처리

- 이벤트 로그를 분석하려고 함

- 빠른 시간내에 데이터 처리 원함

더보기

Amazon

 

 

 

[사례] 듀랑고 로그 시스템 구축 경험

초당 2MB 로그 1000개면 월 5TB 정도

 

 

 

[사례] 네이버콘텐츠통계서비스 소개

 

 

[사례] 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례

 

 

 

 

[사례] 대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨200] Games on AWS 2022

 

데이터레이크

- 모든 데이터 자산을 단일 중앙 위치에 통합하여 데이터를 특성에 맞게

  분류, 처리, 분석 및 소비할 수 있는 안키텍처 접근방식

 

: 더 노

 

 

 

관련 제품

<데이터 수집 기술>

제품 역할
Flume 클라우데라에서 대량의 로그 데이터를 여러 소스에서 수집하여 저장하기 위한 목적으로 개발하여
오픈 소스로 공개한 데이터 수집 프레임워크
많은 양의 로그 데이터를 효율적으로 수집, 취합, 이동하기 위한 분산형 소프트웨어




각 서버에 에이전트가 설치 되고, 에이전트로부터 데이터를 전달 받는 콜렉터로 구성
Kafka LinkedIn에서 개발한 분산 스트리밍 플랫폼
메시징, 메트릭 수집, 로그 수집, 스트림 처리 등 다양한 용도로 사용

오픈 소스 메시지 브로커 프로젝트


링크드인에서 개발한 분산 메시징 시스템으로 대용량 실시간 로그 처리에 특화됨

발행(publish) - 구독(subscribe) 모델 기반으로 동작
발행-구독 모델은 발행자(Producer)가 메시지를 특정 수신자에게 직접 보내는 방식이 아니라
주제(topic)에 맞게 브로커에게 전달하면 구독자(Consumer)가 브로커에 요청해서 가져가는 방식 (polling)

- 발행자는 메시지를 topic으로 카테고리화
- 구독자는 topic에 맞는 메시지를 브로커에게 요청
- 발행자와 구독자는 서로 알지 못함

브로커 (Kafka Cluster)
- 클러스터로 구성된 메시지 큐라고 할 수 있음
- 메시지는 클러스터에 파티션 단위로 나누어 관리/복제됨
- 파일 시스템에 메시지를 저장하므로 유실이 없고 복구 가능
- 구독자가 메시지를 가져가도 바로 삭제하지 않음 (기본설정: 7일)

특징
- 빠르다: Fast
  수 천개의 데이터 소스로 부터 초당 수백 메가바이트의 데이터를 입력 받아도 안정적으로 처리 가능
- 확장가능: Scalable
  메시지를 파티션으로 분리하여 분산 저장, 처리할 수 있어 클러스터로 구성하여 확장 가능
- 안정적이다: Durable
  클러스터에 파티션 복제하여 장애 내구성을 가짐
Sqoop

RDBMS 와 아파치 하둡간의 대용량 데이터들을 효율적으로 변환 하여 주는
명령 줄 인터페이스 애플리케이션
Nifi 소프트웨어 시스템 간 데이터 흐름을 자동화하도록 설계된 소프트웨어 프로젝트
미국 국가안보국(NSA)에서 개발한 시스템 간 데이터 전달을 효율적으로 처리, 관리, 모니터링하기 위한 최적의 시스템
Flink 오픈 소스 스트림 처리 프레임 워크
Splunk 기계가 생성한 빅 데이터를, 웹 스타일 인터페이스를 통해 검색, 모니터링, 분석하는 소프트웨어
Logstash 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진
Fluentd 크로스 플랫폼 오픈 소스 데이터 수집 소프트웨어 프로젝트

 

<기타>

제품 역할
Hadoop 하둡은 빅데이터 기술의 시작점입니다.
하둡이 맵리듀스와 HDFS 기술을 소개하면서 빅데이터를 적당한 가격으로 분석할 수 있게 됨
여기에 하둡이 오픈 소스가 되면서 하둡을 기반으로 하는 하둡 에코 시스템들이 다양하게 나타나면서 빅데이터 분석 기술이 폭발적으로 발전할 수 있게 되었습니다.

하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템입니다.
HDFS는 범용 컴퓨터를 클러스터로 구성하여 대용량의 파일을 블록단위로 분할하여 여러서버에 복제하여 저장합니다.

Hive 하이브는 SQL을 이용하여 맵리듀스를 실행할 수 있게 해주는 기술입니다.
SQL을 이용하기 때문에 개발자가 아닌 데이터 분석가들도 쉽게 데이터를 분석할 수 있습니다.
그리고 파일의 정보의 물리적인 구조를 테이블 형태의 논리적 구조로 설명할 수 있기 때문에 데이터 분석이 더욱 쉬워집니다.

하둡 기반의 데이터웨어하우징용 솔루션입니다. 페이스북에서 개발했으며, 오픈소스로 공개되며 주목받은 기술입니다. SQL과 매우 유사한 HiveQL이라는 쿼리 언어를 제공합니다.
HiveQL은 내부적으로 맵리듀스 잡으로 변환되어 실행됩니다.
MapReduce

HDFS상에서 동작하는 가장 기본적인 분석 기술입니다.
간단한 단위작업을 반복할 때 효율적인 맵리듀스 모델을 이용하여 데이터를 분석합니다.
Spark

인 메모리 기반의 범용 데이터 처리 플랫폼
입니다.



배치 처리, 머신러닝, SQL 질의 처리, 스트리밍 데이터 처리, 그래프 라이브러리 처리와 같은 다양한 작업을 수용할 수 있도록 설계되어 있습니다.
2009년 버클리 대학의 AMPLab에서 시작됐으며, 현재 가장 빠르게 성장하고 있는 오픈소스 프로젝트 중의 하나입니다.
 Zookeeper


분산 환경에서 서버 간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템으로, 크게 다음과 같은 네 가지 역할을 수행합니다.

첫째, 하나의 서버에만 서비스가 집중되지 않게 서비스를 알맞게 분산해 동시에 처리하게 해줍니다. 둘째, 하나의 서버에서 처리한 결과를 다른 서버와도 동기화해서 데이터의 안정성을 보장합니다.
셋째, 운영(active) 서버에 문제가 발생해서 서비스를 제공할 수 없을 경우, 다른 대기 중인 서버를 운영 서버로 바꿔서 서비스가 중지 없이 제공되게 합니다.
넷째, 분산 환경을 구성하는 서버의 환경설정을 통합적으로 관리합니다.

예를 들면 HA(High Availability) 구성된 HDFS 네임노드의 Active 노드 선출, HBase 리전서버의 Active 서버 선출, Hiveserver2의 다중 선택등을 지원합니다.

Zeppelin
AWS EMR
 




Amazon EMR (Amazon Elastic MapReduce) 
- Apache Hadoop 및 Apache Spark 와 같은 빅 데이터 프레임워크 실행을 간소화하여 방대한 양의 데이터를 처리하고 
  AWS 분석하는 관리형 클러스터 플랫폼
- Amazon Simple Storage Service (Amazone S3) 및 Amazon Dynamo DB 와 같은 다른 AWS 데이터 스토어와 데이터베이스에서 방대한 양의 데이터를 변환하고 이동할 수 있음
- 아키텍처
  , 스토리지: 하둡 분산 파일 시스템(HDFS), EMR 파일시스템( EMRFS), 로컬파일시스템
  . 클러스터 리소스 관리: 클러스터 리소스 관리와 데이터 처리 작업 일정을 계획 (YARN 을 이용)
  . 데이터 처리 프레임워크: 하둡 MapReduce, Apache Spark
  . 애플리케이션 및 프로그램: Hive, Pig, Spark Streaming, Spark SQL, MLlib, GraphX
    더 높은 수준의 언어를 이용해 처리 워크로드 생성, 기계학습 알고리즘 활용, 스트림 처리 , 데이터 웨어하우스 구축 등
   
   

 

댓글