본문 바로가기
Minding's Reading/빅데이터를 지탱하는 기술

[빅데이터를 지탱하는 기술] 1장 빅데이터의 기초 지식

by Minding 2024. 9. 25.
728x90
반응형

얼마 전 같은 분야를 공부하는 지인에게 책을 하나 추천받았다. 데이터 엔지니어링에 대한 기초에 대해 꼼꼼하게 잘 정리된 책이라는 후기와 함께. 책 제목은 '빅데이터를 지탱하는 기술'이다.

 

이 책은 많은 사람들이 이제는 익숙한 '데이터 분석'에 대해 거의 다루지 않는다. 책의 저자도 '데이터 처리를 어떻게 시스템화하는가에 대한 문제'를 다룬다고 설명한다.

 

데이터 분석에서 80%의 시간이 데이터를 준비하는데 소요된다고 한다. 실제 현장의 목소리를 들어보면, '데이터 과학자로 입사했더니 데이터의 전처리만 주로 하고 있다.'는 하소연이 많다. '데이터 준비'라는 엔지니어링 부분을 효율화하지 않으면 데이터 분석의 수고가 사라지는 일은 없다.

 

 

책에서 인용한 위 내용처럼 데이터 분석에 있어 가장 시간이 많이 걸리는 부분은 데이터를 준비하는 것이다. 많은 사람들이 어떻게 데이터를 잘 분석하고 활용할 지에 대해 관심이 많지만, 정작 분석에 사용할 데이터가 없거나 부정확하면 말짱 도루묵이다.

 

그래서 이 책에서는 데이터 처리 과정 내 사용되는 소프트웨어, DB, 시각화 도구 등에 대한 기초와 함께 전체적인 데이터 처리 과정에 대해 설명하고 정리해 보여준다.

 

이 책은 읽는데에는 파이썬에 대한 지식과, SQL, OS(운영체제), Linux 등의 기본 지식을 필요로 한다. 각 분야에 대해 깊이 알 필요는 없지만 기본 개념까지는 알아야 책을 이해하는 데 도움이 될 듯하다.

 

그리고 이 글은 책을 읽으면서 나름대로의 개념을 정리하는 글이다. 책과 다른 예시를 사용하거나, 어떤 부분은 생략 또는 추가 설명이 들어갈 수 있으니 책과는 내용이 다소 다를 수 있다.

 

 

1장 빅데이터의 기초 지식

 

빅데이터 취급의 어려움

빅데이터는 다루기 어려운 여러 이유가 있지만, 여기서는 두 가지 주요 이유를 제시한다.

  1. 데이터의 분석 방법을 모른다: 데이터를 분석하는 방법을 이해하지 못하면, 데이터를 어떻게 활용할지 방향을 잡기 어렵다.
  2. 데이터 처리에 수고와 시간이 걸린다: 대량의 데이터를 처리하는 데는 상당한 시간과 리소스가 소요된다.

이 책에서는 주로 두 번째 이유에 초점을 맞추고, 빅데이터를 어떻게 효율적으로 실행할 것인가에 대한 내용을 다룬다.


Hadoop과 NoSQL의 등장과 관계

이 책에서 소개된 빅데이터 기술 중 가장 먼저 언급된 것은 Hadoop과 NoSQL이다. 이 둘은 서로 다른 요구를 충족하기 위해 개발되었지만, 깊은 연관성을 가지고 있다.

NoSQL의 특징

NoSQL은 대용량 데이터를 저장하는 데 적합하다. 관계형 데이터베이스(RDB)처럼 엄격한 구조를 요구하지 않아도 되기 때문이다. NoSQL 데이터베이스는 다양한 형태를 가지고 있으며, 대표적인 유형은 다음과 같다.

  • 키-밸류 스토어: 다수의 키와 값을 저장.
  • 도큐멘트 스토어: JSON과 같은 구조를 저장.
  • 와이드 칼럼 스토어: 여러 키를 사용해 높은 확장성을 제공.

NoSQL은 RDB와 비교해 빠른 속도 및 분산 처리가 가능하며, 대규모 데이터 처리에 유리하다.

Hadoop의 특징

Hadoop은 다수의 컴퓨터를 이용해 대량의 데이터를 처리할 수 있는 시스템이다. 초기 Hadoop은 Java를 사용해 데이터를 처리해야 했기 때문에 사용이 복잡했지만, 2009년 Hive가 개발되면서 SQL을 통해 Hadoop에서 데이터를 처리할 수 있게 되었다.


NoSQL과 Hadoop의 결합

NoSQL 데이터베이스와 Hadoop을 결합한 시스템은 매우 널리 사용되고 있다. NoSQL에 데이터를 저장한 후, Hadoop으로 이를 분산 처리하는 방식은 현실적인 비용으로 대량의 데이터를 처리할 수 있게 해준다.


데이터 웨어하우스(DW)와 분산 처리

기존의 데이터 웨어하우스(DW)에서도 빅데이터를 처리할 수 있었다. 그러나 DW는 소프트웨어와 하드웨어 모두 필요하므로, 데이터가 증가할수록 하드웨어의 부하도 커지게 된다. 따라서 대규모 데이터를 Hadoop에서 처리하고, 비교적 작은 데이터만 DW에 저장하는 방식이 주류가 되었다.


클라우드와 빅데이터 활용

빅데이터의 핵심은 여러 컴퓨터에 데이터를 분산 처리하는 것에 있다. 그러나 로컬 환경에서 이를 구현하고 하드웨어를 관리하는 것은 쉽지 않다. 이 때문에 클라우드 서비스가 등장했고, 클라우드를 통해 빅데이터 활용이 더 많이 증가하게 되었다. 더 작은 프로젝트에서도 효율적으로 DW를 구축할 수 있게 되었다.


데이터 시각화와 BI 도구

DW에 저장된 데이터를 시각화하는 방법으로 데이터 디스커버리가 주목받기 시작했다. 이는 BI 도구로 볼 수 있으며, 대규모 기업의 IT 부서에서 사용하던 복잡한 도구들이 이제는 개인도 다룰 수 있을 정도로 단순화되었다.


데이터 파이프라인

데이터 파이프라인은 데이터 수집부터 처리 및 저장까지의 일련의 과정을 자동화한 시스템을 의미한다. 이 파이프라인은 어떤 데이터를 어디에, 어떤 목적으로 사용할 것인지에 따라 변화한다.

데이터 수집 방법

데이터 수집은 크게 벌크(bulk) 형스트리밍(streaming) 형으로 나뉜다.

  • 벌크 형: 이미 존재하는 데이터를 정기적으로 추출해 수집하는 방식(DB나 파일 서버에서 사용).
  • 스트리밍 형: 실시간으로 생성되는 데이터를 실시간으로 수집하는 방식(모바일 앱 데이터 수집).

과거에는 주로 벌크 형을 사용했지만, 최근에는 스트리밍 형이 증가하면서 실시간 데이터 처리와 스트림 처리(스트림 프로세싱)가 중요한 역할을 하게 되었다.


분산 스토리지와 데이터 처리

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

  • 객체 스토리지: 데이터를 하나의 파일로 저장.
  • NoSQL DB: 대량의 데이터를 읽고 쓰기에 유용.

이 데이터를 처리하기 위해서는 분산 데이터 처리 프레임워크가 필요하며, MapReduce가 대표적인 예시다.


빅데이터 SQL 처리와 ETL 프로세스

빅데이터를 SQL로 처리하고 집계하는 방법으로 두 가지 방법이 사용된다.

  1. 쿼리 엔진 도입: Hive와 같은 쿼리 엔진을 통해 SQL 사용.
  2. ETL 프로세스: 데이터를 추출, 변환, 저장하는 과정으로, 외부 DW 제품을 이용.

이와 같은 파이프라인은 워크플로 관리 도구를 통해 관리된다. 대표적으로 Airbnb에서 개발한 Airflow가 있다.


데이터 웨어하우스(DW)와 데이터마트(DM)

DW는 대량의 데이터를 장기적으로 보존하는 데 최적화된 시스템이다. DM(데이터마트)는 DW의 과부하를 방지하고 필요한 데이터만을 추출해 사용하는 소형 데이터 저장소이다. DW와 DM 모두 SQL을 통해 데이터를 처리하며, ETL 프로세스가 필수적으로 사용된다.


데이터 레이크

빅데이터 시대에는 모든 데이터를 DW에 맞춰 저장할 수 없다. 이로 인해 데이터 레이크라는 개념이 등장했다. 데이터 레이크는 임의의 데이터를 저장할 수 있는 분산 스토리지를 의미하며, csv, json 등 다양한 형식의 데이터를 저장할 수 있다.


빅데이터 처리의 두 가지 핵심 요소

빅데이터 처리에서 중요한 두 가지 요소는 다음과 같다.

  1. 저장할 수 있는 데이터 용량에 제한이 없어야 한다.
  2. 데이터를 효율적으로 추출할 수 있는 수단이 있어야 한다.

이 두 가지를 충족하는 시스템을 구축하는 것이 빅데이터 처리의 핵심이다.


데이터 처리 목적에 따른 행동

데이터 수집 목적에 따라 수집 후의 행동도 달라진다.

  1. 데이터 검색: 조건에 맞는 데이터를 빠르게 검색.
  2. 데이터 가공: 업무 시스템에서 데이터를 처리해 결과를 활용.
  3. 데이터 시각화: 통계 분석 및 예측을 위한 시각적 도구 활용.

이러한 목적에 맞게 데이터 파이프라인과 처리 시스템을 설계하고 관리하는 것이 중요하다.

 

728x90
반응형

댓글