[빅데이터를 지탱하는 기술] 1-1 빅데이터의 정착
데이터 엔지니어링

[빅데이터를 지탱하는 기술] 1-1 빅데이터의 정착

빅데이터(Big Data)란 말 그대로 커다란 데이터를 말합니다. 기존의 데이터와 빅데이터는 서로 다를 것은 없지만, 처리해야하는 양에서 차이가 납니다. 빅데이터 처리 기술이 따로 필요하게 된 이유는 아무리 좋은 성능의 컴퓨터라도 오늘날의 데이터 증가 속도를 따라잡기 어려워졌기 때문입니다. 이러한 빅데이터 처리 기술이 여러 회사에 자리 잡을 수 있었던 건 '데이터 분산 처리'와 '클라우스 서비스'가 있었기 때문입니다.

빅데이터 등장 이전

빅데이터 기술이 등장하기 이전부터 대용량의 데이터를 다루는 기술이 필요로 했습니다. 전국의 제품 판매 데이터를 한 곳에 모아 통계 자료를 만드려고 한다면, 어지간한 컴퓨터로는 이를 저장하고 처리할 순 없습니다. 그래서 매우 큰 데이터를 관리하는 컴퓨터 시스템이 개발되었고, 이를 '데이터 웨어하우스 (Data Warehouse)'라고 부릅니다.

 

하지만 데이터의 증가 속도가 가속화되자, 데이터 웨어하우스는 한계를 보이기 시작했습니다. 데이터 웨어하우스는 고성능의 단일 컴퓨터로 운영되기 때문에, 저장하거나 한번에 처리하는 데이터 용량이 정해져 있고 이를 확장하려고 하면 비싼 고성능의 장비를 구매해야 합니다. 

데이터 분산 처리의 등장

이때 2004년에 구글에서 큰 데이터를 다루는 새로운 방식을 보여줍니다. 제안한 방식은 고성능 컴퓨터 하나에서만 처리하는 방식 대신 여러대의 컴퓨터에 분산하여 이를 처리하는 방식입니다. 먼저 많은 데이터를 각 컴퓨터에 나눠주고 이를 각자 처리합니다. 이렇게 처리된 결과를 다시 하나로 모아 사용자에게 제공합니다. 이러한 방식으로 데이터를 처리하기 때문에 구글은 '맵리듀스(MapReduce)'라는 이름을 붙여줬습니다.

맵리듀스가 데이터를 처리하는 과정의 예시, 출처: https://wikidocs.net/30235

 

이처럼 데이터를 분산 처리하게 된다면 빠른 속도로 빅데이터를 다룰 수 있을 뿐만 아니라 확장도 쉬워집니다. 기존의 데이터 웨어하우스는 성능을 높이기 위해서 시스템과 호환되는 비싼 하드웨어가 필요합니다. 하지만 데이터 분산 처리 방식은 클러스터에 추가할 컴퓨터 하나만 추가하면 데이터 저장 용량과 처리량을 쉽게 늘릴 수 있습니다. 그리하여 데이터 웨어하우스가 처리했던 데이터 집계를 데이터 분산 처리 프레임워크가 대신함으로써 데이터 웨어하우스의 부하를 줄일 수 있게 되었습니다.

 

이렇게 빅데이터를 처리할 수 있는 고성능, 확장가능성, 경제성 등으로 데이터 분산 처리로 빅데이터를 처리하는 방식은 주류가 되었고, 이를 '빅데이터 기술' 이라는 이름으로 정착하게 됩니다.

하둡과 NoSQL

빅데이터 기술의 가장 대표적인 기술로 하둡과 NoSQL를 들 수 있습니다. 두가지 기술 모두 기존에 사용되었던 데이터 웨어하우스와 관계형 데이터베이스를 개선하기 위해 나온 기술입니다.

 

하둡(Hadoop)은 구글이 발표한 맵리듀스를 참고하여 제작된 데이터 분산 처리 프레임워크 입니다. 하둡은 여러 대의 컴퓨터에서 수많은 데이터를 저장하고 처리하는 동작을 한 곳에서 관리할 수 있도록 도와줍니다.

하둡 로고, 출처: https://commons.wikimedia.org/wiki/File:Hadoop_logo.svg

 

NoSQL은 기존 주류였던 관계형 데이터베이스의 한계를 극복하기 위한 새로운 유형의 데이터베이스를 총칭하는 용어입니다. 그래서 NoSQL은 MongoDB, Redis, Cassandra와 같이 매우 다양한 종류가 존재합니다. 각각의 NoSQL 데이터베이스는 본인들만의 목표를 가지고 설계되었지만, 관계형 데이터베이스보다 읽기/쓰기가 빠르고 분산 처리에 더 뛰어나다는 공통적인 특징을 가지고 있습니다.

대표적인 NoSQL 데이터베이스, 출처: https://www.filecloud.com/blog/2014/08/leading-nosql-databases-to-consider/

 

하둡과 NoSQL은 모두 분산 처리에 유용하지만 서로 다른 역할을 지니고 있습니다. 하둡은 모여있는 데이터를 한번에 집계하는데 사용되지만, NoSQL은 어플리케이션이 온라인으로 데이터에 접근할 데이터베이스로 사용됩니다. 그래서 빠르게 들어오는 데이터는 NoSQL에 저장하고, 데이터 집계가 필요해질 때는 하둡을 사용하는 방식이 유행하게 됩니다. 이러한 하둡과 NoSQL의 조합은 2011년에 등장해 2012넌부터 널리 사용됩니다.

클라우드 서비스의 등장

데이터 분산 처리는 비교적 저렴한 비용으로 빅데이터를 처리할 수 있는 방식이긴 하지만 여전히 여러 대의 컴퓨터라는 장비가 필요로 합니다. 그래서 컴퓨터 클러스터를 구축하고 관리할 수 있는 규모의 회사가 아닌 이상 분산 처리 방식을 사용하기 어려웠습니다.

 

하지만 클라우드 서비스의 등장으로 이러한 진입장벽이 해소 되었습니다. 클라우드 서비스를 통해 온라인으로 빅데이터 분석에 필요한 장비를 준비할 수 있습니다. 하드웨어 관리도 필요하지 않기 때문에 빅데이터 분석은 개인도 가능할 정도로접근성이 좋아졌습니다. 이로인해 소규모의 프로젝트에서도 데이터 분산 처리를 이용한 데이터 웨어하우스를 구축할 수 있게 되었습니다.

데이터 디스커버리

데이터 분산 처리와 클라우드 덕분에 누구나 손쉽게 빅데이터를 다룰 수 있게 되었습니다. 거기에 더해 빅데이터를 분석하는 도구에도 큰 발전을 이루게 됩니다.

 

이전에도 비즈니스 의사결정에 도움을 주기 위해 데이터를 시각화하고 분석할 수 있도록 도와주는 BI 도구 (Business Intelligence Tools)가 있었습니다. 하지만 이를 도입하기 위해서는 대규모의 IT부서가 빅데이터를 분석할 수 있는 BI 도구를 구축해야 했습니다.

 

하지만 이후에 데이터 웨어하우스에 있는 데이터를 사용자가 대화형으로 쉽게 분석할 수 있는 방법인 '데이터 디스커버리(Data Discovery)'가 유행하게 됩니다. 대화형으로 구성된 인터페이스로 사용자는 쉽게 원하는 데이터를 시각화할 수 있습니다. 이러한 발전 덕분에 사용자는 시스템 구축에 대한 지식이 없어도 커다란 데이터를 관리하고 분석할 수 있게 되었습니다.

BI 도구 중 하나인 Tableau, 출처: https://www.passionned.nl/business-intelligence/tools/tableau/

결론

데이터의 양 뿐만 아니라 생산 속도까지 증가하게 되자 전통적인 방식의 데이터 웨어하우스와 관계형 데이터베이스로는 데이터를 빠르게 처리할 수 없게 되었습니다. 이를 해결하기 위해 하둡이나 NoSQL과 같은 데이터 분석 기술이 개발되었습니다. 거기에 클라우드 서비스와 데이터 디스커버리의 등장으로 빅데이터 기술에 대한 진입장벽이 상당히 낮아졌습니다. 이러한 기술의 바탕이 빅데이터 기술은 더 많은 프로젝트에 보급될 수 있었습니다.