1.1 [배경] 빅데이터의 정착
💡 빅데이터의 주요 역사에 대해서 설명한다
2011년까지 → Hadoop이나 NoSQL 데이터베이스 등 기반 기술의 발전
2012년까지 → 클라우드 방식의 데이터 웨어하우스나 BI 도구의 보급
2013년부터 → 스트림 처리나 애드 혹(AdHoc) 분석 환경의 확충
1.1.1 분산 시스템에 의한 데이터 처리의 고속화
빅 데이터의 취급이 어려운 이유
- 데이터의 분석 방법을 모른다
- 데이터 처리에 수고와 시간이 걸린다
전통적인 RDB로는 취급할 수 없을 만큼 대량의 데이터가 점차 쌓이게 되었다. 그렇게 축적된 데이터를 처리하려면 기존과는 다른 구조가 필요했는데, Hadoop과 NoSQL은 각각 다른 요구를 충족하기 위해 태어났다.
웹 서버 등에서 생성된 데이터는 처음에는 RDB나 NoSQL 등의 텍스트 데이터에 저장된다. 그 후 모든 데이터가 Hadoop으로 모이고, 거기서 대규모 데이터 처리가 실행된다.
Hadoop
다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템
- 전 세게의 웹페이지를 모아서 검색 엔진을 만드려면 방대한 데이터를 저장해둘 스토리지와 데이터를 순차적으로 처리할 수 있는 구조가 필요하다.
- 이 때 필요한 것이 수천 대 단위의 컴퓨터이고, 이를 관리하는 것이 Hadoop이라는 프레임워크다.
- 원래 구글에서 개발된 분산 처리 프레임워크인 “MapReduce”를 참고하여 제작되었다.
- Hive를 통해 프로그래밍 없이 데이터를 집계할 수 있게 되었다.
NoSQL
전통적인 RDB의 제약을 제거하는 것을 목표로 한 데이터베이스의 총칭. 빈번한 읽기/쓰기 및 분산 처리에 강점을 가짐
NoSQL에는 다양한 종류가 있다.
- 키 밸류 스토어(KVS)
- 도큐멘트 스토어(document stord)
- 와이드 칼럼 스토어
Hadoop과 NoSQL의 조합
현실적인 비용으로 대규모 데이터 처리 실현
- NoSQL에 기록하고, Hadoop으로 분산 처리하기 라는 흐름이 널리 퍼지게 됨.
1.1.2 분산 시스템의 비즈니스 이용 개척
- 가속도적으로 늘어나는 데이터의 처리는 Hadoop에 맡기고, 비교적 작은 데이터, 또는 중요한 데이터만을 데이터 웨어하우스에 넣는 식으로 사용을 구분
1.1.3 직접 할 수 있는 데이터 분석 폭 확대
BI도구
경영자용 시각화 시스템으로, 대기업의 IT부서에 의해 도입되는 대규모의 도구
Ex) Panteho, Data Discovery
1.2 빅데이터 시대의 데이터 분석 기반
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.2.1 빅데이터의 기술
- 빅데이터 기술이란, 분산 시스템을 활용하면서 데이터를 순차적으로 가공해 나가는 일련의 구조다.
데이터 파이프라인
데이터 수집
- 여러 장소에서 다양한 형태로(DB에 쓰인거래처 데이터, 모바엘 애플리케이션에서 모여진 이벤트 데이터 등) 발생한 데이터를 모으는 부분
데이터 전송의 두 가지 방법
- 벌크(bulk) 형
- 이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법
- 데이터베이스와 파일 서버 등에서 정기적으로 데이터를 수집하는 데에 사용
- 스트리밍(streaming) 형
- 차례차례로 생성되는 데이터를 끊임없이 계속해서 보내는 방법
- 모바일 애플리케이션과 임베디드 장비 등에서 널리 데이터를 수집하는 데 사용
데이터 처리
스트림 처리와 배치 처리
- 스트림 처리(stream processing)
- 스트리밍 형 방법으로 받은 데이터를 실시간으로 처리하는 방법
- 장기적인 데이터 분석에는 부적합
- 배치 처리(batch processing)
- 보다 대량의 데이터를 저장하고 처리하는 데 적합한 방법
- 정리된 데이터를 효율적으로 가공
분산 스토리지
여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템
- 수집된 데이터가 저장됨
- 데이터를 저장하는 선택지 존재
- 객체 스토리지 - Amazon S3
- NoSQL DB -
분산 데이터 처리
분산 스토리지에 저장된 데이터 처리
- 쿼리 엔진 (Hive)
- 분산 스토리지 상의 데이터를 SQL로 집계
- Hive보다도 고속인 '대화형 쿼리 엔진'이 있음
- ETL( 외부 데이터 웨어하우스 제품)
- 분산 스토리지에서 추출한 데이터를 DW에 적합한 형식으로 변환
데이터 웨어하우스
- 일반적인 RDB와 달리 대량의 데이터를 장기 보전하는 것에 최적화되어 있음
- 정리된 데이터를 한 번에 전송하는 것은 뛰어나지만, 소량의 데이터를 자주 쓰고 읽는 데는 적합하지 않음
- 보통 업무 시스템에서 꺼낸 데이터를 하루가 끝날 때 정리하여 쓰고, 이것을 야간 시간대에 집계해서 보고서를 작성하는 방식을 이용
DW 측면에서 보았을 떄, 업무 시스템을 위한 RDB나 로그 등을 저장하는 파일 서버는 '데이터 소스(data source)'라고 부름. 거기에 보존된 RD를 추출하고 필요에 따라 가공한 후 DW에 저장하기까지의 흐름이 ETL 프로세스.
데이터 마트
- 데이터 웨어하우스는 아무떄나 함부로 사용해 시스템에 과부하를 초래하는 것은 곤란함.
- 데이터 분석에 사용하는 경우 필요한 데이터만을 추출해 데이터 마트 구축
- BI 도구와 조합시키는 형태로 데이터를 시각화하는 데에도 사용
모두 SQL로 데이터 집계
- 먼저 테이블 설계를 제대로 정한 후에 데이터 투입
- 테이블 설계와 ETL 프로세스가 중요
데이터 레이크
모든 데이터를 원래의 형태로 축적해두고 나중에 그것을 필요에 따라 가공하는 구조 필요
많은 데이터들(텍스트, 이진 데이터)이 데이터 웨어하우스를 가정해서 만들어지지 않음. 이를 RD의 형태로 보관할 필요가 있음
대부분의 경우 CSV나 JSON 등의 범용적인 텍스트 형식이 사용됨
데이터 레이크는 단순한 스토리지이며, 그것만으로는 데이터를 가공할 수 없음. 그래서 사용되는 것이 MapReduce 등의 분산 데이터 처리 기술임.
1.2.2 데이터 분석 기반을 단계적으로 발전시키기
애드혹 분석, 대시보드 도구
애드 혹 분석
- 수작업으로 데이터 집계
- SQL 쿼리를 직접 작성해서 실행하거나 스프레드시트에서 그래프를 만드는 것
- 데이터 마트를 만들지 않은 채 데이터 레이크와 데이터 웨어하우스에 직접 연결하는 경우가 많음
대시보드 도구
- 데이터 마트가 없어도 동작하도록 설계되어 있어 설정한 스케줄에 따라 데이터 레이크와 데이터 웨어하우스에 접속해 쿼리를 실행하고 그결과로부터 그래프 생성
데이터 마트와 워크플로 관리
- 복잡한 데이터 분석은 먼저 데이터 마트를 구축한 후에 분석하거나 시각화하도록 한다.
- 데이터 마트 구축은 배치 처리로 자동화되는 경우가 많이 때문에 그 실행 관리를 위해 워크플로 관리 도구를 사용한다.
- 워크플로 관리를 도입하는 단계가 되면, 데이터 분석보다는 엔지니어링 작업이 많아진다.
1.2.3 데이터를 수집하는 목적
데이터 검색
- 대량의 데이터 중에서 조건에 맞는 것을 찾고 싶은 경우
- 어떤 시스템에 장애가 발생했을 때 그 원인을 특정하거나 고객으로부터 문의가 있으면 로그를 확인하는 것과 마찬가지
- 필요할 때 신속하게 검색할 수 있도록 해야 함
- 실시간 데이터 처리나 검색 엔진 사용해 키워드를 찾는 기능이 필요함
데이터 가공
- 업무 시스템의 일부로서 데이터 처리 결과를 이용하고 싶은 경우
- 웹사이트에서 추천 상품을 제안하거나, 센서 데이터의 비정상적인 상태를 감지하여 통보하는 경우
- 필요한 데이터를 계획적으로 모아 데이터 파이프라인 설계
- 자동화가 필수적 → 워크플로 관리를 도입하여 꼼꼼하게 테스트 반복적으로 실행하여 시스템 구축
- SQL이 아니라 프로그래밍 언어를 사용하는 경우도 있음
- 데이터 분석이라기 보다는 시스템 개발 영역
데이터 시각화
- 임의의 분석 환경을 갖추고 여러 번 데이터 집계를 반복
- 고속화하려면 데이터 마트 필요