관리 메뉴

너와 나의 스토리

대용량 실시간 데이터 처리 - BigData/BigTable/MapReduce 본문

Data Analysis

대용량 실시간 데이터 처리 - BigData/BigTable/MapReduce

노는게제일좋아! 2020. 6. 4. 15:35
반응형

BigQuery와 BigTable 차이

BigQuery

  • BigQuery는 데이터셋의 쿼리 엔진. -> 변화 거의 없고 조회만 할 때, 사용하기 좋음
  • Relational DBMS

BigTable

  • BigTable은 데이터베이스. 
  • Google의 NoSQL 빅데이터 데이터베이스 서비스
  • 방대한 데이터 저장 가능.
  • 여러 서버의 시간별 CPU 사용량 같은 시계열 데이터 쿼리 가능
  • rowkey, column family, timestamp로 구성됨
  • RDB같은 느낌인데 친절한 인터페이스가 없음
  • 크롤러가 수집한 방대한 웹 페이지를 저장하기 위한 목적
  • 구글 표준 데이터 포맷인 '프로토콜 버퍼'를 사용하며, 필요에 따라 외부에서 정의하는 구조화된 데이터를 읽고 씀

 

 

OLTP vs OLAP

OLTP(Online Transaction Processing)

트랜잭션 지향 애플리케이션을 손쉽게 관리할 수 있도록 도와주는 저보 시스템의 한 계열. 일반적으로 데이터 기입 및 트랜잭션 처리를 위해 존재. 

 

OLAP(Online Analytical Processing)

의사결정 지원 시스템 가운데 대표적인 예로, 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와준다.

 

 

 

 

대용량 데이터 처리 기술

  • 기존에 데이터가 커졌을 때 사용하던 방식
    • 샤딩: 데이터의 키를 hash해서 여러 db로 분산
      • 문제점: 시스템의 복잡도가 증가하여 유지보수가 힘들다
  • GFS(Ggoogle File System)
    • 하둡의 원조
    • 구글이 사내에서 사용하려고 만든 분산 파일 시스템
    • GFS는 방대한 양의 데이터를 보유하는 핵심 스토리지 & 검색 엔진을 위해 최적화 됨
    • 대량의 서버를 연결해서 데이터에 대한 접근이 효율적이고 안정적
      • Failure tolerance, 물리적으로 서버 중 하나가 고장나도 정지하지 않고 잘 돌아가는 시스템
  • MapReduce
    • 대용량 데이터를 분산 처리하는 기법
    • Map과 Reduce 함수를 조합해 분산 환경에서 다양한 계산
      • Map 단계: 대규모 데이터를 여러대의 컴퓨터에 분산해서 병렬적으로 처리해 새로운 데이터(중간 결과)를 만들어낸다.
      • Reduce 단계: 중간 결과물을 결합해 최종 결과를 만든다.
  • Shuffle (SQL의 GroupBy와 유사한 연산)

 

 

빅데이터

  • Background
    • 1. 데이터는 원래 중요한 것. 데이터 양이 많아져서 기존의 소프트웨어로는 처리하기 어려워진 것.
    • 2. 데이터와 기술적인 요소는 이를 분석/사용하고 판단하는 사람과의 상호 작용이 이루어질 때에만 의미 있는 결과를 낼 수 있다. 
      • 어떤 분석 알고리즘을 사용할 것인지, 어떤 처리 시스템을 사용하고 결과를 해석할 것인지 등 이 모든 것을 자동화해주는 시스템은 없다.
  • 빅데이터의 3가지 측면
    • 양(Volume): 저장할 데이터의 양과 처리 요구량
    • 속도(Velocity): 저장 속도와 처리 속도
    • 다양성(Variety): RDBMS에서 사용하는 테이블의 레코드같이 정형화된 형태 뿐만이 아니라 텍스트, 이미지와 같은 비정형 데이터
  • 빅데이터 왜 중요해졌나?
    • 검색과 포털 위주였던 과거와 달리 최근에는 인터넷 웹 서비스 환경에서 통신, 게임, 쇼핑 등 개인화 서비스와 소셜 서비스를 제공한다. 
    • 그렇기 때문에 저장소의 수직적 확장보다는 수평적 확장 기술이 중요해지고 있다. 
    • 또한 개인 간의 관계 분석이나 개인의 취향을 분석하는 복잡한 기능과 저장 크기와 처리 요구량에 있어서 OLTP 범위를 넘어서는 데이터 처리 기술이 중요해지고 있다.

 

빅데이터를 위한 플랫폼

  • 저장 시스템
    • 병렬 DBMS와 NoSQL은 모두 대량의 데이터를 저장하기 위해 수평 확장 접근 방식을 취하고 있다는 점에서 동일.

 

실시간 빅데이터 분석

  • 빅데이터 처리 플랫폼으로 Hadoop MapReuce를 사용하여 데이터를 병렬 처리
    • MapReduce는 대량의 데이터를 분산 처리할 수 있는 좋은 기법이지만, 배치 방식으로 데이터를 처리하기 때문에 실시간으로 데이터를 조회하기 어렵다.
  • 실시간 분산 쿼리
    • 클러스터를 구성하는 노드가 각자 쿼리를 처리하도록 해서, 한 번에 처리할 데이터의 크기는 작게 하면서 이를 병렬 처리해 응답 시간을 실시간 수준으로 높이는 방식.

 

 

 

출처:

- 빅데이터를 위한 플랫폼: https://d2.naver.com/helloworld/29533

- 실시간 빅데이터 분석: https://d2.naver.com/helloworld/694050

- 대용량 데이터 처리 기술: https://zzsza.github.io/data/2018/05/26/bigdata-preprocessing-skills/

반응형

'Data Analysis' 카테고리의 다른 글

생성 모델, AI, ML, DL 언어 모델 키워드 구별하기  (1) 2024.07.06
Comments