빅데이터를 지탱하는 기술 (1)


부캠에서 추천받은 빅데이터를 지탱하는 기술을 읽고 정리하는 글입니다.
책 링크

빅데이터란?

2012년에 걸쳐 많은 기업들이 데이터 분산처리 시스템을 도입하기 시작했을때 부터 수면위로 떠오른 단어. 많은 양의 데이터를 의미하며 이것을 처리하는데에 수고와 시간이 소요된다는 특징이 존재한다.
데이터의 양이 늘어나면서 전통적인 TDB로는 취급할 수 없을 만큼의 대량의 데이터가 쌓이게 되었고, 이를 처리하기 위해 새로운 기술들이 필요했다.


대표적인 빅데이터 기술

Hadoop

‘다수의 컴퓨터에서 대량의 데이터를 처리’하기 위한 시스템

  • 수백 수천대의 컴퓨터가 동시에 처리를하는 구조가 필요하였고 이를 관리하기 위하여 만들어진 시스템
  • 구글에서 개발된 분산처리 프레임워크인 MapReduce를 참고하여 제작됨
  • Hive가 개발되면서 Haddop에서도 SQL과 같은 쿼리언어를 사용할 수 있게 되었다.
  • 전통적인 데이터 처리를 위한 데이터 웨어하우스와 비교하여 확장성이 뛰어나 빠르게 늘어나는 데이터 처리를 담당한다
    • 일부 중요한 데이터, 작은데이터는 데이터 웨어하우스에서 처리

      NoSQL

      RDB의 제약을 제거하는 것을 목표로 한 데이터베이스의 총칭. 다양한 종류가 있다
  • Document store : Json 과 같은 복잡한 데이터 구조를 저장하는 DB
    • MongoDB
  • Key value store : 다수의 키와 값을 관련지어 저장하는 DB
    • Redis
  • Wide column store : 여러 키를 사용하여 높은 확장성을 제공하는 DB
    • Cassandra

방대하게 증가하는 데이터에 대하여 현실적인 비용으로 데이터를 처리할 수 있게 하는 위의 두 기술을 조합하면서 NoSQL에 기록하고 Hadoop으로 처리하는것이 현재 빅데이터 처리 방법이다.

클라우드 처리를 위한 데이터 기술

클라우드 보급으로 인하여 빅데이터 처리를 위한 환경을 구축하는 것이 매우 쉬워졌다
아래에는 클라우드 기반의 서비스 리스트이다

서비스 특징
Amazon Elastic MapReduce 클라우드 Hadoop
구글 BigQuery 데이터 웨어하우스
Azure HDInsight 클라우드 Hadoop
Amazon Redshift 데이터 웨어하우스

빅데이터 관련 단어

데이터 파이프라인

데이터를 수집하고, 처리하는 데이터의 모든 흐름을 지칭한다

데이터 수집

데이터 파이프라인의 첫부분. 말 그대로 데이터를 수집하는 것을 지칭한다
데이터 수집방식은 크게 벌크(Bulk)형, 스트리밍(Streaming)형 두가지가 존재한다

  • Bulk
    • 전통적으로 과거에서 부터 축적된 데이터나 기존의 DB에서 데이터를 추출하는 방식
    • 규모가 크거나 높은 신뢰성이 요구될 때 사용된다.
    • ETL을 이용
    • 데이터 웨어하우스에서의 처리 방식
  • Streaming
    • 모바일 어플리케이션이나, 임베디드 장비등을 이용하여 계속해서 데이터를 생성하여 수집하는 형태
    • IoT같은 장치에서 많이 사용된다.
    • 네트워크를 통하여 수집되기 때문에 통신의 오버헤드가 커 Message Broker를 사용하여 저장

Stream & Batch 처리

기존의 데이터 웨어하우스를 통하여 처리하는 경우 Bulk 형태의 수집과 동시에 데이터를 처리했지만, 빅데이터의 세계에서는 스트리밍형 방식으로 데이터를 수집하는것이 주가 되었고 이를 실시간으로 처리하기 위한 방법들이 만들어지기 시작했다

  • Stream 처리
    • 실시간으로 데이터를 처리하는 방식
    • 데이터가 시스템에 도착할때마다 바로바로 처리를 해준다
    • 장치 모니터링, 고장탐지 등
  • Batch 처리
    • 일정 기간단위의 데이터를 분석, 처리하는 방식
    • 특정시간 단위로 대량의 데이터를 한번에 분산처리를 수행한다
    • 주간 단위 추천시스템 등

분산 스토리지

여러 컴퓨터와 디스크로 부터 구성된 스토리지 시스템

  • 오브젝트 기반 스토리지
  • 파일 기반 스토리지 (구형)

분산 데이터 처리

분산된 스토리지에 저장된 데이터를 처리하는것

  • 쿼리 엔진 : Hive 등
  • ETL 프로세스 (데이터 웨어하우스를 경유)

Workflow 관리

매일 정해진 시간에 배치 처리를 스케줄 대로 실행하고, 오류가 발생할 경우 관리자에게 알리는 등의 목적을 가진 기술


데이터 파이프라인

데이터 파이프라인에서는 다음과 같이 크게 3가지의 데이터가 모이는 장소가 존재한다

데이터 웨어하우스

  • Data + WareHouse(창고). 말그대로 데이터를 모아두는 창고이다.
  • 대량의 데이터를 장기 보존하는 것에 최적화 되어있다.
  • 서버와 같은 곳에서 추출하여 필요에 따라 가공한 데이터들이 저장된다
  • 소량의 데이터를 자주 읽고 쓰는데는 적합하지 않다
  • 데이터 웨어하우스는 전체 프로세스에서 중요한 처리에 사용되기 때문에 분석과 같은 목적인 경우 필요한 데이터를 추출하여 데이터 마켓으로 넘겨 분석한다

데이터 레이크

빅데이터 시대에 모든 데이터가 웨어하우스에 들어가는것의 가정해서 만들어지지 않기 때문에 호환되지 않는 데이터가 존재하여 이를 커버하기 위해 고안된 데이터 저장소

  • 모든 데이터를 원래의 형태로 저장해두고 필요에 따라 가공하는 구조를 구현하기 위해 존재한다.
  • 임의의 데이터를 저장할 수 있는 분산스토리지가 이용된다.
  • 대부분 CSV나 JSON 등의 범용적인 텍스트형식을 사용한다

데이터 마트

  • 가공된 데이터들을 모아서 데이터 분석을 진행하는 장소
Author

KyuBum Shin

Posted on

2022-06-20

Updated on

2022-06-22

Licensed under

댓글