빅데이터를 지탱하는 걸까 감당하는 걸까.. 감당 안 돼.. 돌아가..
시스템은 데이터를 생성하고 데이터를 통해 서로 연결된다
chapter 1 에서는 빅데이터와 관련된 기술이 생겨난 역사적 배경을 되돌아보고 그 기본이 되는 사고방식과 용어를 정리한다. 역사를 잊은 민족에게 미래는 없다라는 말이 있듯이 어떤 시대적 흐름을 이해할 때 그 역사를 되돌아보는 건 굉장히 큰 의미가 있다고 생각한다. 따라서 이러한 마음을 갖고 '빅데이터' 나라의 민족이 되어보도록 하자.
인터넷의 보급으로 세계 곳곳으로부터 엑세스 되는 시스템이 증가함에 따라 전통적인 관계형 데이터 베이스로는 취급할 수 없을 만큼 대량의 데이터가 쌓이게 되었다. 그렇게 축적된 데이터를 처리하기 위해 기존과 다른 구조가 필요했는데 이 때 등장한 기술이 Hadoop과 NoSQL이다. Hadoop이란, 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템으로, 수천 대 단위의 컴퓨터를 관리하기 위한 프레임워크이다. 또한 초기엔 자바 언어로 프로그래밍을 해야 했기 때문에 접근성이 낮았다. 이후 Hadoop에서 실행하기 위한 소프트웨어로 Hive라는 SQL과 같은 쿼리 언어를 개발함으로써 사용자를 확대할 수 있었다. NoSQL은 전통적인 RDB의 제약을 제거하는 것을 목표로 한 데이터베이스의 총칭이다. RDB보다 읽기, 쓰기가 빠르고 분산 처리에 뛰어나다는 특징을 갖추고 있다. 모여진 데이터를 나중에 집계하는 것이 목적인 Hadoop과 다르게 NoSQL은 애플리케이션에서 온라인으로 접속하는 데이터베이스이다. 이 둘을 조합함으로써 NoSQL 데이터베이스에 기록하고 Hadoop으로 분산 처리하기가 가능해졌고, 현실적인 비용으로 데이터를 처리할 수 있게 되었다.
이렇게 분산 시스템의 발전에 따라 데이터 웨어하우스 제품이 사용되는 경우에도 Hadoop을 사용하는 경우가 증가했다. 다수의 데이터 분석도구가 Hadoop과 Hive를 사용하게 되었고, 그 결과 Hadoop의 도입을 기술적으로 지원하는 비즈니스가 성립하게 되었다. 그리고 그 때 사용하게 된 키워드가 바로 '빅데이터'이다. 이와 비슷한 시기부터 클라우드 서비스의 보급이 확대되었고, 데이터 웨어하우스를 클라우드 상에서 작성할 수 있기 때문에 작은 프로젝트 단위에서도 자체적으로 데이터 분석 기반을 마련하게 되었다. 또한, 데이터 웨어하우스에 저장된 데이터를 시각화하려는 방법으로 '데이터 디스커버리'가 인기를 끌게 되었다. 데이터 디스커버리란, 대화형으로 데이터를 시각화하여 가치 있는 정보를 찾으려고 하는 프로세스를 가리킨다. 2013년 이후에도 빅데이터 기술은 더 높은 효율과 편리성을 실현하기 위해 계속해서 개발되고 있다. 'Apache Spark'와 같은 새로운 분산 시스템용 프레임워크가 보급됨으로써 실시간 데이터 처리를 위한 시스템도 다수 만들어지고 있다. 이제는 기술상의 제약이 없어져 누구나 사용할 수 있는 주변 기술이 되었기 때문에 자신에게 맞는 기술을 선택해 언제든지 원하는 정보를 추출할 수 있도록 하자.
데이터 파이프라인
빅데이터 기술이 기존의 데이터 웨어하우스와 다른 점은 다수의 분산 시스템을 조합하여 확장성이 뛰어난 데이터 처리 구조를 만든다는 점이다. 데이터 수집에서 워크플로 관리까지 일련의 시스템을 '데이터 파이프라인'이라고 한다.
1. 데이터 전송
- 벌크 형: 이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법
- 스트리밍 형: 순서대로 생성되는 데이터를 끊임없이 계속해서 보내는 방법 → 스트림 처리: 스트리밍 형 데이터를 실시간으로 처리하는 것
그러나, 장기적인 데이터 분석을 위해서는 분산 시스템이 더 효율적 → 배치 처리: 어느 정도 정리된 데이터를 효율적으로 가공하는 것
2. 데이터 저장
- 분산 스토리지: 여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템
- 객체 스토리지: 한 덩어리로 모인 데이터에 이름을 부여해서 파일로 저장 (ex. Amazon s3)
- NoSQL: 애플리케이션에서 많은 데이터를 읽고 쓸 때 용이
3. 분산 데이터 처리
- 나중에 분석하기 쉽도록 데이터를 가공해서 그 결과를 외부 데이터베이스의 저장 (ex. MapReduce)
- 쿼리 엔진: 분산 스토리지 상의 데이터를 SQL로 집계 (ex. Hive, 대화형 쿼리 엔진)
- ETL 프로세스: 분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환
4. 워크플로 관리
- 매일 정해진 시간에 배치 처리를 스케줄대로 실행하고, 오류가 발생한 경우에는 관리자에게 통지
데이터 레이크
빅데이터 시대엔 모든 데이터를 원래의 형태로 축적해두고 나중에 그것을 필요에 따라 가공하는 구조가 필요하다. 이 때 모든 데이터를 축적하는 호수를 뜻하는 용어로 데이터 레이크란 단어가 탄생했다.
1. 데이터 보존
- 미가공 원시 데이터를 그대로 저장소에 저장
2. 데이터 가공
- 분산 데이터 처리 기술을 이용해 가공, 집계, 추출 (ex. MapReduce)
새로운 도구와 서비스가 계속해서 개발되고 있지만, 데이터 파이프라인 전체의 기본적인 흐름은 변하지 않는다. 중요한 것은 이러한 데이터의 흐름을 만드는 것이며, 그 과정에서 사용되는 기술은 교환할 수 있다.
데이터 탐색
'데이터 탐색'에 있어서 중요한 것은 우선 큰 그림을 파악한 후에 점차 세부 사항으로 깊이 들어가는 것이다.
1. 현재 상황 파악하기
- 애드 혹 분석: 일회성 데이터 분석, 데이터를 살펴보고 싶을 때 사용
- 모니터링: 계획적으로 데이터의 변화를 추적
- KPI 모니터링: 프로젝트의 현황을 파악하기 위한 숫자
2. 세부 사항 이해하기
- BI 도구
- Tableau Public
- Quick Sencse
- Microsoft Power BI