데이터 공부/빅데이터 & 하둡

01. 빅데이터를 지탱하는 기술 - 빅데이터의 기초 지식

한소희DE 2021. 6. 1. 18:28

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다.

 

 

 

 

나는 데이터엔지니어를 희망한다.

데이터엔지니어가 되고 싶은 사람으로서, '빅데이터를 지탱하는 기술'을 수차례 읽었던 것 같다.

머릿속에 있는 정보를 작성해 온전히 내 것으로 정보를 습득하기 위해, 한번 정리를 해 보고자 한다.

 

오늘 정리할 내용은 제 1장, 빅데이터의 기초 지식이다. 내가 필요하다거나, 중요하다고 생각되는 부분만 정리하였다. (중간중간 내가 하고픈 이야기도 섞었다 하하)

 

 

 

 

목차

1. 분산 시스템에 의한 데이터 처리의 고속화

2. 빅데이터 기술

3. BI 도구와 모니터링

 


 

1. 분산 시스템에 의한 데이터 처리의 고속화

1-1. 빅데이터 분석은 왜 필요한가

대량의 데이터를 활용해 새로운 가치를 창출하거나 데이터 기반 의사결정을 하기 위해 필요하다

오늘날 빅데이터라는 단어는 매우 익숙해졌지만, 실제로 데이터를 모으고 처리하는 과정에서 수고와 시간이 걸린다. 분석하고자 하는 내용이 있어도, 공수(시간 등)가 많이 든다면 비효율적일 수 있다. 따라서 가능한 한 적은 노력으로 원하는 정보를 얻을 수 있도록 하는 방법론을 데이터 엔지니어로써 많이 고민해보아야 한다.

 

1-2. Hadoop 과 NoSQL은 무엇인가

Hadoop

Hadoop이란, 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템

 

🔥 전통적 데이터웨어하우스를 사용하지 않고 Hadoop을 찾는 이유?

가장 큰 이유는 하둡이 확장성이 뛰어나, 추후 데이터 용량이 늘어도 하드웨어 교체 등이 필요치 않기 때문이다.

 

하둡은 모여진 데이터를 추후에 집계한다. 이는 많은 주옥같은 기능들이 있고, 이는 추후 하나하나 정리를 해 볼 예정이다.

 

 

NoSQL

 

비관계형 데이터베이스, 즉 스키마와 관계가 없는 데이터베이스

이는 RDB(전통적 관계형 데이터베이스)보다 고속으로 읽기, 쓰기가 가능하고 분산 처리에 뛰어나다. 대표적인 종류는 아래와 같다.

 

1. 키밸류 스토어 : 다수의 키와 값을 관련지어 저장

2. 도큐먼트 스토어 : JSON 같은 복잡한 데이터 구조 저장

3. 와이드 칼럼 스토어 : 여러 키를 사용해 높은 확장성 제공

 

 

10여 년 전부터, 이를 조합해 NoSQL 데이터베이스에 기록하여 Hadoop으로 분산처리를 하는 흐름이 정착되기 시작했고, 이런 것들을 활용해 현실적 비용으로 데이터를 처리할 수 있게 됐다.

 

 


 

2. 빅데이터 기술

2-1. 데이터 파이프라인과 간단한 설명 (개요)

 

데이터 파이프라인이란, 차례대로 전달해나가는 데이터로 구성된 시스템을 뜻한다.

 

일반적인 데이터 파이프라인

어디에서 무엇을 수집해 무엇을 실현하고 싶으냐에 따라 파이프라인은 변화한다. 이 파이프라인은 영역이 커질수록 복잡해지고, 데이터 처리의 효율성을 짚는 뼈대기 때문에, 이를 잘 구축하는 것이 중요한 이슈가 된다.

 

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

스트림 처리란? 실시간 데이터를 시계열 데이터베이스에 저장해 처리하는 방법. 일반적으로 단기적 데이터 처리를 취급

배치 처리란? 어느정도 정리된 데이터를 한 번에 저장해 처리하는 방법. 일반적으로 장기적 데이터 처리를 취급

 

2) 분산 스토리지

수집된 데이터가 저장되는 곳. 여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템이며, 일반적으로 객체 스토리지로 한 덩어리로 모인 데이터에 이름을 부여해 파일로 저장. 이 분산 스토리지를 NoSQL로 쓰기도 하는데, 이땐 반드시 확장성이 좋은 것으로 사용해야 한다.

 

객체 스토리지란?
구조화되지 않은 데이터의 대량 저장을 위한 데이터 스토리지 아키텍처로서, 각 데이터 조각을 하나의 객체로 개별 저장소에 보관하며 메타데이터와 고유 식별자를 함께 저장하므로 데이터 액세스와 검색이 용이

 

3) 워크플로 관리

스케쥴에 따라 데이터 처리를 수행하고 이슈가 생기면 관리자에게 통지하며 관리하는 것

빅데이터 처리 시 생성되는 오류들을 처리 혹은 재처리하는 기능을 반드시 만들어놓거나 알람을 조정해서 워크플로를 관리해주어야 한다. 데이터 처리를 자동화해서 장기적 운용을 위해서는 안정된 워크플로 관리가 중요하다.

 

 

 

 

2-2. 데이터 웨어하우스와 데이터 마트

데이터 웨어하우스란, 대량의 데이터를 장기 보존할 수 있는 공간

원시 데이터를 추출해, 필요에 따라 가공한 뒤 SQL을 활용해 데이터 웨어하우스에 저장하는 흐름을 ETL(Extract - Transform - Load) 프로세스라고 한다.

※ SQL이 아닌 프로그래밍 언어를 사용하기도 함

 

데이터 마트란, DW에서 SQL을 활용해 부서적 관점에서 필요한 유형의 데이터를 추출해 구축하는 것

※ SQL이 아닌 프로그래밍 언어를 사용하기도 함

데이터 마트는 일반적으로 Tableu와 같은 BI 도구와 조합해 데이터를 시각화하기도 한다. 빠른 시각화를 위해서는 DM이 있으면 좋다. (데이터 집계 및 처리 시간이 단축되므로)

 

 

 

2-3. 데이터 레이크와 데이터 마트

데이터 레이크란, 데이터를 원형으로 우선 축적하는 곳

데이터를 받게 되면, 데이터를 있는 그대로 DW에 넣지 못하는 경우가 발생하기도 한다. 따라서 데이터를 원래의 형태로 축적해 나중에 필요에 따라 가공할 수 있는 선 수집 작업이 필요하다. 이것이 DL의 존재 이유다. DL은 분산 스토리지를 활용한다. S3이나 HDFS가 될 수 있겠다.

 

데이터 레이크에서 데이터 마트로 바로 넘어가는 경우도 있지만, 일반적으로 데이터 레이크는 DW를 보완하는 작업이지 완벽히 대체하기는 어렵다고 본다.

 

데이터 레이크에 수집된 것을, MapReduce를 활용해 분산 데이터 처리를 수행해 DW(or DM)로 넘긴다.

 

 

 

2-4. 확증적 데이터 분석과 탐색적 데이터 분석

확증적 데이터 분석 탐색적 데이터 분석
일반적으로 가설을 세우고, 그것을 검증하는 분석 데이터를 보며 그 의미를 읽어내려고 하는 분석

이것을 일반적으로, 데이터 처리 및 BI 도구 활용을 통한 데이터 디스커버리라고 한다.

 

 


 

 

3. BI 도구와 모니터링

모니터링은 왜 필요할까?

동일한 집계를 반복해 추이를 점차 관측하다 보면, 현황을 파악할 수 있기 때문이다.

작년 회사 현장실습 했던 때를 떠올려보면, 월간 지출 보고서나 KPI 수립 시, 데이터를 활용했던 것으로 기억한다. 데이터에 근거한 의사결정 및 지표 설정이 가능하다.

 

 

그렇다면 스프레드 시트를 활용하면 될 것 아닌가?

스프레드 시트는, 어디선가 숫자를 계속 계산해야 하는데, 배치 처리 워크플로 자동화를 통해 이를 손쉽게 해결할 수 있다. 제일 좋은 것은 아무래도 BI 툴(태블로와 같은)을 활용하면 이 작업이 훨씬 수월해진다.
(태블로를 배워야 할 이유 +1)

 

태블로 등의 BI 도구를 결합해 데이터를 대시보드화 하려면,

 

1. BI 도구에서 직접 데이터 소스 접속

2. 데이터 마트를 BI에서 오픈

3. 웹 BI에 CSV 파일 업로드

 

의 방법이 대표적인데, 2번은 어떤 테이블이라도 자유롭게 만들 수 있고 지원하지 않는 데이터 소스에 대한 우려가 없지만 데이터 마트 설치와 운영에 시간이 걸린다. 그럼에도, 변수를 줄이기 위해서 2번을 범용적으로 사용한다고 한다.

(해상물류 프로젝트에도 이 방법을 수행할 예정이다)