개발/Data

[빅데이터를 지탱하는 기술] 빅데이터 입문기 #2

lanace 2020. 12. 30. 04:37

 

첫번째 챕터에선 다음과 같은 내용에 대해서 알아볼 것이다.

  • Hadoop과 NoSQL 데이터베이스의 역할과 데이터 웨어하우스를 중심으로 한 기술과의 차이?
  • 데이터 파이프라인?
  • 대화형 데이터 처리
  • 스프레드시트와 BI 도구를 사용해 데이터의 변화 모니터링

 

배경 빅데이터의 정착

과거부터 데이터에 대한 처리는 항상 있었다. 단, 처리 속도와 방법에 문제때문에 하지 못하고 있었다.
지금은 이러한 문제가 해결되었기 때문에 빅데이터가 세상에 나오게 되었다.

 

빅데이터 기수의 요구 - Hadoop과 NoSQL

기존의 RDB로 취급할 수 없을정도의 데이터가 쌓이게 되었다. 

 

Hadoop - 다수의 컴퓨터에서 대량의 데이터 처리

여러대의 컴퓨터를 관리하는 프레임워크

구글의 분산처리 프레임워크인 MapReduce를 참고하여 개발됨

초기엔 Java로 프로그래밍 해서 데이터 처리를 해야했다.

이후에 Hive라는 쿼리언어를 통해 데이터를 다룰 수 있게 되었음

 

NoSQL - 읽기/쓰기 분산 처리가 강점

기존 RDB의 문제를 해결하기 위해 여러 NoSQL이 등장.

  • Key-Value 기반
  • JSON 같은 문서 저장
  • 높은 확장성을 제공하는 와이드 칼럼 스토어
  • 등등...

각각의 목표에 따라 개발됨.

RDB보다 읽기 쓰기가 빠르고, 분산처리에 강하다는 특징이 있음

온라인으로 접속하는 데이터베이스

 

Hadoop과 NoSQL의 조합 - 현실적인 비용으로 대규모 데이터 처리 가능

과거엔 비용이라는 현실적인 문제가 있었음, 기술 부족.

 

 

분산 시스템의 비즈니스 이용 개척 - 데이터 웨어하우스와 공종

사실 이전에도 엔터프라이즈 데이터 웨어하우스 (or 데이터 웨어하우스)를 도입해서 분석하고 있었음

DW의 장점은 대량의 데이터 처리가 가능함

단점은 안정성을 위해 SW와 HW가 합쳐진 appliance장비로 제공됨

따라서 데이터 용량 증설이 불편함. 확장성이 떨어짐

⇒ 빠르게 데이터를 처리해야 되는것은 Hadoop, 중요한 정보는 데이터 웨어하우스에 보관

 

 

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

클라우드 서비스와 데이터 디스커버리로 가속하는 빅데이터의 활용

클라우드의 보금을 통해 빅데이터 활용이 커짐

분산처리를 위해 여러대의 컴퓨터를 준비하기 어려웠는데, 클라우드가 이를 해결해줌

 

 

스몰데이터 vs 빅 데이터?

한대의 컴퓨터에서 충분히 처리 가능한 데이터를 스몰 데이터라 함 스몰 데이터, 빅데이터 모두 단순한 데이터이며 크기의 차이다.

하지만 데이터가 증가할수록 처리 속도는 차이를 보인다.

이를 얼마나 효율적으로 처리하느냐가 중요한 문제이다.

빅 데이터와 스몰 데이터

 

 

데이터 디스커버리의 기초 지식 - 셀프 서비스용 BI 도구

데이터 디스커버리란 저장된 데이터를 시각화하여 보기위한 기술이다.

대화형으로 데이터를 시각화하여 가치있는 정보를 찾으려고 하는 프로세스를 말한다.

효율과 편리성을 갖추고 있으며, 기술적 지식이 낮더라도 사용할 수 있음

 

빅데이터 시대의 데이터 분석 기반

빅데이터와 DWH의 차이는 다수의 분산 시스템을 조합하여 확장성이 뛰어난 데이터 처리 구조를 만드는 것이다.

 

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

⇒ 분산 시스템을 활용해 데이터를 순차적으로 가공해 가는 일련의 구조이다.

 

데이터 파이프라인 - 데이터 수집에서 워크플로 관리까지

일반적으로 차례대로 전달해나가는 데이터로 구성된 시스템을 데이터 파이프라인 이라고 한다.

어디서 데이터를 수집하고, 무엇을 실현하고 싶은지에 따라 달라짐

 

데이터 수집 - 벌크형과 스트리밍 형의 데이터 전송

데이터를 모으는것부터 시작이다.

ex) 로그, 결제정보, 파일 등...

데이터 전송 방법은 두가지이다.

  • 벌크 형
  • 스트리밍 형

벌크형 데이터와 스트리밍형 데이터 처리 프로세스

 

벌크형

  • 어딘가에 존재하는 데이터를 정리해 추출하는 방법
  • DB와 파일서버 등에 정기적으로 데이터를 수집하는데 사용

 

스트리밍 형

  • 끊임없이 생성되는 정보를 보내는 방법
  • 모바일이나 임베디드 장비 등에서 많이 사용됨

 

스트림 처리와 배치 처리

기존의 벌크형에서 점차 스트리밍 형으로 넘어가고 있음

스트리밍 형을 위해서 스트림 처리가 중요해짐

스트림 처리는 실시간 데이터 처리에 강점이 있음

장기 데이터는 적합하지 않음.

 

분산 스토리지 - 객체 스토리지, NoSQL 데이터베이스

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

분산 스토리지는 여러 컴퓨터와 디스크로 구성된 스토리지 시스템이다.

객체 스토리지란 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장한다 (ex. S3)

 

 

분산 데이터 처리 - 쿼리 엔진, ETL 프로세스

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

빅데이터를 SQL로 집계할때 2가지 방법이 있다.

  1. 쿼리 엔진의 도입 Hive나 대화형 쿼리 엔진과 같은 언어 도입

  2. ETL 프로세스 외부 데이터 웨어하우스로 변환

     

 

 

워크 플로 관리

전체 데이터 파이프라인의 동작을 관리하기 위해 워크플로 관리 기술이 활용된다.

매일 정해진 시간에 배치 처리를 스케줄대로 실행

오류가 나면 관리자에게 통지

데이터 흐름이 복잡해져서 워크플로가 이를 관리

전체 흐름을 파악하기에 좋음

장애 발생 대처와 재실행 로직도 포함시켜야함

 

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

데이터 웨어하우스를 구축하는 파이프라인의 기본형에 대해 알아보자.

 

 

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

중요한 데이터를 모아둠

소량의 데이터를 자주 읽고 쓰는데엔 비효율적

데이터 소스에서 로우 데이터를 가져오는 ETL 프로세스를 통해 데이터를 로드하고, 이를 저장한다.

이후 데이터 분석등의 목적으로 사용할때는 직접 데이터 웨어하우스에 접근하는게 아니라 필요 데이터만 추출하여 데이터 마트를 구축한뒤 데이터 마트를 통해 시각화 하여 본다.

⇒ 데이터 웨어하우스는 중요한 데이터를 처리하기 때문에 과부하를 주는 작업은 피해야 하기 때문

데이터 마트는 시각화의 목적에 최적화 되어 테이블을 구성한다.

 

 

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

  • ETL 프로세스가 복잡해짐
  • 웨어하우스에 Row 데이터를 그대로 저장할 수 없음
  • 일단 어딘가에 저장하고, 나중에 이를 정리해서 웨어하우스던 데이터 마트에 저장하기로 함.

⇒ 이 어딘가가 데이터 레이크 이다.

CSV나 JSON과 같은 텍스트 파일이던 모든 데이터를 데이터 레이크에 넣어두고, 나중에 가공한다.

데이터 레이크는 단순 스토리지의 역할을 한다.

 

 

 

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

이러한 데이터 분석은 주로 팀 단위로 이루어지는데, 분류하자면 다음과 같다.

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

 

 

애드 훅 분석 (ad hoc analysis)

시작단계에 수작업으로 데이터를 집계하여 분석하는것

일회성 데이터 분석

SQL 쿼리를 작성해 실행하던가, 스프레드시트를 사용하는것

데이터마트를 만들지 않고, 직접 데이터 웨어하우스나 레이크에 붙이는 경우도 있음

정기적인 그래프나 보고서를 만들고 싶을땐 대시보드 도구를 이용하기도 한다.

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

복잡한 데이터 분석에는 데이터 마트를 구축한 후에 분석하거나 시각화 한다.

Bi도구를 사용하는 경우엔 속도때문에 데이터마트가 필수적이다.

데이터마트는 보통 배치로 자동화를 많이 하고, 이를 관리하기 위해 워크플로 관리 도구를 활용한다.

이렇게 되면 엔지니어링 작업이 많아진다.

데이터를 수집하는 목적 - 검색, 가공, 시각화

데이터 검색

대량의 데이터중 조건에 맞는 정보를 찾고 싶은 경우

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

데이터 가공

데이터 처리 결과를 이용하고 싶은 경우

필요 데이터를 계획적으로 모아 데이터 파이프라인을 설계

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

데이터 시각화

데이터를 시각적으로 봄으로써 알고싶은 정보를 얻는 경우

빠르게 하려면 데이터 마트도 필요

정답이 없음

⇒ 어떤 목적인지에 따라 시스템 구성이 달라짐

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

기간계 시스템 비즈니스 근간에 관련된 중요한 시스템으로, 정지되면 업무가 멈춘다. 따라서 테스트와 신중하게 운용

정보계 시스템 사내 커뮤니케이션과 의사 결정을 위한 시스템 정지되어도 영향이 제한되어있음. 운영 정책이 느슨

⇒ 이 둘이 섞이는걸 주의해야함. 데이터 분석은 일반적으로 정보계 시스템을 주로 다룸

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

확증적 데이터 분석

가설을 세우고 이를 검증하는 분석

통계학적 모델링에 의한 데이터 분석

탐색적 데이터 분석

데이터를 보면서 그 의미를 읽어내는 분석

데이터를 시각화하여 사람이 분석

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

 

(별첨) 데이터 파이프라인의 큰 흐름은 변하지 않는다.

빅데이터 구축에는 여러가지 선택지가 있지만 큰 흐름은 시간이 지나도 변하지 않는다.

그 기준은 다음과 같다.

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

 

데이터를 모으고, 데이터를 가공해서, 시각화 도구까지 사용하는것.

⇒ 결국엔 워크플로의 관리가 중요해지고 있음