Today I Learned/데이터 엔지니어링

1장 - 빅데이터 기초 (빅데이터를 지탱하는 기술 정리를 시작하며)

하나719 2021. 1. 8. 10:33
반응형

배경

데이터를 추출하고, 가공해서 분석을 통해 비즈니스 인사이트를 만들어낼 때 당연하게도 데이터가 필요하다.

고객의 주문 정보, 어플리케이션 사용 기록 등 매 순간 발생하는 데이터들을 어떻게 효율적으로 쌓고 처리하는가가 분석 단계에 선행되어야 한다. 이 영역을 데이터 엔지니어링 영역이라고 부를 수 있다.

데이터가 쌓이고 흐르는 전체적인 구조를 조금 더 깊이 있게 이해하고 활용하고자 '빅데이터를 지탱하는 기술' 이라는 책을 읽고 정리해보려고 한다. 


[책 참고 링크]

 

빅데이터를 지탱하는 기술

다양한 IT 기술의 집합체 빅데이터, 그 기술의 내부를 파헤친다. 데이터 처리 과정에 사용되는 소프트웨어와 데이터베이스, 프로그래밍 언어와 시각화 도구 등의 특징을 정리하여 데이터를 효율

www.aladin.co.kr

빅데이터의 기술 개요

이 책에서 다루는 '빅데이터 기술' 이란 분산 시스템을 활용하면서 데이터를 순차적으로 가공해 나가는 일련의 구조이다.

전체적인 개요를 살펴보고 뒤에서 하나하나 자세히 다룰 예정이다.

 

1) 데이터 파이프라인

어디에서 데이터를 수집하여 무엇을 실현하고 싶은지에 따라 변화한다.

처음에는 간단한 구성으로도 끝나지만, 하고 싶은 일이 증가함에 따라 시스템은 점차 복잡해지고 다양하게 조합할 수 있다.

한가지의 방법만 존재하는 것이 아니고, 회사마다 데이터 양, 종류등에 따라 다른 시스템을 활용해서 조합하여 데이터 파이프라인을 만들 수 있다. 

빅데이터를 위한 데이터 파이프라인 

 

2) 데이터 수집

데이터의 형태는 크게 두가지로 수집된다.

  • 벌크(bulk)형:어딘가에 존재하는 데이터를 정리해 추출 
    • 거래처 데이터, 매출 데이터 등
  • 스트리밍(streaming)형: 차례차례 생성되는 데이터를 끊임없이 계속해서 보내는 방법 
    • 어플리케이션 내 로그 데이터, 임베디드 장비 데이터 등

3) 스트림 처리와 배치 처리

  • 스트림 처리 (stream processing): 모바일 어플리케이션 등에서 발생하는 스트리밍 형 데이터를 실시간으로 처리하는 것
  • 배치 처리(batch processing): 어느정도 정리된 데이터를 효율적으로 일괄 처리하는 것

스트림처리는 실시간으로 발생하는 엄청나게 많은 양의 데이터를 다루기 때문에 장기적인 데이터 분석에는 적합하지 않은 문제가 있다.

장기적인 데이터 분석을 위해서는 보다 대량의 데이터를 저장하고 처리하는 데 적합한 분산 시스템 (파이프라인 이미지 4,5) 가 좋다. 여기에 어느정도 정리된 데이터를 효율적으로 가공하기 위한 '배치 처리(batch processing)' 구조가 필요하다.

 

4) 분산 스토리지

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

  • 객체 스토리지: 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장
  • NoSQL 데이터베이스

5) 분산 데이터 처리

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

  • 쿼리 엔진: 분산 스토리지 상의 데이터를 SQL로 집계하기 위해 도입
  • ETL (Extract-Transform-Load) 프로세스: 분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환
    * ELT 방식 (읽은 후 가공하는 방식) 사용하기도 함

6) 워크플로 관리

전체 데이터 파이프라인의 동작을 관리, 매일 정해진 시간에 배치 처리를 스케쥴대로 실행하고, 오류가 발생 시 관리자에게 통지하는 목적으로 사용

 

7) 데이터 업무 분담

  • 데이터 엔지니어: 시스템의 구축 및 운용, 자동화 등을 담당
  • 데이터 분석가: 데이터에서 가치있는 정보를 추출하여 비즈니스 가치 창출

데이터 업무 단계별 역할

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

  • 애드 혹 분석 (ad hoc analysis): 일회성 데이터 분석, SQL쿼리 직접 작성해서 실행하거나, 스프레드시트에서 그래프 만드는 것 포함하여 모든 수작업을 말함

분석 초기에는 데이터마트 없이 하나하나 수동으로 애드 혹 분석을 하고, 데이터 레이크에서 직접 뽑아 대시보드를 만들기도 한다.

데이터가 복잡하고 커질시록 집계 속도를 높이기 위해 데이터마트를 구축하는 것이 거의 필수적이다. 

데이터 마트 구축은 배치 처리로 자동화 되는 경우가 많기 때문에 워크플로 관리 도구를 사용한다.

 

앞으로 정리할 내용

1. 빅데이터의 탐색

  • 크로스 집계
  • 열 지향 스토리지에 의한 고속화
  • 데이터 마트의 기본 구조

2. 빅데이터의 분산 처리

  • 대규모 분산 처리의 프레임워크
  • 쿼리 엔진
  • 데이터마트의 구축

3. 빅데이터의 축적

  • 벌크형과 스트리밍형의 데이터수집
  • 시계열 데이터의 최적화
  • 비구조화 데이터의 분산 스토리지

4. 빅데이터의 파이프라인

  • 워크플로 관리
  • 배치 형의 데이터 플로우
  • 스트리밍 형의 데이터 플로우
반응형

'Today I Learned > 데이터 엔지니어링' 카테고리의 다른 글

2장 - 빅데이터의 탐색 (1)  (0) 2021.01.24