분류

2020년 2월 16일 일요일

빅데이터 개념잡기 '빅알자'. - 1.빅데이터 개념잡기

최근 빅데이터 프로젝트를 시작하게 되면서 이런저런 조사를 하다 보니 수박 겉도 핥지 못한 문서들이 너무 많아 약간은 정리를 해야 할 것 같아 문서를 만들어봅니다. 5년전에 검색할때도 문서가 난해했는데. 지금도 마찬가지인 것 같아서요.

사람들이 가장 난해하게 생각하는 것들. 그리고 저에게 많이 질문해온 것들을 이야기 정리하자면 이렇습니다.

1. 빅데이터가 뭐야?
2. 큐브 인덱스라는게 있다는데 이건 또 뭐야?
3. 빅데이터 조인 분석은 어떻게 해야 해?

이러한 것의 개념이 해깔리는 이유는 많은 사이트에서 한글 문서를 지원해주는데 구글 번역기를 이용해 번역한 수준이고, 데이터 개념도 잡히지 않은 상태에서 글을 쓴다거나, 데이터 처리를 해보지 않은 사람이 의역하기 때문에 문서가 난잡하다. 로 정리됩니다.
답을 드리겠습니다.

1. 빅데이터 

IP V6 이야기 많이 들어보셨죠? '벌레에다가도 IP를 부여할 수 있다'라고. 이전에는 IP를 부여할 수 없어 지역별로 고립되어있던 정보가 지금은 다양한 형태의 네트워크를 통해서 연결되고, 서로 데이터를 주고받을 수 있는 상황이 되면서 데이터의 양이 엄청나게 늘었고, 분석하거나 조회하는 것 자체가 쉽지 않게 되었습니다. 아래 그림 같은 겁니다.


뭐 이런 형태가 아니더라도 SNS 같은 다양한 형태의 정보가 난무하는 플랫폼에서는 빅데이터 플랫폼의 도입을 더 빨리 했겠죠? 약 5년 전부터 갑자기 중요성이 대두되는 건 그만큼 활용할 수 있는 영역이 늘어났을 뿐, 빠른 업체들은 이미 다 하고 있습니다. 그리고 앞으로 더 늘어갈 추세입니다.

그리고 하자면 빅데이터도 결국 데이터입니다. 기존의 RDB 베이스에서 처리할 수 있는 방법이 있습니다. 최근의 하둡이나 여러 빅데이터 플랫폼이 주목받는 이유는 고가의 서버와 소프트웨어를 구입하지 않고도 빠른 속도의 처리를 할 수 있다는 장점 때문입니다. 결국 빅데이터도 어느 순간 비싸질 겁니다.

RDBMS보다 "빅데이터 플랫폼이 빠르다. 메모리를 덜 차지한다." 당연한 이야기 입니다. 개발자로서 기본을 이야기 하자면. 다양한 기능을 메모리에 올려놓고 여러 처리 방안을 고안해서 만들어진 패키지와 단일 기능을 가진 프로세스를 기준으로 같은 자원 상황에서 사용할 경우 단일 기능이 더 빠를 수 밖에 없습니다. 그럼에도 불구하고 빅데이터 플랫폼은 빠릅니다. 기존의 RDBMS에선 시도되지 않았던 여러 축약 기술, 분산 처리 기술들이 존재하기 때문이죠.

2. 큐브 인덱스 

큐브 인덱스는 로우 데이터를 인덱싱하는 분석용 인덱스가 생기는 게 아니라 분석용 OLAP 큐브에 인덱스를 생성한 겁니다. 결국 큐브 인덱스가 아니라 큐브와 인덱스라는 두 가지 다른 개념입니다.

큐브는 OLAP 큐브가 있죠. 큐브는 데이터웨어하우스에서 데이터를 다양한 관점으로 분석하기 위해 만들어진 개념입니다. 실제로 3차원 큐브가 아니라 여러 관점이 추가될 수 있으며, 그때마다 차원정보가 추가된다고 쓰여있는데. 분석 항목이 추가될 뿐 입니다.

스타스키마 라는 개념을 통해서 중심에 연관 집계의 키 역할을 하는 팩트 테이블을 두고, 주변에 분석 대상 차원(디맨전)을 두는 개념입니다. 그리고 팩트와 차원(디맨전)은 서로 조인해야 하기에 차원 테이블에 FK가 생기고 조인 속도를 위해 양쪽 모두 인덱스를 생성합니다.

간단하게 판매 - 고객 - 제품 - 시간 같은 결합하여 분석하면 도움이 되는 항목들을 설정하고, 해당 데이터에 대한 소규모 집계를 생성하여 작은 단위 집계를 만들어 놓고 분석을 하는 거죠.

예를 들자면

시간 + 제품 : "1월에 판매된 제품은 몇 개야? "
시간 + 고객 + 판매 : "2월에 제품을 구매한 고객은 몇 명이야? "
시간 + 고객 + 상품 : "3월에 몇 명의 고객이 제품을 N개 샀는데 남성 고객은X 상품을 많이 구매하고 여성 고객은 Y를 구매했어. 내년에도 준비해야 되겠네. "

같은 분석을 ROW데이터로 할 경우 너무 크기도 하고 필요 없는 항목 (예를 들어 고객과 구매 개수만 필요한데 고객과 고객 주소, 전화번호같은 불필요 한 항목) 들이 메모리에 올라오게 되고, 이로 인해 속도가 저하되기 때문이죠 분석에 필요 없는 것을 버리고 필요한 항목만 스타스키마를 만들어서 분석한다 = OLAP CUBE 입니다.

데이터 전문가 지식 포털 OLAP 설명
네이버 올랩 큐브
제 설명에 이해가 안가신다면 위 링크를 클릭해서 보세요

최근들어서 큐브 인덱스에 대한 설명이나 글들이 많이 올라오는데 이유는 빅데이터는 KYLIN이라는 OLAP도구가 생겨나기 전에는 연관분석을 지원하는 도구가 없었습니다. 그리고 KYLIN이 만드는 큐브 생성 원리만 봐도 이런 관점은 이해가 됩니다.

3. 빅데이터 조인 분석 어떻게 해야되? 

현재 KYLIN이라는 도구 이외에 OLAP도구가 없습니다. 대부분 시계열을 기반으로 차원정보를 생성하는 큐브와 유사한 기능을 하는 다중 인덱스, 다중 파티션을 제공하는 도구들이 대부분입니다. 대신 조인연산이 아닌 단일 테이블에 대한 시계열 집계를 진행합니다.

이상. 읽어주셔서 감사합니다.

빅데이터 개념잡기 '빅알자'는 여러 페이지로 이루어질 것 입니다.

댓글 없음:

댓글 쓰기