[책정리] 빅데이터를 지탱하는 기술 : 1-2 빅데이터 시대의 데이터 분석 기반

2022. 4. 18. 19:32·AI & 빅데이터/[Book] 빅데이터를 지탱하는 기술
728x90

CHAPTER 1 빅데이터의 기초 지식

1-1. 빅데이터의 정착

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

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

1-4. BI 도구와 모니터링

1-5. 요약

 

1장에서는 빅데이터 기술이 생겨난 역사적 배경과 그 기본이 되는 사고방식, 용어를 정리한다.


빅데이터의 기술이 기존의 데이터 웨어하우스와 다른 점은 다수의 분산 시스템을 조합하여 확장성이 뛰어난 데이터 처리 구조를 만든다는 점이다. 1-2절에서는 그 차이점에 관해 설명한다.

 

빅데이터의 기술 : 분산 시스템을 활용해서 데이터를 가공해 나가는 구조

데이터 파이프라인

일반적으로 '차례대로 전달해나가는 데이터로 구성된 시스템'을 뜻한다.

빅데이터의 데이터 파이프라인은 어디에서 데이터를 수집하여 무엇을 실현하고 싶은 지에 따라 변화하며, 하고 싶은 일이 증가함에 따라 시스템은 점차 복잡해지고 그것들을 어떻게 조합시킬지가 문제가 된다.

 

데이터 수집

데이터베이스에 쓰인 거래처 데이터, 파일 서버에 축적된 로그 파일, 임베디드 장비에서 보내진 센서 데이터 등 서로 다른 기술로 데이터를 전송하여 수집한다.

 

데이터 전송의 방법은 크게 두 가지가 있다. 벌크 형은 이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법으로, DB와 파일 서버 등에서 정기적으로 데이터를 수집하는 데에 사용한다. 스트리밍 형은 차례로 생성되는 데이터를 끊임없이 계속해서 보내는 방법으로 모바일 애플리케이션과 임베디드 장비 등에서 널리 데이터를 수집하는 데 사용한다.

 

스트림 처리와 배치 처리

모바일 애플리케이션 등이 증가함에 따라 스트리밍 형 방법이 주류가 되고 있고, 해당 데이터를 실시간으로 처리하려고 한다. 이것을 '스트림 처리'라고 한다.

 

스트림 처리는 장기적인 데이터 분석에는 적합하지 않다. 예를 들어 지난 1년간의 데이터를 분석하려고 하면 데이터 양은 수천 배 수만 배로 증가하게 되는데, 실시간 데이터 처리와 장기적인 데이터 분석 결과를 하나의 시스템으로 실현하는 것은 쉬운 일이 아니다.

 

장기적인 데이터 분석을 위해서는 대량의 데이터를 저장하고 처리하는 데 적합한 분산 시스템이 좋다. 이것에는 데이터를 효율적으로 가공하기 위한 '배치 처리' 구조가 필요하다.

 

분산 스토리지

분산 스토리지란 여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템을 의미한다.

데이터를 저장하는 방법을 여러 가지가 있는데, 그중 대표적인 것이 '객체 스토리지'로 한 덩어리로 모인 데이터에 이름을 부여하여 파일로 저장한다. (ex. 클라우스 서비스 Amazon S3)

NoSQL 데이터베이스를 분산 스토리지로 사용할 수도 있는데, 애플리케이션에서 많은 데이터를 읽고 쓰는데 성능이 우수하기 때문이다.

 

분산 데이터 처리

분산 스토리지에 저장된 데이터를 처리하는 데 '분산 데이터 처리' 프레임워크가 필요하다. 이것의 주 역할은 데이터를 나중에 분석하기 쉽도록 가공해서 그 결과를 외부 데이터베이스에 저장하는 것이다.

빅데이터를 SQL로 집계할 때는 두 가지 방법이 있는데, 쿼리 엔진 (query engine) 도입하는 것과 외부의 데이터 웨어하우스 제품을 이용하는 방식이 있다.

데이터 웨어하우스를 이용하기 위해서는 분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환하는데, 이 일련의 절차를 'ETL 프로세스'라고 한다. 데이터를 추출(extract), 가공(transfrom), 로드(load)하는 것이다.

 

워크플로 관리

데이터의 파이프라인 동작을 관리하기 위해 '워크플로 관리' 기술을 사용한다. 매일 정해진 시간에 배치 처리를 스케줄대로 실행하고 오류가 발생한 경우에는 관리자에게 통지하는 목적으로 사용된다.

 


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

데이터 웨어하우스는 '대량의 데이터를 장기 보존' 하는 것에 최적화되어 있다. 따라서 소량의 데이터를 자주 쓰고 읽는 것보다 정리된 데이터를 한 번에 전송하는 데 성능이 좋다. 

업무 시스템을 RDB나 로그 등을 저장하는 파일 서버는 '데이터 소스(data source)'라고 부르며, 거기에 보존된 '로우 데이터(raw data)'를 추출하고 필요에 따라 가공한 후 데이터 웨어하우스에 저장하기까지의 흐름이 'ETL 프로세스'이다.

데이터 분석과 같은 목적에 사용하는 경우에는 '데이터 마트'를 따로 구축한다.


데이터 레이크 : 데이터를 그대로 축적

데이터 웨어하우스를 활용하기 전에, 모든 데이터를 원래 형태로 축적해두고 필요에 따라서 가공하는 구조가 필요하다. 이 데이터의 축적 장소를 '데이터 레이크(data lake)'라고 한다.

임의의 데이터를 저장할 수 있는 분산 스토리지가 데이터 레이크로 이용된다.

 

데이터 레이크와 데이터 마트

데이터 레이크는 단순한 스토리지이며, 그것만으로는 데이터를 가공할 수 없다. 따라서 분산 데이터 처리 기술을 활용해 데이터 분석에 필요한 데이터를 가공, 집계하고, 이것을 데이터 마트로 추출한 후에 데이터 분석을 진행할 수 있다.


데이터 분석 기반을 단계적으로 발전시키기 : 팀과 역할 분담, 스몰 스타트와 확장

데이터 분석에 필요한 기술은 주로 팀을 이루어 작업한다.

시스템의 구축 및 운용, 자동화 등을 담당하는 '데이터 엔지니어'와 데이터에서 가치 있는 정보를 추출하는 '데이터 분석가'는 요구되는 지식과 사용 도구들이 다르다.

 

애드 혹 분석 및 대시보드 도구

애드 혹 분석은 '일회성 데이터 분석'이라는 의미로, SQL 쿼리를 직접 작성해서 일행하거나 스프레드시트에서 그래프를 만드는 것까지 모든 작업이 포함된다. 

수작업으로 데이터 분석뿐만 아니라 정기적으로 그래프와 보고서를 만들고 싶을 때도 있는데, 이때 도입하는 것이 '대시보드 도구'이다.

 

데이터 마트와 워크플로 관리

복잡한 데이터 분석에서는 먼저 데이터 마트를 구축한 후에 분석하거나 시각화하는 것이 좋다. BI 도구를 사용할 때는 데이터 마트가 거의 필수적이며, 데이터 마트 구축은 배치 처리로 자동화되는 경우가 많기 때문에 그 실행 관리를 위해 워크플로 관리 도구를 사용한다.


데이터를 수집하는 목적 : '검색', '가공', '시각화'의 세가지 예

데이터를 모은 후에 무엇을 할 지는 달성하고자 하는 목적에 따라 달라진다.

 

데이터 검색

데량의 데이터 중 조건에 맞는 것을 찾고 싶은 경우가 있다. 데이터 검색에는 너무 많은 시간이 걸려서는 안 되며, 신속하게 검색할 수 있도록 해야 한다. 따라서 시스템에는 실시간 데이터 처리나 검색 엔진을 사용하여 키워드를 찾는 기능이 필요하다.

 

데이터의 가공

업무 시스템의 일부로서 데이터 처리 결과를 이용하고 싶은 경우가 있다. (ex. 웹사이트에서 추천 상품 제안, 센서 비정상 데이터 감지)

따라서 필요한 데이터를 계획적으로 모아 데이터 파이프라인을 설계한다.

데이터의 가공에는 자동화가 필수적이므로 워크플로 관리를 도입하여 시스템을 구축한다.

 

데이터 시각화

데이터를 시각적으로 봄으로써 알고 싶은 정보를 얻는 경우가 있다. BI 도구 등으로 그래프를 만들고 의사 결정에 도움이 되도록 하는 경우이다. 이 책에서는 주로 '데이터의 시각화'를 우선 과제로 하고, 특정한 데이터 분석 환경의 정비 및 데이터 마트를 구축하는 파이프라인의 자동화를 다룬다.


확증적 데이터 분석과 탐색적 데이터 분석

일반적으로 데이터 분석이란 가설을 세우고 그것을 검증하는 '확증적 데이터 분석'과 데이터를 보며 그 의미를 읽어내려고 하는 '탐색적 데이터 분석'으로 나눌 수 있다.

 

이 책에서는 탐색적 데이터 분석의 프로세스를 모두 '데이터 탐색'이라고 하고, 대화식으로 데이터를 집계하여 시각화하기 위한 환경을 만든다. 확증적인 데이터 분석에 대해서는 설명하지 않으며, 데이터 파이프라인을 자동화하는 부분까지 다루게 된다.

728x90

'AI & 빅데이터 > [Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글

[책정리] 빅데이터를 지탱하는 기술 : 2-1. 크로스 집계의 기본  (0) 2022.05.23
[책정리] 빅데이터를 지탱하는 기술 : 1-4 BI 도구와 모니터링  (0) 2022.05.04
[책정리] 빅데이터를 지탱하는 기술 : 1-3 스크립트 언어에 의한 특별 분석과 데이터 프레임  (0) 2022.04.26
[책정리] 빅데이터를 지탱하는 기술 : 1-1 빅데이터의 정착  (0) 2022.04.16
[책정리] 빅데이터를 지탱하는 기술 : 목차  (0) 2022.04.16
'AI & 빅데이터/[Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글
  • [책정리] 빅데이터를 지탱하는 기술 : 1-4 BI 도구와 모니터링
  • [책정리] 빅데이터를 지탱하는 기술 : 1-3 스크립트 언어에 의한 특별 분석과 데이터 프레임
  • [책정리] 빅데이터를 지탱하는 기술 : 1-1 빅데이터의 정착
  • [책정리] 빅데이터를 지탱하는 기술 : 목차
kiminae
kiminae
공부한 내용을 정리합니다.
  • kiminae
    데이터 다루는 사람
    kiminae
  • 전체
    오늘
    어제
    • 분류 전체보기 (67)
      • AI & 빅데이터 (6)
        • kafka (10)
        • [Book] 빅데이터를 지탱하는 기술 (12)
      • 알고리즘 (19)
      • 알고리즘 문제풀이 (13)
        • programmers (0)
        • 백준 (1)
        • LeetCode (12)
      • Android (3)
      • Book&Lesson (13)
        • [Lesson] 프로그래머스 커뮤러닝 (Pyth.. (1)
      • 참고한 글들 (1)
      • 컨퍼런스 정리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터엔지니어
    hadoop
    정렬
    개인화추천
    카프카
    ViewModel
    알고리즘
    알고리즘문제
    버블정렬
    BI도구
    리트코드
    파이프라인구축
    Kafka
    빅데이터
    데이터시각화
    leetcode
    sort
    알고리즘풀이
    빅데이터를지탱하는기술
    머신러닝
    릿코드
    추천알고리즘
    Algorithm
    시간복잡도
    트리
    MPP데이터베이스
    정렬알고리즘
    카프카클라이언트
    DP문제
    mvvm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
kiminae
[책정리] 빅데이터를 지탱하는 기술 : 1-2 빅데이터 시대의 데이터 분석 기반
상단으로

티스토리툴바