Hadoop과 Spark를 책으로 공부하고 있던 중에 빅데이터 관련하여 감이 안 잡히고, 개념 등을 제대로 알지 못한 것을 깨달았다.
기술을 본격적으로 공부하기 전에, 기초를 잡기 위해 꽤 추천받았던 '빅데이터를 지탱하는 기술' 책을 읽기로 결정하였다.
이 책을 아직 챕터 1밖에 읽진 않았지만, 읽기 참 잘 했다는 생각이 든다.
이전에는 데이터 마트, 데이터 웨어하우스, 파이프라인, 데이터 레이크 등등을 알지 못했는데,
해당 책의 챕터1 만을 통해 빅데이터란 무엇이고, 어떤 목적을 위해 구축되고, 시스템/프로세스들의 구성 등의 개념을 명확히 알게되었다.
(참고로 그림구성과 설명이 정말 이해하기 쉽도록 기술되어 있다. 추천 별 5개 ⭐⭐⭐⭐⭐)
목표는 하루 당 챕터 하나씩 읽고 정리하여 빠르게 기초를 잡은 뒤, 다시 기술 공부로 돌아가는 것이다.
아래 정리는 후에 개념 등을 다시 보기 위해 정리한 글이다.
Chapter 1 | 빅데이터의 기초 지식
▷ 독서 시간 : 1시간 10분~30분 정도 (이해하며 줄 그으며 읽느라고 꽤 걸렸지만, 블로그 정리한 시간보다는 훨 짧게 걸렸다...)
#️⃣ Hadoop과 NoSQL 위치 관계
빅데이터의 기술로 가장 먼저 예로 들 수 있는 것은 'Hadoop'과 'NoSQL'이다.
웹 서버 등에서 생성된 데이터는 처음에는 RDB와 NoSQL등의 텍스트 데이터에 저장됨. 그 후 데이터의 분산처리를 가능케 하는 Hadoop으로 모든 데이터가 모이고 여기서 대규모 데이터 처리가 실행된다.
#️⃣ Hive의 등장
SQL과 같은 쿼리 언어를 Hadoop에서 실행하기 위한 소프트웨어
#️⃣ NoSQL이란
RDB의 제약을 제거한 데이터 베이스의 총칭으로, '키 밸류 스토어', '도큐멘트 스토어', '와이드 칼럼 스토어' 등의 종유가 있다. RDB보다 빠른 읽기/쓰기 속도와 분산 처리에 뛰어나다는 특징을 갖고 있음
#️⃣ NoSQL과 Hadoop의 조합
NoSQL에 데이터를 기록하고 Hadoop으로 분산 처리하는 흐름이 2011년 말에 정착하여 2012년부터 일반에 널리 퍼기게 됨
#️⃣ 빅데이터 키워드란?
분산 시스템의 발전에 따라 기존의 데이터 웨어하우스 제품을 사용하는 경우에도 Hadoop을 사용하는 경우가 증가함.
Hadoop의 도입을 기술적으로 지원하는 비지니스 성립하게 되는데, 이때부터 사용하게 된 키워드가 '빅데이터'이다.
* 기존 데이터 웨어하우스(엔터프라이즈 데이터 웨어하우스)는 대량의 데이터를 처리할 수 있지만, 확장이 어렵다는 단점이 있음.
그렇기에 많은 데이터의 처리는 Hadoop에 맡기고, 비교적 작은 데이터 or 중요한 데이터만 데이터 웨어하우스에 넣는 식으로 구분하게 됨
추가로 빅데이터 기술이 기존의 데이터 웨어하우스와 다른 점은 다수의 분산 시스템을 조합하여 확장성이 뛰어난 데이터 처리 구조 즉, 데이터를 가공해 나간다는 점이다.
#️⃣ 스몰데이터란
스몰데이터는 빅데이터와의 비교로, 기존 기술을 이용하여 취급할 수 있는 작은 데이터를 말한다. 한 대의 노트북에서 처리할 수잇는 데이터라 볼 수 있다.
#️⃣ 데이터 디스커버리와 BI 도구
BI도구는 예전부터 데이터 웨어하우스와 조합되어 사용된 경영자용 시각화 시스템이다.
데이터 디스커버리는 데이터 웨어하우스에 저장된 데이터를 시각화 하려는 방법이다. 그래서 데이터 디스커버리는 '셀프서비스용 BI 도구'로 불린다.
#️⃣ 데이터 파이프라인 (Data Pipeline)
데이터 수집 ~ 워크플로 관리까지를 말하며, 일반적으로 차례대로 전달해나가는 데이터로 구성된 시스템을 말한다.
① 데이터 수집
데이터 파이프라인은 데이터를 모으는 부분부터 시작. 데이터 형태는 서비스에 따라 로그파일, 이벤트 데이터, 센서 데이터 등 다양하다.
데이터 전송은 크게 '벌크형'과 '스트리밍 형'이 있다.
- 벌크형 Vs 스트리밍 형 → "스트림 처리"
- 벌크 : 이미 어딘가에 존재하는 데이터를 정리/추출
- 스트리밍 : 차례차례로 생성되는 데이터를 끊임 없이 계속해서 보내는 방법
기존에는 데이터 웨어하우스에서 주로 다루는 데이터는 벌크형 방법이었는데, 최근에는 모바일 애플리케이션이 증가함에 따라 스트리밍 형 방법이 주류가 되었다. 이에 스트리밍 형 방법으로 받은 데이터를 실시간으로 처리하는 방법을 '스트림 처리'라고 한다.
② 스트림 처리 & 배치 처리
스트림 처리는 예로 과거 30분간 취합한 데이터를 집계하여 그래프를 만들때, 시계열 데이터베이스와 같은 실시간 처리 지향 데이터베이스가 자주 사용된다.
다만 스트림 처리는 장기적인 데이터 분석에는 적합하지 않다.
장기적인 데이터 분석을 위해서는 대량의 데이터를 저장하고 처리하는 분산 시스템이 좋으며, 이에는 정리된 데이터를 효율적으로 가공하기 위한 '배치 처리'구조가 필요하다.
③ 분산 스토리지
수집된 데이터를 여러 컴퓨터와 디스크부터 구성된 스토리지(분산 저장소) 시스템을 말한다.
데이터를 저장하는 방법에는 몇 가지가 있는데 대표적인것이 '객체 스토리지'로, 한 덩어리로 모인 데잍에 이름을 부여해 파일로 저장한다. (Amazon S3 유명함)
추가로 NoSQL 데이터베이스를 분산 스토리지로 사용 가능하다.
④ 분산 데이터 처리
말 그대로 분산 스토리지에 저장된 데이터를 처리하는데 '분산 데이터 처리' 의 프레임워크가 필요함 (MapReduce가 사용되는 부분)
데이터 집계에 있어 SQL을 사용하는것이 일반적인데 SQL로 집계하는 방법으로는 '쿼리 엔진'과 '외부의 데이터 웨어하우스 제품을 이용'하는 방법이 있다.
- 쿼리 엔진 : 분산 스토리지 상의 데이터를 SQL로 집계하기 위한 것으로, Hive가 그 예시이다 .
- 외부의 데이터 웨어하우스 제품 이용 : 이를 위해서는 분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환해야되는데 , 이러한 절차를 ETL 프로세스(Extract-Transform-Load)라고 한다.
⑤ 워크플로 관리
전체 데이터 파이프라인의 동작을 관리하기 위해 사용되는 기술
매일 정해진 시간에 배치 처리를 스케줄대로 실행하고, 오류가 발생한 경우에에는 관리자에게 통지하는 목적으로 사용된다.
#️⃣ 데이터 웨어하우스와 데이터 마트
데이터 수집 ~ 워크플로 관리까지를 말하며, 일반적으로 차례대로 전달해나가는 데이터로 구성된 시스템을 말한다.
⭐ 데이터 웨어하우스 : 대량의 데이터를 장기 보존 가능하게 정리한 저장소
⭐ 데이터 마트 : 필요한 데이터만 추출한 저장소
⭐ 데이터 레이크 : 모든 데이터를 원래의 형태로 축적해둔 저장소
데이터웨어하우스와 데이터 레이크에 따라 데이터 파이프라인 구성도가 다른데, 아래는 책의 그림을 참고하여 정리한 구성도 및 설명이다.
#️⃣ 애드 혹 분석과 대시보드 도구
애드 혹 분석이란 '일회성 데이터 분석'이라는 의미로, 자동화등은 고려하지 않고 수작업으로 데이터를 집계하는 것을 의미한다.
에드 혹 분석에서는 데이터 마트를 만들지 않고 데이터 레이크 나 데이터 웨어하우스에 직접 연결하는 경우가 많아, 대화형 분석 도구를 사용한다.
대시보드 도구란 정기적으로 그래프와 보고서를 만들때 사용하는 도구로, 데이터 마트가 없어도 동작하도록 설계되어있다. 설정한 스케줄에 따라 데이터 레이크와 데이터 웨어하우스에 접속해 쿼리를 실행하고 결과를 그래프로 생성한다.
#️⃣ 데이터 마트의 필요성
1. 데이터의 시각화
데이터를 수집하는 목적이 데이터 시각화라면, 통계 분석 소프트웨어나 BI도구 등으로 그래프를 만든다.
시각화를 고속화하기 위해서는 데이터 마트가 필요하다.
2. 자동화
데이터 마트를 만드는데는 시간이 걸리지만, 한 번 만들면 어떤 테이블이라도 자유롭게 만들들고 BI도구로부터 읽어들일 수 있다.
#️⃣ 데이터 프레임
표 형식의 데이터를 추상화한 객체로, 파이썬을 등의 스크립트 언어를 사용하면 데이터 프레임을 사용해서 테이블 형식의 데이터를 처리할 수 있다.
위 글은 책 '빅데이터를 지탱하는 기술'을 읽고 정리한 글입니다.
'#️⃣ 책 리뷰' 카테고리의 다른 글
[책 리뷰] 데이터 파이프라인 핵심 가이드 - 핵심 내용 정리 (0) | 2023.11.06 |
---|---|
[책 정리] 빅데이터를 지탱하는 기술 - CH2 (1) (0) | 2022.10.09 |
[클린코드] 1•2장_의미있는 이름 (0) | 2021.12.15 |