Tech for good

[빅데이터를 지탱하는 기술] 1. 빅데이터의 기초 지식 - 빅데이터의 정착 본문

IT/Data Science

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

Diana Kang 2021. 10. 1. 12:26

목차

1. 빅데이터의 기초 지식

 

1.1. [배경] 빅데이터의 정착

1.1.1. 분산 시스템에 의한 데이터 처리의 고속화 - Hadoop과 NoSQL 

① 빅데이터 기술의 요구 - Hadoop과 NoSQL의 대두

② Hadoop - 다수의 컴퓨터에서 대량의 데이터 처리

③ NoSQL 데이터베이스 -  빈번한 읽기/쓰기 및 분산 처리가 장점

④ Hadoop과 NoSQL 데이터베이스의 조합 - 현실적인 비용으로 대규모 데이터 처리 실현

1.1.2. 분산 시스템의 비즈니스 이용 개척 - 데이터 웨어하우스와의 공존

1.1.3. 직접 할 수 있는 데이터 분석 폭 확대 - 클라우드 서비스와 데이터 디스커버리로 가속하는 빅데이터 활용

 

 


1. 빅데이터의 기초 지식

1.1. [배경] 빅데이터의 정착

'분산 시스템의 발전'과 '클라우드 서비스 보급'에 따라 대량의 데이터를 효율적으로 처리하는 일이 점차 어렵게 되었다. 이 절에서는 '빅데이터'라는 단어가 퍼질 때까지의 역사를 간단하게 되돌아본다.

더보기

이 절에서는 빅데이터의 주요 역사에 대해 설명한다.

- 2011년까지 → Hadoop이나 NoSQL 데이터베이스 등 기반 기술의 발전

- 2012년까지 → 클라우드 방식의 데이터 웨어하우스나 BI 도구의 보급

- 2013년까지 → 스트림 처리나 애드 혹(AdHoc) 분석 환경의 확충 

1.1.1. 분산 시스템에 의한 데이터 처리의 고속화 - Hadoop과 NoSQL 

① 빅데이터 기술의 요구 - Hadoop과 NoSQL의 대두

빅데이터의 기술로 가장 먼저 예로 들 수 있는 것은 'Hadoop''NoSQL'이다.

인터넷의 보급으로 세계 곳곳으로부터 액세스 되는 시스템이 증가함에 따라 전통적인 관계형 데이터베이스(RDB)로는 취급할 수 없을 만큼 대량의 데이터가 점차 쌓이게 되었다. 그렇게 축적된 데이터를 처리하려면 기존과는 다른 구조가 필요했는데, Hadoop과 NoSQL은 각각 다른 요구를 충족하기 위해 태어났다.

 

 

② Hadoop - 다수의 컴퓨터에서 대량의 데이터 처리 

Hadoop은 '다수의 컴퓨터에서 대량의 데이터를 처리하기' 위한 시스템이다. 예를 들어, 전 세계의 웹페이지를 모아서 검색 엔진을 만들려면 방대한 데이터를 저장해둘 스토리지와 데이터를 순차적으로 처리할 수 있는 구조가 필요하다. 그러기 위해서는 수백 대, 수천 대 단위의 컴퓨터가 이용되어야 하며, 그것을 관리하는 것이 Hadoop이라는 프레임워크다.

Hadoop은 원래 구글에서 개발된 분산 처리 프레임워크인 'MapReduce'를 참고하여 제작되었다. 초기 Hadoop에서 MapReduce를 동작시키려면 데이터 처리의 내용을 기술하기 위해 자바 언어로 프로그래밍을 해야 했다. 그렇기 때문에 누구나 간단히 사용하지 못하였다.

그래서 SQL과 같은 쿼리 언어를 Hadoop에서 실행하기 위한 소프트웨어로 'Hive(하이브)'가 개발되어 2009년에 출시되었다. Hive의 도입에 의해 프로그래밍 없이 데이터를 집계할 수 있게 함으로써 많은 사람이 Hadoop을 이용한 분산 시스템의 혜택을 받을 수 있게 되었고, 그로 인해 점차 사용자를 확대할 수 있었다. 

③ NoSQL 데이터베이스 - 빈번한 읽기/쓰기 및 분산 처리가 강점

한편, NoSQL은 전통적인 RDB의 제약을 제거하는 것을 목표로 한 데이터베이스의 총칭이다. NoSQL 데이터베이스에는 다양한 종류가 있다. 다수의 키와 값을 관련지어 저장하는 '키 밸류 스토어(key-value store/KVS)', JSON과 같은 복잡한 데이터 구조를 저장하는 '도큐멘트 스토어(document store)', 여러 키를 사용하여 높은 확장성을 제공하는 '와이드 칼럼 스토어(wide-column store)'등이 대표적이다. 

NoSQL 데이터베이스 제품은 각자가 추구하는 목표가 다르므로 단순 비교를 할 수는 없지만, RDB보다 고속의 읽기, 쓰기가 가능하고 분산 처리에 뛰어나다는 특징을 갖추고 있다. 모여진 데이터를 나중에 집계하는 것이 목적인 Hadoop과는 다르게 NoSQL은 애플리케이션에서 온라인으로 접속하는 데이터베이스다. 

 

④ Hadoop과 NoSQL의 데이터베이스의 조합 - 현실적인 비용으로 대규모 데이터 처리 실현

이 둘을 조합함으로써 'NoSQL 데이터베이스에 기록하고 Hadoop으로 분산 처리하기'라는 흐름이 2011년 말까지 정착하게 되었고, 2012년부터는 일반에 널리 퍼지게 되었다.

방대한 규모로 계속 증가하는 데이터에 대해, 기존의 기술로는 불가능하거나 고가의 하드웨어가 필요한 경우에도 '현실적인 비용으로 데이터를 처리할 수 있게 된'것이 당시의 기술적인 배경이다.

 

1.1.2. 분산 시스템의 비즈니스 이용 개척 - 데이터 웨어하우스와의 공존

일부 기업에서는 이전부터 데이터 분석을 기반으로 하는 '엔터프라이즈 데이터 웨어하우스(enterpirse data warehouse/EDW, 또는 데이터 웨어하우스/DWH)'를 도입했다. 전국 각지에서 보내진 점포의 매출과 고객 정보 등이 오랜 기간에 걸쳐 축적되고, 그것을 분석함으로써 업무 개선과 경영 판단의 자료로 활용되었다.

분산 시스템의 발전에 따라, 기존이라면 데이터 웨어하우스 제품이 사용되는 경우에도 Hadoop을 사용하는 경우가 증가했다. 다수의 데이터 분석 도구가 Hadoop에 대한 대응을 표명하여 대량의 데이터를 보존 및 집계하기 위해 Hadoop과 Hive를 사용하게 되었다. 그 결과 Hadoop의 도입을 기술적으로 지원하는 비즈니스가 성립하게 되었다. 그리고 그때 사용하게 된 키워드가 바로 '빅데이터'다.

전통적인 데이터 웨어하우스에서도 대량의 데이터를 처리할 수 있으며, 오히려 여러 방면에서 Hadoop보다도 우수하다. 하지만 단점도 있다. 일부 데이터 웨어하우스 제품은 안정적인 성능을 실현하기 위해 하드웨어와 소프트웨어가 통합된 통합 장비(appliance)로 제공되었다. 데이터 용량을 늘리려면 하드웨어를 교체해야 하는 등 나중에 확장하기가 쉽지 않았다. 따라서, 가속도적으로 늘어나는 데이터의 처리는 Hadoop에 맡기고, 비교적 작은 데이터, 또는 중요한 데이터만을 데이터 웨어하우스에 넣는 식으로 사용을 구분하게 되었다. 

예를 들어, 야간 배치 등 심야에 대량으로 발생하는 데이터 처리에 Hadoop을 사용하고 있는데 야간 배치에서는 매일 거래되는 데이터 등을 심야에 집계하여 다음 날 아침까지 보고서에 정리한다. 데이터양이 증가하면 배치 처리 또한 시간이 걸려 보고서의 완성이 늦어지고 이로 인해 업무에 지장이 생긴다. 그런 이유로 확장성이 뛰어난 Hadoop에 데이터 처리를 맡김으로써 데이터 웨어하우스의 부하를 줄이고 있다. 

 

1.1.3. 직접할 수 있는 데이터 분석 폭 확대 - 클라우드 서비스와 데이터 디스커버리로 가속하는 빅데이터 활용

이와 비슷한 시기부터 클라우드 서비스의 보급에 의해 빅데이터 활용이 증가하였다. '여러 컴퓨터에 분산 처리한다'라는 점이 빅데이터의 특징이다. 하지만 이를 위한 하드웨어를 준비하고 관리하는 일은 간단하지 않다. 클라우드 시대인 요즘은 시간 단위로 필요한 자원을 확보할 수 있어서 방법만 알면 언제든지 이용할 수 있는 환경이 마련되었다. 

2012년 말에 'Amazon Redshift(아마존 레드시프트)'가 발표된 이후로 데이터 웨어하우스를 클라우스 상에서 작성하는 것은 그다지 드문 일이 아니었다. 이전의 데이터 웨어하우스는 대기업의 IT부서가 상당한 노력을 들여 구축해야 하는 매우 한정된 것이었지만, 이제는 더욱 작은 프로젝트 단위에서도 데이터 웨어하우스를 구축하여 자체적으로 데이터 분석 기반을 마련하는 경우가 일반적인 상황이 되었다.