오늘은 빅데이터의 여러 가지 단계 중에서도 수집에 관련한 내용을 알아보려고 합니다.



빅데이터에서는 기존 RDBMS로는 방대한 양의 데이터를 처리하는 데 유지보수 비용이 많이 들 뿐만 아니라, 많은 시간과 하드웨어 성능 또한 가장 중요한 비정형 데이터를 처리하는 어려움때문에 잘 쓰이지 않습니다.

 

때문에 기존 RDBMS의 문제를 보완하고 대용량의 데이터를 효과적으로 수집하는 기술들이 무엇이 있는지 자세히 알아보도록 하겠습니다.



*데이터의 흐름은 수집 후 저장이지만 저장소가 없다면 수집기의 동작을 확인할 수 없기 때문에 데이터 저장소 준비가 우선이라고 합니다!!




1. Flume(물 미끄럼틀)


-플럼은 클라우데라에서 2010년에 공개한 오픈 소스 프로그램(로그 수집기)입니다.


-매우 단순한 구조로, 몇가지 설정만으로 구동 가능합니다.

 

-수많은 서버에 분산된 대용량의 로그 데이터를 한곳으로 모을 수 있으며, 안정성과 가용성이 높습니다. 

 

-데이터 흐름


데이터 플로우는 이벤트를 전송하고 수집하는 과정으로 이루어져 있다. agent 하나를 일련의 논리 노드(에이전트)라 칭하고 논리 노드들은 Flume master들에 의해 설정된다.
에이전트는 노드는 일반적으로 로그를 생성하는 곳이며, 로그들을 컬렉터에 보내고 컬렉터에서는 데이터를 모은 후 저장소에 저장한다.

 

에이전트 내부는 Source, Channel, Sink로 구성된다.

Sink는 수집한 데이터를 전송할 대상을 지목하고, Source는 수집할 데이터에 대한 설정이다

Channel은 일시적인 저장소라 생각하면 될 것 같다.

 

*Flume에 대하여 더 정보를 얻고 싶다면 아래 사이트에 들어가 보는 것도 좋은 경험일 것 같다.

http://flume.apache.org/FlumeUserGuide.html

 

 

 

2. Kafka


-카프카는 LinkedIn에서 2010년에 낸 것으로 초기 아파치의 프로젝트입니다.


-실시간 스트리밍 데이터 파이프라인을 안정적으로 시스템 또는 응용 프로그램 간에 데이터를 구축합니다

 

-실시간 스트리밍 응용 프로그램을 변환 또는 데이터의 흐름에 반응합니다

 

-Flume이 push방식이라면 Kafka는 발행-구독(pub- sub)방식입니다.

 

 주요 4개의 API중 Producers API와 Consumers API을 보도록 하겠습니다.

 Producers API는 특정 topicsrecords를 생성한 후 메시지를 카프카 클러스터에 출간합니다.

 Consumers API는 특정 topicsrecords구독하는 소비자가 메시지를 가져가 처리합니다. 

 

-클러스터에서 소비자에게 건네는 과정은 다음 그림과 같습니다

클러스터 안에는 Broker, Zookeeper가 있고, Broker는 topic 기준으로 메시지를 관리합니다. Zookeeper는 이러한 메시지를 분산 처리할 때 사용합니다.

 

 

Flume과 마찬가지로 좀 더 자세하게 알고 싶으신 분은

http://kafka.apache.org 에 접속하여 궁금한 부분을 ctrl+f 해서 찾아보심이 ㅋㅋㅋ
 

 

 

 

 

 

 

 

'Programming > 빅데이터' 카테고리의 다른 글

[빅데이터]수집  (0) 2017.08.10
하둡이란  (0) 2017.07.18
빅데이터란?  (0) 2017.07.09
데이터의 형태  (0) 2017.07.09

블로깅을 하다 좋은 글이 있어 퍼왔습니다.

 

[출처]http://binny.tistory.com/31

 

하둡이 생겨난 이유를 잘 설명한 글 입니다.

 

탄생 배경을 이해하고 쓰는 것이 많은 도움이 될것 같아 퍼왔습니다.

'Programming > 빅데이터' 카테고리의 다른 글

[빅데이터]수집  (0) 2017.08.10
하둡이란  (0) 2017.07.18
빅데이터란?  (0) 2017.07.09
데이터의 형태  (0) 2017.07.09

빅 데이터 이해하기

 

16년에 AI알파고 구글의 무인 자동차가 나오면서부터 “4차 산업혁명이란 단어가 나오기 시작했습니다. 빅 데이터는 4차 산업 혁명으로 가기 위해 필요한 핵심 기반 기술입니다.

 

 

빅 데이터가 필요한 이유?

 

인터넷/ 모바일 시대로부터 지금까지 쌓인 데이터들에서 최근 2년 동안 발생한 데이터가 전 세계 데이터의 80%를 차지한다고 합니다. 이 말은 앞으로 생겨날 데이터의 양은 지금과는 비교가 안 될 정도로 많아질 것이라는 것을 알수 있습니다. 빅 데이터 기술은 이렇게 방대한 데이터들에서 다양한 패턴들을 해석하여 미래를 예측하는 기술이라 볼 수 있겠습니다.

 

 

빅 데이터 기술의 발전

 

처음은 단순 수집, 적재로 활용되었지만 2012년 쯤 부터 수집한 데이터를 분석하기 시작했고 현재는 이러한 분석을 통하여 통찰력과 예측하는 수준까지 올라왔다고 합니다.

 

 

빅 데이터 구현 기술

 

빅 데이터 아키텍처는 역할별로 수집, 적재, 처리 및 탐색, 분석 및 응용이라는 6개의 레이어로 나눌 수 있고, 역할은 다음과 같습니다.

 

단계

역할

수집

-데이터 연동 및 통합

적재

-대용량/실시간 데이터 처리             -분산 파일 시스템 저장

처리

-데이터 선택, 변환, 통합, 축소          -데이터 워크플로 및 자동화

탐색

-대화형 데이터 질의                       -탐색적 Ad-Hoc 분석

분석

-빅 데이터 마트 구성                      -통계 분석, 고급 분석

응용

-보고서 및 시각화                          -분석 정보 제공

 

 

분석 단계에서 현재 Machine Learning, Data Mining이 쓰인다고 생각하시면 될 것 같습니다.

 

각 단계를 자세히 보면 다음과 같습니다.

 

수집 기술

 

빅 데이터 수집 기술은 기존 시스템에서 보다 더 크고 다양한 형식의 데이터(정형 데이터, 비정형 데이터 http://monny.tistory.com/6)를 빠르게 처리하는 것입니다.

   

수집 기술을 깊게 이해하자면 데이터 수집에는 존 시스템에서 데이터를 얻는 것 vs 실시간 스트림 수집으로 나눌 수 있습니다.

 

기존 시스템의 다양한 인터페이스로부터 정형, 비정형 데이터를 수집하는 것이며, 특히 비정형 데이터를 수집할 때는 크롤링, NLP 기술이 선택적으로 작용한다, 실시간 데이터는 CEP, ESP 기술이 적용됩니다.

 

빅 데이터의 수집 관련 소프트웨어로는 Flume, Fluented, Scribe, Logstash, Chunkwa 이 있고, 실시간 스트림 데이터 처리를 위한 StormEsper도 사용한다고 합니다.

 

 

 

적재 기술

 

빅데이터 적재 기술은 수집한 데이터를 분산 스토리지에 영구 또는 임시로 적재하는 기술입니다.

 

분산 저장소로 크게 4가지 유형이 있습니다.

 

1. 대용량 파일을 영구적으로 저장하기 위한 하둡

2. 대규모 메시징 데이터를 영구 저장하기 위한 NoSQL(몽고DB,카산드라)

3. 대규모 메시징 처리 결과를 고속으로 저장하기 위한 메모리 캐시

4. 대규모 메시징 데이터를 임시 저장하기 위한 메시지 지향 미들웨어

 

이 저장소들에는 각자 다른 성격의 데이터들이 저장됩니다. 예로 실시간 대량으로 발생하는 메시지 데이터는 1번에 저장되면 파일이 많아져 효율성이 떨어지기 때문입니다. 따라서 빅데이터 적재 기술에서 적재되기 전에 적절한 설계로 어디에 저장해야 할지 판단해야 합니다.

 

 

 

처리/탐색

 

빅데이터 처리/탐색 기술은 이렇게 저장소에 적재된 데이터를 분석에 활용하기 위해 데이터를 정형화 및 정규화 하는 기술입니다.

 

 

처리/탐색 과정은 다음과 같습니다

 

 

데이터를 발굴하기 위해 적재된 데이터를 지속적으로 관찰하고 탐색(SQL on Hadoop)

데이터를 선택, 변환, 통합, 축소(애드혹 쿼리)

위의 과정들을 워크플로(workflow)로 프로세스화해서 자동화

워크플로 작업이 끝난 데이터들을 DW로 옮김

DW로 옮겨진 데이터들을 측정 가능한 구조로 만듬

 

 

분석&응용

 

분석/응용 기술은 대규모 데이터로부터 새로운 패턴을 찾고, 그 패턴을 해석하여 통찰력을 확보하기 위한 단계입니다.

 

위에 말했던 바와 같이 최근 2년 동안 엄청난 양의 데이터가 생겨나고 , 앞으로 생길 것으로 예상됩니다. 하지만 기존에 사용하던 분석 기술로는 한계가 발생하였고 빅데이터 분석 기술은 이러한 한계점을 극복할 수 있게 하였습니다. 또한 머신 러닝 기술을 통하여 군집, 분류, 회귀, 추천 등의 고급 분석 영역까지 확장할 수 있게 되었습니다.

 

분석/응용 기술에는 임팔라, 제플린, 머하웃이 있으며 스쿱을 응용하여 외부 RDMBS에 데이터를 제공합니다.

 

 

 

이미지 한장으로 정리하자면 다음과 같습니다.

※이 글은 <실무로 배우는 빅데이터 기술 >이라는 책을 토대로 정리한 내용입니다.

'Programming > 빅데이터' 카테고리의 다른 글

[빅데이터]수집  (0) 2017.08.10
하둡이란  (0) 2017.07.18
빅데이터란?  (0) 2017.07.09
데이터의 형태  (0) 2017.07.09

 

 

정형 데이터 vs 비정형 데이터

 

 

데이터는 형태에 따라 정형 데이터, 반정형 데이터, 비정형 데이터로 나뉩니다.

 

크게 정형 vs 비정형으로 알아보겠습니다. 

 

◆정형 데이터란??

 

스키마 형태가 있고 연산가능하면 정형 데이터이며, 형태가 있으나 연산가능하지 않으면 반정형 데이터에 속합니다.

 

예로 RDBMS의 테이블들을 예로 들수 있겠습니다.

 

 

여기서 반정형 데이터의 경우를 들자면 아래와 같이 데이터의 형태가 있지만 정형 데이터와 같이 완벽하게 정리된 모습이 아닌 것을 반정형이라 칭하는 것 같습니다.

 

반정형 데이터의 예로 공공 API에서 받은 정리되지 않은 데이터들 또는 JSON파일 등 입니다.

반정형 데이터

 

 

◆비정형 데인터란??

 

비정형 데이터는 형태도 없고, 연산 가능하지도 않은 것. 우리가 흔히 말하는 소셜 데이터가 이에 속하며 텍스트, 영상, 음성 등의 형태로 나타납니다.

 

 

 

 

◆데이터들의 저장 구조

 

데이터의 형태에 따라 저장구조에도 차이가 있습니다. 정형 데이터는 RDBMS(MySQL)로 저장되고, 반정형 데이터는 파일(JSON)로, 비정형 데이터는 NoSQL(몽고DB)이라는 저장구조를 갖게 됩니다.

 

 

 

'Programming > 빅데이터' 카테고리의 다른 글

[빅데이터]수집  (0) 2017.08.10
하둡이란  (0) 2017.07.18
빅데이터란?  (0) 2017.07.09
데이터의 형태  (0) 2017.07.09

+ Recent posts