[빅데이터 기초2] - 빅데이터 처리과정 및 데이터 수집방법론

- 들어가며

 

 이번 포스팅에서는 이전 빅데이터 기초1 포스팅의 내용에 이어지는 내용으로 빅데이터의 개념을 이해했으니 빅데이터는 어떠한 처리과정을 거치는지에 대해서 알아보고 그 처리과정 중 데이터를 수집하는 방법론에 대해서 살펴보고자 합니다.

 이번 포스팅도 마찬가지로 이해하시려면 DB(Database)에 대한 개념이 어느정도 있으면 이해하기 쉽겠지만

DB에 대해서 잘 알지 못하시는분들에게도(D알못도) 이해하기 쉽도록 최대한 풀어서 글을 작성해보고자 합니다.

 그리고 이 포스팅은 데이터를 수집하는 방법론이기 때문에 이글에서 소개해드리는 데이터 수집기술들에 대한 구체적인 방법에 대해서는 다루지 않습니다. (어차피 이러한 기술들은 금방사리지고 금방 새로운게 나오고 합니다....)

 데이터를 수집하는 기술들이 이러한 기술들이 있구나 하고 살펴보는 정도로 마치기 때문에 더 구체적인 내용들은 다른 포스팅에서 다루도록 하겠습니다. 물론 더 좋은 글들이 있을 수 있으니 이 글에서 알게된 수집기술을 구글링하시면 자세하게 설명된 글들을 찾으실 수 있을겁니다.

그럼 이제 빅데이터 처리과정에 대해서 알아보도록 하겠습니다.

1. 빅데이터 처리 과정

 사실 빅데이터를 처리하는 과정은 조직마다 그 목적에 따라 전부다 다르기 때문에 일정한 처리 과정이 있다고 말할 수는 없을 것입니다. 다만 대강 빅데이터는 이러한 처리 과정을 거치면서 활용되겠구나 하고 보시면 되겠습니다.

 위 그림에서 보이는 것처럼 조직의 내부, 외부 등 다양한 곳의 데이터 소스들로 부터 사람이 직접 수동으로 하던지 수집기를 쓴다던데 크롤링, 등 여러 수집방법을 통해 데이터를 수집합니다.

물론 뒤에서 이 수집방법론에 대해서 알아 볼 것입니다.

 그렇게 데이터를 수집한 것을 데이터 종류에 따라 적절한 전처리를 해서 데이터를 저장한뒤 이를 분석할 수 있는 형태로 다시 한번 가공합니다. 이렇게 가공된 데이터를 통해 가치있는 분석을 통해서 이를 서비스로 구현한다던지, 정책의 근거로 제시한다던지 등 분석결과를 가치있게 활용하는 과정까지가

데이터라는 쓰레기더미 속에서 가치를 찾는 과정이라고 볼 수 있습니다.

2. 데이터 수집기술

 의미 있는 분석이 가능한 데이터는 보통"양"에 의존하게됩니다. 인터넷과 컴퓨터의 발전으로 많은 양의 데이터 수집이 가능해진 오늘날 이러한 데이터들을 수집하는 기술들도 날로 발전하고 있습니다. 그러면 같이 데이터 수집기술에 대해서 알아보도록 하겠습니다.

#크롤링(Crawling) , 스크래핑(Scraping)

 크롤링 또는 스크래핑은 웹에 흩어진 데이터를 수집하는 것을 말합니다.

제가 학교수업 때 발표했었던 Web Crawling 과 Scraping에 대한 정의를 빌려오자면

Web Crawling : 자동화 봇(bot)인 크롤러가 정해진 규칙에 따라 복수개의 웹 페이지를 브라우징하는 행위

Web Scraping : 웹 사이트상에서 원하는 부분에 위치한 정보를 컴퓨터로 하여금 자동으로 추출하여 수집하는 기술

 이라고 정의한바 있었습니다. 즉, 크롤링은 링크를 따라 돌면서, 연결된 페이지를 가져오는 과정이라고 볼 수 있고

스크래핑은 웹 크롤러가 가져온 웹 페이지들이 있을때, 추출하길 원하는 항목의 위치를 지정해서, 데이터로 가져오는 것이 스크래핑이라고 할 수 있겠습니다.

크롤링

스크래핑

#Open API

 Open API는 웹을 운영하는 주체자가 정보/데이터를 제공하기 위해 개발자와 사용자에게 공개하는 수집기술을 말합니다. 특히 자료를 수집하는 역할이 많은 관공서나 공공 단체에서는 전체 사회적 비용을 줄이기 위해 개발자가 사용할 수 있는 Open API를 제공하는 경우가 많습니다.

 Google, Naver, 통계청, 기상청, 트위터 등 다양하고 많은 업체들에서 Open API를 제공하고 있고

롤이란 게임을 하시는 분들은 op.gg라는 사이트를 알고 계실텐데요!

op.gg라는 롤 전적검색 사이트 또한 Riot에서 api를 통해 게임과 관련된 데이터들을 제공하기 때문에 만들 수 있는 게임 전적검색 사이트입니다.

 이외에도 핸드폰 App을 만들때 지도가 필요하다면 google에서 제공하는 googlemap api등을 활용하는 등 api는 다양한 데이터들을 서비스할 때 정말 유용한 기술입니다.

#로그 수집

 Log는 컴퓨터 시스템의 기록으로 시스템의 사용시간, 정지, 활동 등의 다양한 모든 정보에 대한 기록을 말합니다.

로그의 종류도 웹 로그, 웹 서버로그, 트랜잭션 로그 등 각종 로그데이터들이 다양하게 있습니다.

 로그데이터는 IT환경에서 가장 많이 발생하는 데이터이기 때문에 빅데이터 기술의 혜택을 가장많이 수혜하고 있는 데이터라고 볼 수 있습니다.

#Flume(플럼)

 Flume은 이벤트 로그 데이터를 효율적으로 수집하고 집계할 수 있는 로그수집기입니다. 가장많이 사용되고 있는게

아파치 플럼인데요. 하둡으로 데이터를 입력하기 위해 간단하고 유연하며 확장이 가능한 솔루션으로 아파치 플럼이 적당하고 합니다.

#Chukwa(척와)

 Chukwa(척와)는 로그 데이터 수집 및 분석, 출력, 모니터링 시스템입니다.

하둡기반으로 동작하기 때문에 하둡 분산 파일시스템의 장점들을 그대로 수용하고 실시간 분석이 가능한 것이 장점입니다. (하둡에 대해서는 빅데이터 기초3 포스팅에서 다루고있습니다)

//장점정리

- 로그를 생성하는 응용 프로그램의 로그 저장 모듈을 수정하지 않고도 로그를 수집할 수있다.

- 수집된 로그 파일을 HDFS(하둡파일시스템)에 저장하므로 HDFS의 장점을 그대로가진다

- 실시간 분석도 가능하다.

# HDFS(하둡파일시스템) : 하둡파일시스템은 하둡의 구성요소중 하나로서

수십 테라바이트이상의 대용량 파일을 분산된 서버에 저장하고 그 저장된 데이터를 빠르게 처리 할 수 있게 하는파일 시스템입니다. 이 또한 빅데이터 기초3 포스팅에서 자세하게 다룹니다.

척와 시스템의 구성

#FTP

 FTP(File Transfer Protocol)는 파일전송 프로토콜의 약자인데요, 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜 즉, 서버와 클라이언트 사이의 데이터를 전송하기위한 데이터 통신규약이라고 합니다.

이를 통해 인터넷 서버로부터 다양한 파일들을 송수신 할 수 있는 것이고 지금 여러분들이 보고계시는 제 블로그에서 어떤 파일을 다운로드 받으신다면

 즉 웹 브라우저도 클라이언트이기 때문에 사용하고 계신 웹 브라우저와다운받으려는 파일을 보내는 인터넷서버 간에는 이 FTP통신규약체계를 따르면서 데이터를 주고 받는 것이라고 볼 수있습니다.

 여담으로 현재 여러분들이 보고 계시는 이 블로그,즉 HTML 문서자체는 HTTPS라는 보안기술이 들어간 프로토콜을 통해 여러분들의 웹 브라우저[클라이언트]에 송신되는 걸겁니다. 아마도...? 네 아마도 그럴겁니다.

 즉 다르게 말하자면 HTTP나 HTTPS와 같은 프로토콜들도 데이터 수집기술이 될 수 있다는 소리겠죠??

제가 전문가가 아니고 학생이다 보니 추측이긴 하지만요 .. ㅎㅎㅎ;

#RSS

 RSS(Really Simple Syndication)는 웹 기반 최신의 콘텐츠를 공유하기 위한 XML 기반의 콘텐츠 배급 프로토콜입니다. 말이 조금 어려울 수 있는데요. 쉽게 말하자면 RSS는 뉴스나 공지사항와 같이 콘텐츠가 자주 갱신되는 웹 사이트들의 정보를 실시간으로 쉽고 빠르게 제공하기 위해서 만들어진 포맷입니다.

콘텐츠 제공자는 각종 정보들을 RSS파일 형태로 제공하고 수집자는 다양한 경로를 통해 RSS정보를 수집할 수 있습니다.

 RSS를 활용하는 방법은 간단하니까 잠깐 소개해드릴게요. 우선 RSS를 활용할 프로그램이 필요한데요

저는 구글의 확장프로그램인 RSS Feed Reader를 사용해서 적용해보도록 하겠습니다.

 

RSS Feed Reader

Get a simple overview of your RSS and Atom feeds in the toolbar

chrome.google.com

step1. 먼저 콘텐츠가 많고 이를 실시간으로 정보를 제공받고 싶은 사이트의 RSS주소를 알아냅니다.

저같은 경우는 제 블로그의 RSS주소를 적용해보겠습니다.

rss 주소를 찾는 방법은 rss주소를 제공하는 웹마다 rss버튼이 존재합니다.

네이버 블로그에도 저렇게 rss버튼이 보이네요.

그럼 이렇게 rss 주소를 복사할 수있고 rss주소에 따른 어떤 콘텐츠들을 제공하는지 볼 수 있습니다.

step2. rss프로그램에 rss주소를 넣어줍니다. (끝)

제가 설치한 프로그램에서 Add feed라는 걸 클릭하니 저렇게 rss를 추가하는 페이지로 이동하더군요

저기다가 주소를 붙여넣기만 하시면 끝!

그러면 이렇게 RSS 프로그램들을 통해 자주 갱신되는 웹사이트의 정보들을 실시간으로 받아 볼 수 있습니다.

자신이 정기적으로 구독하고 있는 웹페이지가 블로그처럼 게시글 형태라면 이렇게 RSS를 적용해보는 것도 좋을 수 있겠네요!

# 정리

DBguide net에서 데이터 수집방법에 대해 정리 해놓은 표가있습니다.

이것을 참고하시면 도움이 될 것 같네요!

보시면 위에서 같이 언급햇던 FTP프로토콜, API를 통해서 데이터를 수집한다고 적혀있네요!.

 이번 포스팅에서는 데이터 수집방법에 대해서 알아보았습니다.

다음 포스팅 빅데이터 기초3에서는 데이터 저장방법과 관리 및처리 방법에 대해서 알아보도록 하겠습니다.

 그럼 포스팅은 여기서 마무리짓고, 추가적으로 드릴 말씀이 있는데요. "글이 이런점에서 개선되었으면 좋겠다"

아니면 "어떠어떠한 내용이 더 궁금하다", "이러한 부분이 부족한거 같다"라는 피드백을 남겨 주시면

글을 개선하는데 큰 도움이 될 것 같습니다.

모쪼록 도움이 되셨기를 바랍니다.