-
후,, 요즘 기본기가 너무 흔들리는 것 같다. 그래서 데엔의 가장 기초가 되는 도서를 하나 읽어보려한다. 2018년 책이라 조금 오래 되었지만 기본서로 항상 추천되는 책이기때문에 가볍게 쭈욱 읽어보려한다.
알고싶은 정보가 이미 있다는 전제하에
그것을 "어떻게 효율적으로 실행할 것인가?"를 생각하는 것이 이 책의 목적이다.CHAPTER 1 빅데이터의 기초 지식
1-1. 빅데이터의 정착
Hadoop과 NoSQL
1. Hadoop: 다수의 컴퓨터에서 대량의 데이터 처리
- 초기 하둡에서 MapReduce 작업 실행이 필요한 경우, JAVA를 써 프로그래밍 해야 했기때문에 쉽지않았다. 그래서 SQL같은 쿼리언어를 Hadoop에서 실행하기 위한 SW로 Hive가 개발되었다.
2.NoSQL: 전통 RDB의 제약제거, 키-벨류, 도큐멘트, 와이드-컬럼 스토어등이 있다.
- NoSQL은 Hadoop가 달리 Application에서 Online으로 접속하는 DB이며, RDB와 비교했을 때 고속 I/O와 분산처리에 뛰어난게 특징이다.
NoSQL에 저장하고 Hadoop으로 분산처리라는 흐름이 2011년 말까지 정착하고, 12년부터는 널리 퍼지게 되었다.
분산 시스템의 발전과 Hadoop의 도입을 지원하는 비즈니스가 성립하게 되었고,
이 때 사용하게 된 키워드가 바로 '빅데이터'이다.기존 DW도 대량데이터 처리가 가능했고 오히려 여러방면에 Hadoop보다 우수했다.그러나, 단점이 있었다. 안정적인 성능으로 인해 HW와 SW가 통합된 장비가 제공되었다. 데이터 용량에 따른 확장엔 하드웨어 교체가 함께 따라왔다.
그래서, 급격히 늘어나는 데이터는 Hadoop, 중요하고 비교적 작은 데이터는 DW에 저장했다.
Data Discovery, 셀프 서비스용 BI: 개인도 도입할 수 있을 정도로 단순화 된 BI
1-2. 빅데이터 시대의 데이터 분석 기반
스트림 처리와 배치 처리
1. 스트림 처리: 실시간으로 처리가 필요한 데이터에 대해서는 스트림 처리, 예: 시계열DB
2. 배치 처리: 장기적이고, 대량의 데이터 분석을 위한 처리
분산 데이터 처리
빅데이터를 SQL로 집계할 때는 쿼리엔진(대화형 쿼리 엔진은 이보다 고속이다.), 외부 데이터 웨어하우스 제품(ETL)을 이용하는 2가지 방법이 있다. ETL의 전체 데이터 파이프라인을 관리는 '워크플로 관리'라고 한다.
기간계와 정보계 시스템
기간계는 비즈니스 근간에 관련된 중요한 시스템이고, 정보계는 의사결정등을 위한 시스템.
책에는 기간계와 정보계만 적혀있지만, 추가로 검색해서 적었다.(금융권기준)
1. 기간계 : 기존 시스템 (AS-IS, 레거시)
2. 계정계: 고객의 통장정보 등, 거래처리위한 업무 정보
3. 정보계: 거래 이력데이터 관리 및 통계/분석(OLAP)
4. 운영계: 고객과의 상호작용을 관리, 예금,출금,대출승인등(OLTP)
확증적 데이터분석과 탐색적 데이터 분석
1. 확증적 데이터 분석: 가설 기반 검증
2. 데이터를 보면서 그 의미를 읽어냄(이 책에서 다루는 영역)
CHAPTER 2 빅데이터의 탐색
1. 크로스 집계의 기본
- 크로스(cross) 테이블: 행과 열이 교차하는 부분에 숫자 데이터가 들어가는것
- 트랜잭션(transaction) 테이블: 행 방향으로만 데이터를 추가하고, 열 방향으로는 추가되지 않도록 하는 것
- 룩업(Lookup) 테이블: 다른 테이블에서 정보를 검색하고 참조하기 위해 사용 되는 것
2. 열 지향 데이터베이스 접근
우리가 주로 사용하는 것은 레코드 단위로 읽는 '행 지향 데이터베이스' 이며, 반면 컬럼 단위 집계에 최적화되어 있는 '열 지향 데이터베이스' 또는 '컬럼 지향 데이터베이스' 라고 한다.
3. MPP( Massively Parallel Processing )데이터에비스 접근 방식: 병렬화에 의해 멀티 코어 활용하기
MPP에서는 하나의 쿼리를 다수의 작은 태스크로 분해해 병렬로 실행한다.
4. 데이터 마트의 기본구조
다차원 모델과 OLAP 큐브
OLAP(Online Anlaytical Processing) 은 데이터 집계를 효율화하는 접근 방법 중의 하나다. OLAP에서는 다차원 모델의 데이터 구조를 'MDX(Multidimensional Expressions)등의 쿼리 언어로 집계한다. 데이터 분석을 위해 만들어진 다차원 데이터를 'OLAP 큐브(cube)'라고 하며 그것을 크로스 집계하는 구조가 OLAP다.
5. 테이블을 비정규화하기
- 트랜잭션: 시간과 함께 생성되는 데이터를 기록한 것, 한 번 기록되면 변하지 않음
- 마스터: 트랜잭션에 참고되는 각종 정보, 상황에 따라 다시 쓰임