새소식

독서

[빅데이터를 지탱하는 기술] 1.빅데이터의 기초 지식

  • -

1-1. 빅데이터의 정착

인터넷의 보급으로 세계 곳곳으로부터 엑세스 되는 시스템이 증가함에 따라 전통적인 관계형 데이터베이스로는 취급할 수 없을 만큼 대량의 데이터가 쌓이게 되었다. 이를 해결하기 위해 Hadoop과 NoSQL이 생겨났다.

 

Hadoop

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

모여진 데이터를 나중에 집계하는 것이 목적

 

-데이터 웨어하우스 와의 공존-

전통적인 데이터 웨어하우스에는 안정적으로 데이터를 처리할 수 있지만 이를 위해 하드웨어와 소프트웨어가 통합된 장비로 제공되었다. 따라서 데이터 용량을 늘리려면 하드웨어를 교체하는 등 확장이 어렵다는 단점이 있다.
따라서 기하급수적으로 증가하는 데이터의 처리는 Hadoop에게 맡기고 비교적 작거나 중요한 데이터만을 데이터 웨어하우스에 넣는 식으로 사용하게 된다.

NoSQL

NoSQL 데이터베이스에는 다양한 종류가 있다.

  • Key-value store : 다수의 키와 값을 관련지어 저장 (Redis)
  • document store : JSON과 같은 복잡한 구조를 저장 (MongoDB)
  • wide-column store : 여러 키를 사용하여 높은 확장성을 제공 (Cassandra)

RDB보다 고속의 읽기/쓰기가 가능하고 분산 처리에 뛰어남

애플리케이션에서 온라인으로 접속하는 데이터베이스

 

2011년 말 부터 NoSQL 데이터베이스에 기록하고 Hadoop으로 분산처리하는 방식을 통해
방대한 규모로 증가하는 데이터에 대해 현실적인 비용으로 데이터를 처리할 수 있게 되었다.

 

 

1-2. 빅데이터 시대의 데이터 분석 기반

빅데이터 기술과 기존의 데이터 웨어하우스의 차이점은 다수의 분산 시스템을 조합하여 확장성이 뛰어난 데이터 처리 구조를 만든다는 점이다.

 

데이터 파이프라인

차례대로 전달해나가는 데이터로 구성된 시스템

 

1) 데이터 수집

데이터 파이프라인의 시작은 데이터를 수집하는 것부터 시작한다.

수집한 데이터를 전송하는 방식은 크게 2가지가 있다.

  • 벌크(bulk)형
    이미 존재하는 데이터를 정리해 추출하는 방법
    DB와 파일 서버등에서 정기적으로 데이터 수집
  • 스트리밍(streaming)형
    차례대로 생성되는 데이터를 끊임없이 계속 보내는 방법
    모바일 어플리케이션, 임베디드 장비 등에서 데이터를 수집할 때 사용하는 방법

 

2) 스트림 처리 / 배치 처리

스트리밍 형 방법으로 수집한 데이터를 실시간으로 처리하는 방식을 스트림 처리 라고 한다.

그러나 스트림 처리는 장기적인 데이터 분석에는 적합하지 않다.

 

장기적인 분석을 위해서는 대량의 데이터를 저장/처리하는데 적합한 분산 시스템이 좋은데, 이 때 어느정도 정리된 데이터를 효율적으로 가공하는 배치 처리 방식을 사용한다.

 

 

3) 분산 스토리지

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

 

수집된 데이터는 분산 스토리지에 저장된다.

대표적인 것이 객체 스토리지로 한 덩어리로 모인 데이터에 이름을 부여해 파일로 저장한다. (Amazon S3)

 

 

4) 분산 데이터 처리

분산 스토리지에 저장된 데이터를 처리하는 데는 분산 데이터 처리의 프레임워크가 필요

분산 데이터 처리의 주 역할은 나중에 분석하기 쉽도록 데이터를 가공해 그 결과를 외부 데이터베이스에 저장하는 것

 

빅데이터를 SQL로 집계하는 2가지 방법

1. 분산 스토리지 상의 데이터를 SQL로 집계하기 위해 쿼리 엔진 도입 ex) Hive

2. 외부의 데이터웨어하우스 제품을 이용
   분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환하는 ETL(Extract-Transform-Load)

   프로세스 진행

 

 

5) 워크플로 관리

전체 데이터 파이프라인의 동작을 관리

 

 

데이터 웨어하우스와 데이터마트 - 데이터 파이프라인 기본형

'대량의 데이터를 장기 보존하는 것'에 최적화 된 데이터 웨어하우스는 정리된 데이터를 한 번에 전송하는 것은 뛰어나지만 소량의 데이터를 자주 읽고 쓰는데는 적합하지 않다. 

 

데이터 소스는 업무 시스템을 위한 RDB나 로그 등을 저장하는 파일 서버를 의미한다.
데이터 소스에 보존된 row data를 추출하고 필요에 따라 가공한 후 데이터 웨어하우스에 저장까지 하는 흐름을 ETL이라고 한다.

 

데이터 분석과 같은 목적에 사용하는 경우에는 데이터 웨어하우스에서 필요한 데이터만 추출해 데이터마트를 구축한다.

데이터 마트는 BI도구와 조합시켜 데이터를 시각화하는데도 사용한다.

 

 

데이터 레이크와 데이터마트 - 빅데이터 시대의 데이터 파이프라인

모든 데이터가 데이터 웨어하우스를 가정해서 만들어지지 않기 때문에 모든 데이터를 원래 형태로 축적해두고 나중에 그것을 필요에 따라 가공하는 구조가 필요하다.

 

앞서 설명한 데이터 파이프라인의 기본형에서 데이터웨어하우스를 데이터 레이크로 치환하면 된다.
데이터는 미가공한 원시 데이터를 그대로 저장소에 저장한다는 것이 데이터 웨어하우스와의 차이점이다.

728x90
Contents