빅데이터 플랫폼은 데이터의 수집 처리 분석 과정에 필요한 기술적 도구들을 유기적으로 구성한 환경으로 하둡과 같은 ecosystem이 대표적입니다. 빅데이터 수집, 분류, 분석 및 시각화의 단계까지 주요 기술요소들의 특징들을 정리해보겠습니다.
빅데이터 플랫폼 개념
빅데이터 처리 절차는 아래 그림과 같이 수집 > 저장 > 탐색/처리 > 분석 > 프리젠테이션(가시화)가 반복적으로 진행됩니다.
이와 같은 데이터 처리 과정은 기존의 기업 내 데이터 분석과정과 크게 다르지 않습니다. 하지만 분석 데이터가 빅데이터(3V)의 특징을 가질 경우보다 적합한 플랫폼과 툴의 사용이 필요할 수 있습니다. (e.g 분산 DB, 머신러닝 등)
구분 | 기술의 종류 |
데이터 수집 | – ETL, ETT (데이터 정제, 변환 기능) – 크롤링, 스크래핑 |
데이터 저장 | – 분산파일 시스템 (HBase 등) – NoSQL (비정형 데이터 관리) – 인메모리 컴퓨팅 (실시간 처리) |
탐색/처리/분석 | – 머신러닝, 통계분석 – SQL 프로세싱 – 병렬, 분산 프로세싱 |
프리젠테이션(가시화) | – Python matplot, R 도구 – 대시보드 및 리포트 도구 |
예를들어 데이터 수집은 기업 내, 외부의 데이터를 모으는 것으로 빅데이터의 특징을 가진 Data를 취득하는 단계입니다. 하둡은 위와 같이 구분된 기능들을 유기적으로 결합하여 쉽게 제어할 수 있도록 구성한 플랫폼으로 이는 다음 시간에 자세히 알아보겠습니다.
빅데이터 주요기술
1. 데이터 수집
ETL, ETT
업무용 시스템이나 외부의 데이터를 분석 처리하기 위해 필요한 데이터를 ‘추출’, ‘가공’, ‘전송’하는 과정을 말합니다. 비정형 데이터의 경우 Sqoop, Flume과 같은 기술로 처리하는 것이 효과적입니다.
웹 크롤링 / 스크래핑
인터넷에서 웹 페이지나, SNS 데이터를 수집하는 방법으로 크롤링 봇 등을 이용해 웹 문서나 댓글 정보를 크롤링, 정제 및 DB 저장까지의 처리를 말합니다.
2. 데이터 저장
하나의 데이터세트가 작게는 테라바이트(TB)에서 페타 바이트(PB) 까지 큰 대용량 데이터의 저장은 HDFS와 같은 분산파일 시스템을 활용하면 좋습니다.
또한 이미지나 텍스트 비디오와 같은 비정형 특성의 데이터는 Cassandra, HBASE와 같은 NoSQL 방식의 DB를 사용하며, 대량의 데이터의 실시간 처리를 위해 인메모리 컴퓨팅 기술이 사용되기도 합니다.
3. 데이터 처리/분석
데이터 분석은 크게 통계적 분석과 머신러닝으로 구분할 수 있습니다.
통계적 분석
상관, 회귀와 같은 용어가 어렵게 느껴지지만 사실 개념은 간단합니다. 예를 들어, 기존의 데이터를 기반으로 다른 결과값을 예측하거나 또는 비슷한 군집끼리 분류하는 등의 처리를 말합니다.
- 예) 시험공부를 20시간 한 학생의 평균 점수는 50점이다. 40시간을 하면 몇 점을 맞을 수 있을까?
머신러닝
데이터의 특징과 원하는 결과에 따라 지도, 비지도, 준지도, 강화학습 등으로 분류합니다. 빅데이터가 머신러닝에서 중요한 이유는 이런 학습 방법이 대량의 데이터의 INPUT을 통해 이뤄지기 때문입니다.
일반인에게 잘 알려진 구글의 인공지능 바둑 AI 프로그램인 ‘알파고’는 딥러닝 프로그램의 일종입니다. 이는 DNN 딥러닝 기술을 이용해 수 많은 바둑 기보를(빅데이터) 입력하여 학습한 것으로 알려져 있습니다.
4. 가시화 (Visualization)
분석한 데이터를 사람이 쉽게 이해할 수 있는 그림으로 표현하는 기술로 대표적으로 R 및 파이썬 기반의 matplot이 사용됩니다. 빅데이터 분석을 위한 다양한 무료 인터넷 강의 사이트에 대한 정보는 아래를 참고 바랍니다.
R 언어
다양한 데이터 통계분석과 그래픽을 통해 가시화하는 프로그래밍 언어입니다. 오픈소스로 개발되어 무료로 사용이 가능하며, 윈도/맥/리눅스 등의 다양한 운영체제를 지원합니다.
Matplot (Python)
R 언어가 데이터 과학자들과 같이 전문적인 목적으로 주로 사용된다면 Python 기반의 matplot은 파이토치나 텐서플로 같은 머신러닝 프레임워크와 결합하여 결과를 가시화 해주므로 매우 편리합니다.
그래프의 표현 방식의 위와 같이 도표, 차트, 캔들차트 등 다양한 표현이 가능합니다. 파이썬의 최대 장점은 쉬운 사용법과 다양한 빅데이터 분석 라이브러리가 지원되는 점입니다.
- PyTorch (머신러닝)
- Tensorflow (머신러닝)
- Panda, Numby 데이터 계산
- PyQT GUI 도구
- Jupyter Notebook 웹기반 개발도구
이상으로 빅데이터 플랫폼의 개념과 이를 구성하는 주요 기술에 대해 알아보았습니다. 다음 글에서는 실제 많이 활용되는 하둡, 스파크 등의 플랫폼에 대해 정리해보겠습니다.