Book Report

CHAPTER1 빅데이터 기초 지식

  • -
728x90

사전 기본 개념 

데이터웨어하우스

  •  정확한 데이터가 모여있는 곳
  • 레포트 분석용

데이터 레이크

  • 상대적으로 Raw한 데이터들이 모여있는 곳
  • 분석에 쓰일 수 있는 데이터면 모두 모아놓음
  • 당장 필요하지 않아도 됨

데이터 마트

  • 데이터레이크와 데이터 웨어하우스에서 목적에 필요한 데이터들을 가져와 구축한 분석용 데이터

1-1 빅데이터의 정착

분산 시스템에 의한 데이터 처리의 고속화

  빅데이터의 기술로 가장 먼저 예를 들 수 있는 것은 'Hadoop'과 'Nosql'이다. 전통적인 RDB로는 너무 대량의 데이터는 취급이 불가능하기 때문에 생겨났다.

Hadoop

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

즉,  방대한 데이터를 저장하기 위해서 필요한 수많은 컴퓨터들을 관리하는 시스템이다.

  • 분석에 필요한 많은 시간과 비용을 단축 가능하다.
  • hive를 통해 sql과 같은 쿼리 언어를 이용하여 손쉬운 분산시스템 사용이 가능하다
  • DW(데이터 웨어하우스)의 부하를 줄인다.


NoSQL

  전통적인 RDB의 제약을 없앤 비관계형 데이터베이스로 굉장히 자유로운 구조를 지닌다. 따라서 RDB보다 고속의 읽기 쓰기가 가능하고 분산처리가 뛰어나다.

mongoDB, cassandra, Redis 등 다양한 데이터 베이스가 존재하는데 크게 다음과 같은 종류로 구분이 가능하다.

  • 키와 값을 관련지어 저장하는 '키 밸류 스토어' 
  • json과 같은 복잡한 데이터 구조를 저장하는 '도큐먼트 스토어'
  • 여러 키를 사용하여 사용하여 높은 확장성을 제공하는 '와이드 칼럼 스토어'

따라서 이 둘을 조합함으로써 'NoSQL 데이터베이스에 기록하고 Hadoop으로 분산 처리하기'의 흐름이 일반적으로 쓰인다.

 

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

  예전부터 기업은 데이터 분석을 위해 데이터 웨어하우스를 사용해왔다. 모든 데이터가 축적되는 데이터 웨어하우스에 있는 정보를 분석하여 의사결정에 활용하고자 하는 것이다. 다만 모든 데이터가 쌓이기에 데이터 웨어하우스에 큰 부하가 걸릴 수 밖에 없고 옛 방식의 데이터 웨어하우스의 경우 하드웨어를 교체하는 등 확장성이 매우 떨어진다. 따라서 확장성이 뛰어난 hadoop으로 데이터를 처리한 후에 DW에 저장하여 DW의 부하를 줄인다.

직접할 수 있는 데이터 분석의 폭 확대

  기존에 데이터 웨어하우스는 대기업만 사용이 가능하였으나 클라우드 서비스의 보급으로 인해 작은 프로젝트 에서도 자체적으로 DW를 구축하여 데이터 분석이 가능해졌다. 즉, 원래 작은 조직들은 스몰데이터만 분석이 가능했는데 클라우드의 보금으로 빅데이터 분석이 가능해진 것이다. 

 

데이터 디스커버리의 기초 지식 - BI도구

데이터 디스커버리란 BI 도구로 대표적으로 Tableau가 있다.

테블루 예시: https://public.tableau.com/app/profile/.26001199/viz/_16889018879440/1_2

 

경상남도 공공데이터 활용 공모전 노인의료소외지역선정

경상남도 공공데이터 활용 공모전 노인의료소외지역선정

public.tableau.com

즉, 점점 기술상의 제약이 사라져 조직에서 개인까지 자유로운 데이터 분석이 가능해졌다. 


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

빅데이터의 기술

여기서 다루는 빅데이터의 기술은 좀 더 발전된 형태다. 기존의 데이터 웨어하우스와는 다르게 다수의 분산 시스템을 조합해서 확장성이 뛰어난 데이터 처리 구조를 만드는 것

 

데이터 파이프라인

data pipeline: 데이터가 발생하는 곳으로부터 차례대로 전달해나가는 데이터로 구성된 시스템

각 부분에서 어떤 툴을 사용할지에 따라서 그리고 수집 목적에 따라 파이프라인 구성은 굉장히 다양해진다.

 

데이터 수집

다양한 데이터 발생장소에서 데이터를 전송하는데 전송방법은 다음과 같은 두가지 방식이 있다.

  • 벌크(bulk) 형.  <-- 배치 처리
  • 스트리밍(streaming) 형 <-- 실시간 처리

벌크 방식은 이미 어딘가에 있는 정보를 정리해 추출하는 방식

      -> 따라서 정기적으로 업데이트가 되는 api나 기관에서 주로 사용

스트리밍 형은 차례차례로 생기는 데이터를 끊임 없이 싱시간으로 보내는 방식

      -> 따라서 로그 데이터나 주식 가격변동 iot 센서 등 실시간으로 생성되는 정보에 주로 사용

 

스트림 처리와 배치 처리 

스트림 처리는 실시간 처리이기 때문에 데이터의 양이 방대하다 따라서 장기적인 데이터 분석에는 적합하지 않다.

장기적인 데이터 분석은 보다 대량의 데이터를 저장하고 처리하는게 적합한 분산시스템이 더 좋으며 거기에 적합한 것은 배치 처리 구조이다.

 

각각 쓰는 툴도 다르다. 배치 처리는 airflow와 같은 툴을 사용하여 처리를 하고 스트림 처리는 kafka와 같은 툴을 통해 처리한다. 

분산 스토리지

데이터는 분산스토리지에 저장한다. 대표적으로는 '객체 스토리지'로 클라우드 서비스의 Amazon S3 등이 유명하다. RDBMS나 Nosql 데이터베이스도 스토리지로 사용할 수 있으나 확장성이 높은 제품을 선택해야 한다. 

Amazon

 

클라우드 스토리지 | 웹 스토리지| Amazon Web Services

닫기 이 다이어그램은 데이터를 Amazon S3로 이동하고, 저장된 데이터를 관리하며, 다른 서비스로 데이터를 분석하는 방법을 보여줍니다. 왼쪽에서 오른쪽으로 세 개의 섹션이 표시됩니다. 첫 번

aws.amazon.com

 

분산데이터 처리

스토리지에 집계된 데이터를 나중에 분석하기 쉽도록 데이터를 집계해 그 결과를 외부 데이터에 저장하는 것으로 두가지 예시가 있다.

  • SQL 쿼리 엔진의 도입 대표적으로 hive가 있다.
  • 외부 데이터 웨어하우르 제품 이용 ETL 프로세스의 도입

*ETL 프로세스란?

    ETL이란 추출-가공-로드(적재)의 약자로 기업이 전 세계 모든 곳의 수많은 팀에서 관리하는 구조화된 데이터와 구조화되지 않은 데이터를 비롯한 전체 데이터를 가져와 비즈니스 목적에 실질적으로 유용한 상태로 변환하는 엔드 투 엔드 프로세스를 의미한다.

 

워크플로 관리

데이터 파이프라인은 배치처리의 경우 주기적인 스케줄대로 프로세스를 실행한다. 반대로 스트림 처리의 경우 실시간으로 프로세스가 실행된다.

'워크플로 관리 기술'은 처리 도중 오류가 발생하여 사용하는 툴이 죽거나 데이터가 중간에 사라질 수 있는데 이를 관리하며 관리자에게 통지하는 목적으로 활용된다.

 

ETL과 ELT의 차이 - 중요

ETL의 3단계

  • 1.  다양한 소스에서 원시 데이터 추출
  • 2. 보조 처리 서버를 사용하여 해당 데이터를 전환
  • 3. 해당데이터를 대상 데이터베이스에 적재

ELT의 3단계

  • 1.  다양한 소스에서 원시 데이터 추출
  • 2. 데이터를 자연 상태로 데이터 웨어해우스 또는 레이크에 적재
  • 3. 대상 시스템에 있는 동안 필요에 따라 전환

차이점 정리

 

범주 ETL ELT
의미 추출, 전환, 적재 추출, 적재, 전환
처리 원시데이터를 가져와서 미리 정해진 형식으로 전환한 다음 대상 데이터 웨어하우스에 적재 원시데이터를 가져와서 대상 데이터 웨어하우스에 적재한 다음 분석직전에 적재
전환 및 적재 위치 보조처리 서버에서 전환이 수행됨 대상 데이터 웨어하우스에서 전환이 수행됨
데이터 호환성 정형 데이터에 가장 적합함 형, 비정형 및 반정형 데이터를 처리할 수 있음.
속도 ETL은 ELT보다 느림 ELT는 데이터 웨어하우스의 내부 리소스를 사용할 수 있기 때문에 ETL보다 빠름
비용 사용하는 ETL 도구에 따라 설정하는 데 시간과 비용이 많이 들 수 있음 용하는 ELT 인프라에 따라 더 비용 효율적
보안 데이터 보호 요구 사항을 충족하기 위해 사용자 지정 애플리케이션을 구축해야 할 수 있음 대상 데이터베이스의 기본 제공 기능을 사용하여 데이터 보호를 관리할 수 있음

데이터 웨어하우스와 데이터 마트 그리고 데이터 레이크

 

  데이터 웨어하우스는 기본적으로 대량의 데이터를 장기 보존하는 것에 초점을 둔다. 때문에 정리된 데이터를 한번에 전송하는 것을 뛰어나지만 소량의 데이터를 자주 읽고 쓰는데는 적합하지 않다. 때문에 데이터 웨어하우스에서 필요한 데이터를 추출해서 데이터 마트를 구축하고 BI 도구와 결합하여 분석을 수행한다.

  데이터 레이크는 원시데이터를 그냥 모아둔 것에 불과하다. 데이터 웨어하우스에 데이터를 넣으려면 일단 가공을 해야하지만 그렇게 하지 못하는 데이터들도 존재한다. 분석이 필요한 경우에 그제서야 테이블을 구축하는 경우도 있는데 이때 사용하는 것이 데이터 레이크이다. 위 그림을 통해 데이터 레이크에서 마트를 추출한 후 분석을 진행한다.

 

분석가와 엔지니어의 업무 구분

데이터 파이프라인의 큰 흐름

데이터 파이프 라인의 큰 흐름은 변하지 않기에 두가지만 파악하면 된다.

  • 저장할 수 있는 데이터 용량에 재한이 없을 것
  • 데이터를 효율적으로 추출할 수단이 있을것

기간계 시스템과 정보계시스템을 분리하자

기간계 시스템: 정지되면 업무가 멈추는 비즈니스 근관에 관련된 중요한 시스템(운영용 DB)

정보계 시스템: 의사결정 지원 시스템으로 정지되어도 당장 큰 분제가 발생하지는 않는 시스템(분셕용 DB)

따라서 데이터를 효율적으로 분석하기 위해서는 둘을 확실히 분리해아 한다. 기간계와 정보계를 분리하지 않으면 기간계에 부하가 걸리거나 정보계를 업데이트하기 어렵다.

 

확증적 데이터 분석(CDA)과 탐색적 테이터분석(EDA)

CDA: 통계적인 모델링으로 머신러닝과 같은 수학적 도구를 이용해 하는 분석

EDA: 시각화 등을 통해 인간의 힘으로 분석을 하는 것

둘을 명확하게 구분하는 것이 아니며 분석 수행시 둘 모두 수행한다.


1-3 스크립트 언어에 의한 특별분석과 데이터 프레임.

R과 파이썬과 SQL 이 3가지가 보통 데이터 분석과 처리 등에 쓰이는 스크립크 언어이다.

  • R: 통계분석을 위해 개발된 언어로 통계적 모겔링에 특화
  • 파이썬: 범용 스크립트 언어이며 라이브러리 구성이 너무나도 뛰어남 특히 API 호출 문자열 데이터 처리 머신러닝 프레임워크 사용이 굉장히 간편함. 특히 데이터 프레임을 다루는 pandas와 numpy가 굉장히 잘되어 있음.
  • SQL: 데이터 집계가 굉장히 체계적이며 가장 큰 장점으로 쉬움 때문에 파이썬과 SQL을 같이 쓰며 전처리와 집계를 한번에 하는 경우도 존재

책에 있는 예제코드는 너무 기초중의 기초라 생략

 

1-4 BI 도구와 모니터링

스프레드시트에 의한 모니터링

모니터링이란?

- 보다 계획적으로 데이터의 변화를 추적해나가는 것을 의미한다.

 

아래 예시처럼 집계된 데이터를 보고 추이를 모니터링할 수 있다.

다만 이러한 모니터링은 해당 분야에 대한 도메인 지식이  필요하다. 

 

데이터에 근거한 의사결정

프로젝트 현황 혹은 운영의 형황을 파악하기 위해 업계마다 중요한 지표를 넘버링하나 KPI를 많이 이용한다.

KPI를 통한 모니터링으로 의사결정을 하는데 그 판단기준은 다음과 같다. 'kpi 지표에 따라 자신의 다음 행동이 결정될 수 있는가?' 즉, 이익률이 준다는 사실을 파악함으로써 나의 다음행동을 결정하기 위해 kpi 모니터링을 진행한다.

kpi모니터링과 같이 직감이 아닌 객관적인 데이터를 근거하여 판단하는 것을 '데이터 기반 의사결정'이라고 한다.

수작업과 자동화해야할 것들의 경계를 판별하기

수작업

자신이 알고자 하는 정보를 자신만 보고자 한다면 수작업이 낫다

예들 들어, 월별 이익률을 보고싶다면 한달에 한번씩 수동으로 하는 것이 복잡하게 워크플로 설계하는 것보다 쉽다.

자동화

자동화를하려는 경우에는 데이터 마트를 만든다.

자주 업데이트 된다거나 다수의 사람과 공유되는 중요성이 높은 데이터는 자동화를 하면 좋은데  다음과 같은 방법을 생각할 수 있다.

  1. BI 도구에서 직접 데이터 소스에 접속하기
    • 장점: 시스템 구성이 간단하다.
    • 단점: BI 도구 측에서 지원하지 않는 데이터 소스네는 접속할 수가 없다.
  2. 데이터 마트를 준비하고 그것을 BI 도구로 부터 열기
    • 장점: 어떤 테이블이라도 자유롭게 만들 수 있다.
    • 단점: 데이터 마트의 운영 및 설치에 시간이 걸린다.
  3. 웹 방식의 BI도구를 도입하여 CSV파일을 업로드하기
    • 장점: 스트립트로 자유롭게 데이터를 가공할 수 있다.
    • 단점: 데이터의 생성 밑 업로드에 프로그래밍이 필요하다.
728x90

'Book Report' 카테고리의 다른 글

데이터 마트에 정규화는 필요 없다.  (0) 2023.10.05
CHAPTER2 빅데이터의 탐색  (0) 2023.10.05
빅데이터를 지탱하는 기술  (2) 2023.09.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.