빅데이터를 지탱하는 기술 ch1
[##Image|kage@x6nyv/btrJAH4szIK/Uaput4nKDpsKCqzSkuVGW1/img.jpg|CDM|1.3|{“originWidth”:914,”originHeight”:1200,”style”:”alignCenter”,”width”:517,”height”:679}##]
책의 주제는 ‘자동화된 데이터 처리’
데이터를 어떻게 처리하고 시스템화하는가? 데이터마이닝이란 통계분석과 머신러닝 등의 알고리즘을 사용하여 데이터로부터 가치있는 정보를 발견하는 것 -> 책에서 다루지 않음 RDB(관계형 데이터베이스)
Hadoop : 다수의 컴퓨터에서 대량의 데이터 처리
구글에서 개발된 맵리듀스를 참고하여 개발되기 시작했으며 대용량의 스토리지와 순차적으로 처리할 수 있는 구조를 위해 수 천대의 컴퓨터가 이용돼야 한다.
맵리듀스를 이해하려면 자바언어로 프로그래밍해야하는데, 이것을 SQL과 같은 쿼리언어로 바꿔주는 인터프리터 역할을 하는 것이 ‘Hive’이다. 이로인해 많은 사람들이 분산시스템의 혜택을 받을 수 있게 됐다.
모여진 데이터를 나중에 집계하는 것이 목적
NoSQL: 전통적인 RDB의 제약을 제거하는 것을 목표로한 데이터베이스의 총칭
종류 - 키 밸류 스토어 : 다수의 키값과 관련지어 저장하는 - 도큐멘트 스토어 : JSON과 같은 복잡한 데이터 구조를 저장 - 와이드칼럼 스토어 : 여러 키를 사용하여 높은 확장성 RDB와의 차이: 고속의 읽기쓰기 가능 +분산처리에 뛰어나다 애플리케이션에서 온라인으로 접속하는 데이터베이스 하둡은 데이터 웨어하우스와의 공존하며, 업무시스템 -> RDB -> Hadoop-> Data Warehouse이 이런 순서로 배치돼어 데이터웨어하우스에 걸리는 부하를 줄이는 역할을 하고있다.
데이터 파이프라인의 시스템 구성
데이터 수집 벌크형 : 이미 어딘가 존재하는 데이터를 정리해 추출하는 방법 스트리밍형 : 차례차례 생성되는 데이터를 끊임없이 보내는 방법 . ex) 모바일앱과 임베디드 장비
스트림 처리와 배치처리
스트림 처리 : 모바일 앱등의 증가에 따라 스트리밍형 방법을 많이 사용. 실시간으로 데이터 처리 장기적인 데이터 분석에는 적합하지 않음. 배치처리: 어느정도 정리된 데이터를 효율적으로 관리하는 것 장기적 데이터 분석을 위해서는 분산시스템을 활용해야함.
분산스토리지란 객체스토리지, NoSQL데이터 베이스라고 불리며,
여러 컴퓨터와 여러 디스크로 부터 구성된 시스템을 의미한다. Amazon S3등이 유명하다.
분산 데이터 처리과정은 쿼리엔진을 도입하는 것과, 외부의 데이터 웨어하우스 제품을 이용하는 것이 있다.
외부의 데이터 웨어하우스 제품을 이용하는 경우 분산 스토리지에서 추출한 데이터를 데이터 웨어하우스에 적합한 형식으로 변환해야하는데 이것을 ETL (extract -transform -load)라고 한다. 추출하고, 가공하고, 데이터웨어하우스에 로드하는 과정이다.
데이터 파이프라인의 기본형
업무 시스템을 저장하는 파일 서버는 데이터 소스, 데이터 소스에 저장된 원시데이터를 데이터 웨어하우스에 저장하는 과정을 ETL (Extract Transform Load)이라고 한다. 아무때나 데이터 웨어하우스에 접근하는 경우는 데이터 웨어하우스 시스템에 과부하가 생길 수 있기 때문에 데이터 마트를 이용해서 필요한 데이터를 꺼내서 추출해야한다. 데이터마트는 BI 도구와 조합시켜 데이터를 시각화 하는데도 유용하다.
데이터 레이크
데이터를 있는 그대로 축적시킨 것이다. 보통 CSV와 JSON등의 범용적인 형식이 사용된다. 데이터 레이크는 단순 스토리지이기 떄문에, 이것을 가공하기 위해선 MapReduce와 같은 분산 데이터 처리기술을 거쳐 이것을 데이터 마트로 저장된다. 후에 데이터 마트에서 데이터를 추출한 후에는 데이터 웨어하우스의 경우처럼 데이터 분석을 진행할 수 있다. 데이터 엔지니어는 시스템의 구축 및 운용 자동화를 담당한다.
애드혹 분석이란 일회성 데이터 분석의 과정이다.
보통 이 과정에서는 체계가 없기 때문에 데이터 마트를 구축하지 않고, 데이터 레이크에서 데이터 웨어하우스로 바로 연결하는 과정이 많다. 쿼리를 실행해 결과를 즉시 확인할 수 있도록 하는 대화형 분석 도구를선호한다.
데이터를 수집하는 목적은 검색,가공 그리고 시각화에 따라 목적이 나뉜다.
고객에 대한 데이터를 검색하는 경우, 언제 무엇에 관한 데이터가 필요할지 예상이 불가능하기 때문에, 모든 데이터를 모아놓아야한다. 검색에 많은 시간이 걸려선 안되기 때문에, 실시간 데이터처리와 검색엔진을 통해 키워드를 찾아내야한다. 가공하는 경우는 , 업무 시스템에 있어서 데이터 처리의 결과를 이용하고 싶을 때, 예를들어 고객 분석을 통해 추천 상품을 제안하는 사례 등이 있다. 이 경우 테스트를 거쳐 워크플로를 관리하여 데이터 가공에 자동화가 꼭 필요하다. 시각화를 목적으로 데이터를 수집할 때는 기업의 의사결정에 도움이 되도록 할 때이다. 시각화를 할때는 데이터 마트의 역할이 중요하다 .
확증적 데이터 분석 (CDA) 과 탐색적 데이터 분석 (EDA)
CDA는 통계학적 모델링을 통한 분석 , EDA는 보통 시각화와 사람의 직관을 통한 분석이 주된 과정이다. 대화형 데이터 처리 스프레드 시트 (BI 도구)를 활용한 장기적인 데이터 변화를 모니터링하는 방식 빅데이터의 취급이 어려운 이유 1. 분석 방법을 몰라서, 2. 처리하는데 수고와 시간이 걸려서
Leave a comment