프로그래밍/뉴스

빅데이터에 대한 이해 1

여퐝 2012. 5. 31. 22:42

 

2011 하반기 부터 빅데이터라는 요어가 해외 블로그 또는 저널로부터 나오기 시작했다. 국내에서도 이시기에 언론에서 빅데이터에 대해 관심을 가지면서 관련 기사들이 나왔다.

빅데이터란 "시스템, 서비스, 조직(회사)등에서 주어진 비용, 시간내에 처리 가능한 데이터 벙위를 넘어서는 데이터."이다

이 정의는 주관적인 입장이다.

여기서 말하는 처리는 단순히 배치 분석작업을 의미하는 것이 아니다. 즉 기존의 비즈니스 인텔리전스(BI)와 데이터 웨어하우스등에서의 데이터 웨어 하우스만을 의미하는 것이 아니라는 의미이다. 실시간으로 처리되는 데이터도 같이 포함되는 개념인 것이다. 예를 들어 국내에서만 서비스되는 쇼핑몰이 있는데 이 쇼핑몰은 하루에 수백명의 제품검색, 구매 요청을 처리한다. 이 서비스를 아시아권으로 확대 서비스 했을 때에도 사용자의 요청을 처리할 수 있을까?

서비스 개발에 조금이라도 아는 사람이라면 안된다는 것을 알 것이다. 사용자가 늘어나면 사용자의 실시간 검색 요청, 구매 요청등에 대응하기 위해 여러 부분이 바뀌어야 한다. 웹 서버의 용량, 네트워크 증설, 세션 처리 용량등이 필요하다. 이런 증설에서 가장 중요한 부분이 데이터에 대한 부분일 것이다. 검색도 데이터에 대한 내용이고 구매한 이력을 저장하는 것도 데이터에 대한 내용이다. 상품을 추천하는 것도 구매한 정보를 이용하여 분석하여 다시 피드백을 주는 데이터에 대한 내용일 것이다.

즉, 빅데이터에서의 "데이터 처리:의 개념은 이렇게 단순 분석이 아닌 사용자의 모든 데이터 요청 유형을 의미하는 것이다.

그러면 일반적인 데이터와 빅데이터를 나누는 기분은 무엇일까? 이 부분에 대한 답이 앞에서 정의한 빅데이터 정의 부분에서 "비용/시간"이라고 볼 수 있다. 그리고 "비용/시간"은 어떤 기술을 사용할 것인가를 결정하는 요소이다.

데이터를 처리하는데 있어 기업이 두자 가능한 비용의 범위내에 있으면 빅데이터라고 하지 않는다. 예를 들어 하루에 수억건 발생하는 이동통신회사의 콜 데이터를 저장하기 위해 이동통신 회사는 수십억~수백억의 비용을 지불해서 고가의 하드웨어, 고가의 데이터 베이스 솔루션에 투자하는 것이 가능하다고 하면 그것은 빅데이터라고 보기 어려운 것이다.

현재에도 많은  통신회사가 이런 방식으로 과금 시스템을 구축하였다. 통신회사가 이렇게 비용을 지불할 수 있는 것은 다루는 데이터가 과금에 사용되는 가장 중요한 데이터이기 때문이다.이런 중요한 데이터를 저장, 처리하는데 기업들은 기꺼이 비용을 지불할 것이다.

그러면 동일한 데이터이지만 이렇게 저장된 데이터를 이용하여 과금보다는 조금 덜 중요한 기지국의 증설, 통화 품질 등을 분석하는 자료중의 하나로 활용하는 경우라면.....그리고 기지국의 증설, 통화 품질 분석등을 위해서 사용자 콜 정보 이외의 다른 여러가지 부가 정보도 같이 활용한다면 앞에서와 같이 사용자 콜 데이터를 저장, 분석하는데 수십 ~ 수백억의 비용을 지불하면서 시스템을 구축할 수 있을까?

즉 같은 데이터라도 기업에게 어느 정도로 중요하고 그 중요성 만큼의 비용을 지불할 수 있는 수준을 넘어서는 데이터를 다루는 기술을 빅 데이터라고 할 수 있다. 과거에도 사용자 콜 데이터를 저장하고 과금 처리를 하고 있었는데 이를 빅데이터라고 하지 않는다. 따라서 빅데이터를 다루는 기술은 기본적으로 기존의 데이터 방식에 비해 구축과 운영 비용이 매우 저렴한 기술이어야 한다.

빅데이터의 특징을 이야기 할 떄 가음 세가지 특징을 많이 이야기 한다.

1.Volume : 데이터의 크기. 물리적인 크기 보다는 앞에서 설명한 크기에 대한 내용. 웹 로그 데이터나 다음 커뮤니케이션의 한메일, 구글 지메일 등의 메일 MIME데이터는 수PB이상이 되지만 트위터 네트워크 데이터는 수십 GB미만이다. 앞의 데이터는 안정적인 저장이 가장 큰 해결 과제인 반면 네트워크 데이터는 분석과 처리가 가장 큰 이슈이다. 따라서 단순히 물리적인 크기가 아닌 데이터의 어떤 '속성'이 더 중요하고, 그것을 처리하는데 어려움이 있느냐 없느냐 이다.

2. Velocity : 데이터를 처리하는 속도. 배치 분석만을 의미하는 것은 아니다. 필요에 따라서 수많은 사용자 요청을 실시간으로 처리한 후 처리 결과를 반환해주는 기능도 필요하다.

3.Various : 전통적인 기업의 데이터 분석은 기업 내부에서 발생하는 운영데이터인 전사적 자원 관리(ERP), 공급망 관리(SCM), 생산 관리 시스템(MES), 고객관계관리(CRM)등의 시스템에 저장되어 있는 데이터 베이스 데이터였다. 이런 데이터는 잘 정제되어 있고 의미도 명확하다. 최근에는 이런 데이터 뿐만 아니라 기업 외부에서 발생하는 SNS, 블로그 ,뉴스, 게시판 등의 데이터나 사용자가 업로드 한 파일, 콜 센터의 고객 상담 내용 등 비정형 데이터도 처리할 수 있는 능력이 있어야 한다.

그러면 이런 빅데이터는 어떤 회사가 주도하고 있을까? 지금까지의 소프트웨어는 오라클, IBM, HP, MS등고 ㅏ같은 미국의 소프트웨어 회사 중심이었다면 클라우드 컴퓨팅 이후부터의 기술은 인터넷 서비스 업체인 구글, 야후, 페이스북, 아마존 등이 주도적으로 이끌고 있다.

 

 

전통적인 소프트웨어 회사는 그 기술 자체가 회사의 경쟁력이고 판매되는 상품이었기 때문에 소스가 공개되지 않는다. 하지만 인터넷 서비스 업체는 기술 자체로 비즈니스를 하는 것이 아니라 그 기술을 이용한 서비스로 비즈니스를 하기 때문에 기술공개에 있어 자유롭다고 할 수 있다.

그리고 이런 회사들이 진정한 빅데이터를 다루고 운영하는 경험이 있는 회사라고 할 수 있다. 따라서 빅데이터는 전통적인 소프트웨어 벤더에 의해 만들어진 시장이 아니라 글로벌 인터넷 서비스 업체들에 의해 만들어진 시장과 기술이다.

다음은 빅데이터와 관련된 기술이다.


- 원본 데이터 저장: 대용량 분산 파일 시스템(Hadoop File System 등)
 - 구조적 데이터 저장: 대용량 분산 데이터 저장소(NoSQL-HBase, Cassandra, MongoDB 등)
 - 배치 분산 병렬 처리: MapReduce(Hadoop), 그래프 분석(Pregel, GlodenORB 등)
 - 데이터 스트리밍 프로세싱: S4, Storm
 - 데이터 마이닝: Mahout
 - 다양한 데이터 분석 알고리즘
 - 기타: 분산 관리(ZooKeeper), 분산 큐(kafka), 분산 캐쉬(Memcached, Redis),
 - 기존 전통적인 솔루션: BI/DW, RDBMS 등
 - 데이터 분석 기술