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

조하운·2023년 4월 7일
0

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

빅데이터의 기술

빅데이터 기술

💡 분산 시스템을 활용하면서 데이터를 순차적으로 가공해 나가는 일련의 구조

데이터 파이프라인

💡 일반적으로 차례대로 전달해나가는 데이터로 구성된 시스템

빅데이터의 파이프라인은 어디에서 데이터를 수집하여 무엇을 실현하고 싶은 지에 따라 변화한다. 처음에는 간단한 구성으로도 끝나지만, 하고 싶은 일이 증가함에 따라 시스템은 점차 복잡해지고 그것을 어떻게 조합시킬지가 문제가 된다.

데이터 수집

—벌크 형과스트리밍 형의 데이터 전송

  • 데이터 파이프라인은 데이터를 모으는 부분부터 시작함
  • 데이터는 여러 장소에서 발생하고 각각 다른 형태를 보임

데이터 전송(data tranfer)의 방법은 크게 다음의 두 가지가 있다.

  • 벌크(bulk) 형
  • 스트리밍(streaming) 형

벌크 형은 이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법

  • 데이터베이스와 파일 서버 등에서 정기적으로 데이터를 수집하는 데 사용됨

스트리밍 형은 차례차례로 생성되는 데이터를 끊임없이 계속해서 보내는 방법

  • 모바일 애플리케이션과 임베디드 장비 등에서 널리 데이터를 수집하는데 사용됨

스트림 처리와 배치 처리

스트림 처리

  • 스트리밍 형 방법으로 받은 데이터는 실시간으로 처리해야 함
  • 시계열 데이터(time-series database)와 같은 실시간 처리를 지향한 데이터베이스 사용
  • 장기적인 데이터 분석에는 적합하지 않은 문제가 있음

****배치 처리****

  • 장기적인 데이터 분석을 위해서는 대량의 데이터를 저장하고 처리할 수 있는 분산 시스템이 적합
  • 어느 정도 정리된 데이터를 효율적으로 가공하는 방법

분산 스토리지

—객체 스토리지, NoSQL 데이터베이스

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

데이터를 저장하는 방법에는 몇 가지 선택이 있다.

  • **객체 스토리지**
    • 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장함
    • 클라우드 서비스인 Amazon S3 이 유명함
  • NoSQL 데이터베이스
    • 애플리케이션에서 많은 데이터를 읽고 쓰는데 성능이 우수함
    • 나중에 데이터 용량을 얼마든지 늘릴 수 있는 확장성이 높은 제품을 선택해야 함

분산 데이터 처리

분산 스토리지에 저장된 데이터를 처리하는 데는 **분산 데이터 처리(distribute data processing)**의 프레임워크가 필요하다.

MapReduce가 사용되어진 것이 바로 이 부분으로 데이터양과 처리의 내용에 따라 많은 컴퓨터 자원이 필요하게 된다.

분산 데이터 처리의 역할

  • 나중에 분석하기 쉽도록 데이터를 가공해서 그 결과를 외부 데이터베이스에 저장함

**빅데이터를 SQL로 집계하는 방법**

  1. 분산 스토리지 상의 데이터는 SQL로 집계하기 위해 쿼리 엔진을 사용
  • Hive가 그 한가지 예로, 현재는 그보다도 고속인 ‘대화형 쿼리 엔진’도 개발됨
  1. 외부 데이터 웨어하우스 제품을 사용
  • 분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환
  • 이러한 일련의 절차를 ETL(extract-tranfer-load)프로세스라고 함

데이터 웨어하우스와 데이터 마트

—데이터 파이프라인 기본형

데이터 웨어하우스는 ‘대량의 데이터를 장기 보존하는’ 것에 최적화되어 있음

전형적인 사용 방법으로는 업무 시스템에서 꺼낸 데이터를 하루가 끝날 때 정리하여 쓰고, 이것을 야간 시간대에 집계에서 보고서를 작성

업무 시스템을 위한 RDB나 로그 등을 저장하는 파일 서버는 ****데이터 소스(data source)**** 라고 부름

데이터 소스에 보존된 원시 데이터를 필요에 따라 가공한 후 데이터 웨어하우스에 저장하기 까지의 흐름이 ****ETL 프로세스****라고 ****할 수 있음

데이터 웨어하우스는 업무에 있어서 중요한 데이터 처리에 사용되기 때문에 아무때나 함부로 사용해 시스템에 과부하를 초래하는 것은 곤란하다.

따라서 데이터 분석과 같은 목적에 사용하는 경우에는 데이터 웨어하우스에서 필요한 데이터만을 추출하여 데이터 마트를 구축한다. 데이터 마트는 BI 도구와 조합시키는 형태로 데이터를 시각화하는 데에도 사용한다.

데이터 레이크

💡 임의의 데이터를 저장할 수 있는 분산 스토리지 여러 곳에서 데이터가 흘러 들어오는 ‘데이터를 축적하는 호수’

모든 데이터가 데이터 웨어하우스를 가정해서 만들어지지는 않는다. 우선 데이터가 있고, 나중에 테이블을 설계하는 것이 빅데이터다.

미가공의 원시 데이터를 그대로 저장소에 저장한다는 것이 데이터 웨어하우스와 다른 점

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

—필요한 데이터는 데이터 마트에 정리

데이터 레이크는 단순한 스토리지이며, 그것만으로는 데이터를 가공할 수 없다. 그래서 사용되는 것이 MapReduce와 같은 분산 데이터 처리 기술이다. 데이터 분석에 필요한 데이터를 가공, 집계하고, 이것을 데이터 마트로 추출한 후에는 데이터 웨어하우스의 경우처럼 데이터 분석을 진행할 수 있다.


데이터 분석 기반을 단계적으로 발전시키기

—팀과 역할 분담, 스몰 스타트와 확장

데이터 엔지니어

  • 시스템의 구축 및 운용, 자동화 등을 담당
    • 데이터 수집
    • ETL 프로세스
    • 분산 시스템
    • 워크플로 관리
    • 스크립트 언어
    • SQL
    • BI 도구 …

****데이터 분석가****

  • 데이터에서 가치 있는 정보를 추출
    • 노트북
    • 통계 소프트웨어
    • 머신러닝 …

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

애드 훅 분석

  • 자동화 등을 생각하지 않고 수작업으로 데이터를 집계
  • ‘일회성 데이터 분석’의 의미를 가짐
  • SQL 쿼리를 직접 작성해서 실행하거나 스프레드시트에서 그래프를 만드는 것

****대시보드 도구****

  • 수작업 데이터 분석 뿐만 아니라 정기적으로 그래프와 보고서를 만들 때 사용
  • 일부 대시보드 도구는 데이터 마트가 없어도 동작하도록 설계되어 있음

데이터를 수집하는 목적

데이터 검색

데이터 검색에 너무 많은 시간이 걸리는 것은 의미가 없고, 필요할 때 신속하게 검색할 수 있도록 해야 함

시스템에는 실시간 데이터 처리나 검색 엔진을 사용하여 키워드를 찾는 기능이 필요

데이터의 가공

업무 시스템의 일부로서 데이터 처리 결과를 이용하고 싶은 경우가 있음(웹 상에서 상품 추천, 센서 데이터 활용 등)

목적이 명확하기 때문에 데이터를 계획적으로 모아 데이터 파이프라인을 설계

****데이터의 가공에는 자동화가 필수적임****

SQL이 아닌 프로그래밍 언어를 사용하는 경우도 있음→이 경우 데이터 분석보다는 시스템 개발 영역에 해당

데이터 시각화

통계 분석 소프트웨어나 BI도구 등으로 그래프를 만들고 거기서 앞으로의 상황을 예측해 의사 결정에 도움이 되도록 함

임의의 분석 환경을 갖추고 여러 번 데이터 집계를 반복한다. 시각화를 고속화하려면 데이터 마트도 필요


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

  1. ****확증적 데이터 분석****

    💡 가설을 세우고 그것을 검증
    • 주로 통계학적 모델링에 의한 데이터 분석
    • 통계 분석과 머신러닝 등을 활용
  2. **탐색적 데이터 분석**

    💡 데이터를 시각화하여 사람의 힘으로 그 의미를 파악
    • 탐색적 데이터 분석의 프로세스를 데이터 탐색이라고 함
    • 대화식으로 데이터를 집계하여 시각화하기 위한 환경을 만듬
    • 스크립트 언어를 사용한 데이터 처리와 BI도구를 사용한 데이터 디스커버리 등 활용

스몰 데이터를 다룰 때, 빅 데이터를 다룰 때 등 상황에 맞는 데이터 처리와 분석이 필요함을 인지할 것

profile
| 컴퓨터 비전 | 딥 러닝 | 자율주행 |

0개의 댓글