빅데이터 라이프사이클관리 심탁길 terryshim@naver.com
목차 1. 빅데이터개요 2. 빅데이터라이프사이클 3. 주요오픈소스기술소개
빅데이터개요
빅데이터란? Big Data 데이터베이스관점업무관점 기존의방식으로 저장 / 관리분석하기어려울정도의큰규모의자료 일반적인데이터베이스 SW 가저장, 관리분석할수있는범위를초과하는규모의데이터 ( 맥킨지, 2011) 다양한종류의대규모데이터로부터저렴한비용으로가치를추출하고 ( 데이터의 ) 초고속수집, 저장, 발굴, 분석을지원하도록고안한차세대기술및아키텍처 4
빅데이터와 3V Variety: 데이터의다양성 Volme: 데이터의크기 Velocity: 데이터의처리속도 5
빅데이터출현배경 기업의고객데이터트래킹 / 수집행위증가 Ø 더많은데이터스토리지저장공간과정교한분석능력필요 멀티미디어콘텐츠와콘텐츠사용에관한정보의증가 Ø 대용량멀티미디어콘텐츠생산및동영상의고화질화로인하여인터넷트래픽급증 SNS 의급격한확산과비정형데이터의폭증 Ø 페이스북에서의일인당생성콘텐츠증가 ( 월평균 90 개 ) M2M 확산에따른센서저변확대 Ø 현재 3 천만개이상의인터넷센서가설치 6
빅데이터의중요성 (1) 2010 년제타시대진입 (ZettaByte,1,000,000PB) 스마트폰의확산 SNS 사용확대 M2M 센터구축 디지털데이터는해마다 8 배의속도로증가
빅데이터의중요성 (2) 각기업의 Big Data 보유규모는거대한가치를창출할정도의정보를응축하고있는수준에도달 미국은대다수의기업이 100TB 이상의정보보유상당수는 1PB 이상보유
빅데이터의중요성 (3) 불가능한비즈니스를성공적인비즈니스로전환 캐나다의회의 수백만건 의문서를활용, 영어 - 불어자동번역시스템개발 수억건 의자료를활용, 50 개언어간의자동번역시스템개발
빅데이터의중요성 (4) 빅데이터를활용해서성장한글로벌기업 최초로 Big Data 처리기술개발. 이를통한가장정교한검색결과제공 Big Data 처리기술을이용해소셜네트워크서비스제공 사용자정보처리를통한추천시스템에서전체매출의 30% 발생 Big Data 처리를통한추천시스템제공으로 1 위 DVD 제공업체유지
빅데이터의중요성 (5) 기존데이터인프라의한계극복 l 현업부서 IT/ 민첩성결여 l 비즈니스성과저하 l 고비용및복잡성 l 지연및 IT 리엔지니어링
빅데이터는어렵다 Why? 엄청난데이터볼륨 다양한데이터구조 변화하는데이터요구사항 We need tools bilt specifically for Big Data!
빅데이터라이프사이클
데이터분류방법 - 생성주체 l l l 컴퓨터생산데이터 애플리케이션서버로그 ( 웹사이트, 게임등 ) 센서데이터 ( 날씨, 물, 스마트그리드 ) 이미지 / 비디오 ( 트래픽, 보안카메라 ) 사람이생산하는데이터 트위터 Firehorse : 하루에 5,000만개, 매년 1,400% 씩증가블로그, 이메일, 사진, 게시판글 소셜그래프 페이스북, 링크드 - 인, 컨택츠등
데이터분류방법 - 데이터특성 Unstrctred Semi-Strctred Strctred
데이터분류방법 - 데이터크기 빅데이터 > 엔터프라이즈데이터 > Discrete 데이터 구분빅데이터엔터프라이즈데이터이산 (Discrete) 데이터 기술 관계형데이터베이스에저장하기어려운 ( 비용 ) 큰파일들 주로관계형데이터베이스 스프레드시트, 파일데이터베이스, 이메일첨부, JSON/XML 데이터등작은파일들 적용사례 대규모트랜잭션이나대용량데이터를실시간또는배치로분석하는경우 CRM, ERP, DW, MDM 등오늘날기업내대부분의데이터 데이터가많지않은, 이메일이중요한의사결정수단으로사용되는회사
전통적인데이터라이프사이클 (2) Distribtion (1) Creation and Receipt Information Lifecycle Management (3) Use (5) Disposition (4) Maintenance
빅데이터라이프사이클관리 전통적인데이터관리와유사한절차와단계 빅데이터처리 / 분석기술 (3V 등 ) + (2) Distribtion (1) Creation and Receipt Information Lifecycle Management (3) Use (5) Disposition (4) Maintenance
빅데이터처리흐름 데이터소스 수집 저장 분석 표현 내부데이터 로그수집기 데이터 Integration 배치처리 검색 분산스토리지 분석알고리즘 스크립트엔진 웹로봇 NoSQL 외부데이터 RSS Feed Open API 실시간 & 배치 관계형 DB 분산병렬처리
주요오픈소스기술
기술분류 표현기술 대시보드 차트 / 그래프 웹기술 시계열 3D 렌더링 보고서 분석알고리즘 소셜네트웍분석 기계학습 통계모델링 데이터 / 텍스트마이닝 자연어처리 시맨틱분석 분석인프라 분산스토리지 분산데이터베이스 분산병렬처리 분산데이터수집 스크립트엔진 데이터통합 검색엔진 관리도구 분산코디네이터 ETL 프로비저닝 / 설정관리 경량애플리케이션서버 Rle/ 정책관리 리스소관리 / 모니터링
빅데이터기술스택 표현기술 표현기술 / 알고리즘 대시보드차트 / 그래프웹 UI 보고서 실시간분석 배치분석 스트리밍분석 (S4, Akka) CEP 엔진 (Esper) 기계학습 (Mahot) SNA 스크립트엔진 (Hive, Pig) 웍플로우엔진 (Oozie) 통계컴퓨팅 (R) 행렬곱연산 (CUDA) 분석인프라 데이터통합 DB 스토리지간데이터 (Sqoop) 데이터수집 MapRedce(Hadoop) 데이터저장 NoSQL( 스토리지 ) HBase, Cassandra, MongoDB Pregel(Giraph) 검색엔진 Elastic Search, Katta, Solr NoSQL( 메모리 ) Redis, Membase 로그수집기 Flme, Chkwa, Scribe 파일시스템 Hadoop, GlsterFS, Swift, Ceph 22
오픈소스생태계 분야 NoSQL Cache RPC, 경량서버데이터수집, 저장 Script Langage Workflow Qee Machine Learning Statistics, Matrix Streaming Analysis Graph Analysis Distribted Coordinator Search Engine Data Integration FileSystem Clod Service 솔루션 HBase, Cassandra, MongoDB, CochBase, Clodata, Riak 등 Redis, Membase 등 Thrift, Avro, Protocol Bffer 등 Scribe, Flme, Chkwa 등 Hive, Pig 등 Oozie, Azkaban, Cascade, Pentaho DI 등 Kafka, BooKeeper Mahot, Radoop, Rapid Miner R, RHIPE, Sege, CUDA 등 Akka, Storm, Esper, S4 GoldenOrb, Giraph, Hama 등 ZooKeeper Katta, Elastic Search, Solr 등 Sqoop Hadoop, MogileFS, Swift, GlsterFS, Ceph 등 Whirr 등
생성 / 수집기술 - 로그수집 빅데이터시대의데이터 ( 로그 ) 수집시스템요건 확장성 : 수집대상서버대수무한확장 ( 수천 ~ 수만대 ) 안정성 : 데이터가유실되지않고안전하게저장실시간성 : 수집된데이터를실시간으로반영유연성 : 다양한포맷의데이터를지원해야함 Flme Chkwa Scribe
생성 / 수집기술 - 로그수집 오픈소스프로젝트사례 : 아파치 Flme Configration Heartbeat Master Master tail -f Agent Sorce Sink Cp Memory I/O Load sar Agent Sorce Sink Collector Sorce Sink Hadoop DFS Agent Sorce Sink Collector Sorce Sink HBase 전송방식 분산모드 Failover 설정
저장기술 - 분산스토리지 빅데이터시대의분산스토리지요건 저비용 : 범용 x86서버와 SATA 디스크사용고확장 : 수PB~ 수백PB 이상데이터저장고가용 : 데이터 3중복제를통한데이터안정성보장고성능 : 대규모 IO 처리, Throghpt 의선형확장성
저장기술 - 분산스토리지 오픈소스프로젝트사례 : 하둡분산파일시스템 대규모분산파일시스템 (Yahoo 45,000대클러스터 ) 파일을고정크기의블록들로나누어서저장블록 Replication 및 Self-Healing 수많은 Reference, 연관프로젝트들 è 강력한에코시스템분산병렬처리 (MapRedce) 에최적화단점인마스터데몬의고가용성과확장성해결 (0.23.X~)
저장기술 - NoSQL 비관계형데이터베이스를지칭하는데이터저장소 Not Only SQL 이라는표현을사용, Key-Vale 형식으로데이터를범용서버에분산해서저장 분산병렬처리에적합한확장성과고성능 I/O 제공 데이터스키마와속성들을동적으로정의 기존관계형 DB 의 ACID 속성미지원, Join 어려움 RDBMS Availability Consistency 세가지속성을모두만족시키는저장소는구성하기어려움 Bigtable Clodata HBase Partition Tolerance Dynamo Cassandra http://lpd.epfl.ch/sgilbert/pbs/brewersconjectre-sigact.pdf
저장기술 - NoSQL 주류 NoSQL 메모리기반 후발 (?) 주자 국내솔루션
저장기술 - 검색엔진 스태밍 인덱싱 웹로봇 스토리지 형태소분석 DB 질의분석 랭킹 Faceting Highlitin g NLP Lcandra HBasene
데이터통합기술 - Sqoop MapRedce 를위한 RDBMS 와하둡간데이터컨넥터 HBase
데이터통합기술 - Sqoop col1 col2 Map1 데이터베이스 row1 row2 row3 row4 row5 row6 row120 Map2 Map40 HDFS 32
데이터통합기술 - Workflow Pentaho DI Oozie 33
데이터분석기술 - MapRedce l Google 에의해고안된병렬프로그래밍모델 map (k1,v1) -> list(k2,v2) redce (k2, list (v2)) -> list(v2) Map1 파일1-1 파일 1-2 파일1-1 파일 2-1 Block-1 Block-2 Block-3 Map2 Map3 파일2-1 파일2-2 파일3-1 파일3-2 파일3-1 파일4-1 파일5-1 Redce1 결과파일 1 Block-4 Block-5 Hadoop File Map4 Map5 파일4-1 파일4-2 파일5-1 파일5-2 파일1-1 파일2-1 파일3-1 파일4-1 파일5-1 Redce2 결과파일 2
데이터분석기술 Pregel l 오픈소스 Blk Synchronos Parallel 모델 Google의 Pregel( 분산그래프분석 ) 구현 MapRedce는관계가복잡한알고리즘구현한계 MapRedce에비해파일시스템연동단순
데이터분석기술 - Qery 엔진 쉽게 MapRedce 작업을수행하도록해주는질의엔진
데이터분석기술 - Qery 엔진 MR 코딩 Hive 이용 select t2.rl, cont(1) as visits from serinfo t1 join webdata t2 on (t1.id=t2.id) where t1.age > 17 and t1.age < 26 grop by t2.rl sort by visits DESC limit 5;
데이터분석기술 - GPGPU MapRedce with CUDA
데이터분석기술 - 알고리즘 R 프로젝트 오픈소스통계패키지 (http://www.r-project.org/) 시각화기능 기계학습기능 아파치 Mahot 프로젝트 다양한정보분석알고리즘제공 아파치 Mahot 프로젝트 (http://mahot.apache.org) 하둡분산파일시스템과 NoSQL 데이터베이스상의데이터를대상으로 MapRedce 작업실행 Ø 행렬곱, 벡터연산작업 Ø 클러스터링 : Canopy, K-Means 등 Ø 협업필터링 (Collaborative Filtering)
데이터분석기술 - 알고리즘 Mahot 을이용한 Canopy Clstering #3~6 임의의데이터집합에대해서상호연관성이있는데이터들의그룹을만들어주는알고리즘 Ø 데이터는 MapRedce가처리할수있는포맷으로변환 ( 좌표값 ) Ø 각 Mapper는입력지점들의에대해병렬로캐노피클러스터링수행 Ø Redcer는캐노피의중앙지점에대해클러스터링 Ø 위의과정들이반복적으로수행하여최종값 ( 위치 ) 를만들어냄 40
데이터표현기술 - 시각화 시각화는기존데이터의진정한가치를알려주는기술 어떤데이터로누구를대상으로무엇을보여줄것인지 차트, 그래프, 도표, 보고서, 대시보드등다양한산출물대규모데이터셋에대한 Level of Degree 조정무수히 (?) 많은시각화도구중적합한 (?) 솔루션선택 ( 다양한기능, 데이터모델, 언어, 브라우저호환성등 ) GNUPlot matplotlib pyclster
데이터표현기술 - 시각화 오픈소스프로젝트사례 : Prefse 오픈소스 Interactive Information Visalization Toolkit 테이블, 그래프, 트리데이터모델지원 데이터속성, 인덱싱, 쿼리지원 (SQL 유사 ) Panning, Zooming 지원 42
데이터표현기술 HTML5 오픈소스프로젝트사례 : d3.js 경량 JavaScript Visalization 라이브러리 임의의데이터를 Docment 방식으로표현 HTML5 Canvas, CSS3, SVG 활용, 동적 Interaction & Animation 43
사례연구 - 아마존빅데이터서비스 EC2 + S3 + Elastic MapRedce 1 S3 에분석할대상데이터업로드 2 분석 Library(Mapper, Redcer 등 ) 업로드 3 하둡클러스터구성용가상머신설정 ( 개수, 사양등 ) 4 하둡클러스터설정및생성 5 S3 로부터데이터다운로드 (Mapper 나 Redcer 에서다른데이터소스선택가능 ) 6 데이터분석후결과데이터를 S3 업로드 7 결과조회 from S3
사례연구 - 구글빅데이터서비스 Google Storage + BigQery + Prediction API + Chart 1 데이터파일생성 (CSV 포맷 ) 2 dataset 생성 (RDBMS 의데이터베이스생성과유사 ) 3 테이블스키마생성 [ {"name": "name", "type": "string", "mode": "reqired"}, {"name": "gender", "type": "string", "mode": "nllable"}, {"name": "cont", "type": "integer", "mode": "reqired"} ] 4 Upload 테이블 : dataset 지정, 업로드파일선택, 테이블스키마지정 5 쿼리실행
Q&A