2017 년도 2 학기컴퓨터공학입문 상지대학교컴퓨터공학과고광만 http://compiler.sangji.ac.kr kkman@sangji.ac.kr
01 빅데이터의개념과처리과정 빅데이터등장배경 빅데이터를소셜미디어데이터로오인하기도함. 1990년이후인터넷이확산되면서정형화된데이터와비정형화된데이터가무수히발생하면서정보홍수개념이등장, 이것이오늘날빅데이터개념으로이어짐. 개인화서비스와 SNS의확산으로기본인터넷서비스환경재구성 전세계디지털데이터양이제타바이트단위로 2년마다 2배씩증가하여 2020년에는약 40제타바이트가될것이라고함. 특히스마트폰의보급으로데이터가매우빠르게축적되어제타바이트시대를스마트시대라고도함. 3
01 빅데이터의개념과처리과정 데이터양증가로기존의데이터저장, 관리, 분석기법으로데이터처리에한계가있어정보기술의패러다임변화 빅데이터용어를등장, 패러다임지능화, 개인화된시대를빅데이터시대라함. 4
01 빅데이터의개념과처리과정 5
01 빅데이터의개념과처리과정 빅데이터가차세대이슈로떠오르는이유 정보통신기술의주도권이데이터로이동 공간, 시간, 관계, 세상등을담은빅데이터 빅데이터는미래경쟁력과가치창출의원천 6
01 빅데이터의개념과처리과정 빅데이터개념과속성 속성 규모 - 데이터의크기 다양성 - 다양한종류의데이터를수용하는속성 속도 - 데이터를빠르게처리하고분석할수있는속성 정확성 - 데이터에부여할수있는신뢰수준 가치 - 빅데이터를저장하려고 IT 인프라구조시스템을구현하는비용 7
01 빅데이터의개념과처리과정 8
01 빅데이터의개념과처리과정 빅데이터정의 9
01 빅데이터의개념과처리과정 빅데이터위치 10
01 빅데이터의개념과처리과정 빅데이터종류와유형변화 11
01 빅데이터의개념과처리과정 12
01 빅데이터의개념과처리과정 전통적데이터와빅데이터특징비교 13
01 빅데이터의개념과처리과정 빅데이터처리특징 14
01 빅데이터의개념과처리과정 빅데이터속성과처리특징 15
01 빅데이터의개념과처리과정 빅데이터처리과정과기술 16
01 빅데이터의개념과처리과정 17
01 빅데이터의개념과처리과정 빅데이터소스생성과수집기술 내부데이터수집 : 자체적으로보유한내부파일시스템, 데이터베이스관리시스템, 센서등에서정형데이터를수집 외부데이터수집 : 인터넷으로연결된외부에서비정형데이터를수집 18
01 빅데이터의개념과처리과정 빅데이터저장기술 19
01 빅데이터의개념과처리과정 빅데이터처리기술 맵리듀스 R 분산병렬데이터처리기술의표준, 일반범용서버로구성된군집화시스템을기반 으로 < 키, 값 > 입력데이터분할처리및처리결과통합기술, job 스케줄링기술, 작업 분배기술, 태스크재수행기술이통합된분산컴퓨팅기술 R 언어와개발환경으로기본적인통계기법부터모델링, 최신데이터마이닝기법 하둡 까지구현및개선이가능 정형 비정형빅데이터분석에가장선호되는솔루션 NoSQLNo SQL;Not only SQL 전통적인관계형데이터베이스 RDBMS 와는다르게설계된비관계형데이터베이스 20
01 빅데이터의개념과처리과정 21
01 빅데이터의개념과처리과정 22
01 빅데이터의개념과처리과정 빅데이터분석기술 23
01 빅데이터의개념과처리과정 24
01 빅데이터의개념과처리과정 빅데이터표현기술 25
01 빅데이터의개념과처리과정 빅데이터활용분야와기대효과 26
01 빅데이터의개념과처리과정 활용분야 공공분야- 국가적차원에서방대한양의데이터로수자원관리, 스마트그리드, 재난방재영역등을포괄적으로포함. 과학분야 산발적으로흩어진과학데이터를국가차원에서수집, 가공, 유통, 재활용할수있는기반을마련 의료분야 - 의료기록의전자화, 병원간연구데이터공유로빅데이터도입과활용이확대됨 도소매분야 이미데이터를활용중이며빅데이터분석으로수요예측및선제적경영지원에초점을둠 제조분야 보유데이터양이많고, 불량품개선비용등적용효과를계량화하여빅데이터의유용성을확인할수있는분야 정보통신분야 이동통신의발전과개인단말기의증가로생성된디지털공간의개인데이터로목표마케팅, 개인화서비스확대 27
01 빅데이터의개념과처리과정 기대효과 이상현상감지- 업무에서발생하는이벤트를기록하여 정상상태, 비정상상태 를표시하는패턴을파악하고, 이패턴을기초로새로운이벤트가발생할경우이상현상여부를판단함, 마케팅분야에도활용 고객이탈을사전에감지한 T-Mobie 위키리크스데이터분석으로효과적인전술정보제공 아마존닷컴의추천상품표시, 구글및페이스북의맞춤형광고 28
01 빅데이터의개념과처리과정 빅데이터시대준비 데이터경제시대를대비하는 연결과협력 데이터는무한한자원이나활용가능한자원의영역은상호연결과협력으로더욱확장될수있음 빅데이터핵심역량인 창의적인력 의양성 빅데이터는많은데이터를수집하는것보다무엇을분석할것인지분명한목적의식과통합적사고력, 해석력이중요함 향후미래에데이터관리자등분석인력이부족해짐에따라전문가양성이시급함 데이터신뢰환경의구축 데이터에민감한개인사용자정보의노출없이도타당한수준의분석을도출할수있는방안을고려해야함 29
개요 02 빅데이터의수집및통합기술 의미있는분석이가능한데이터는보통 양 에의존하는데인터넷과컴퓨터의발전으로많은양의데이터 ( 정형, 비정형 ) 가수집가능해짐 비정형데이터의처리에어려움이생김 하둡 구글의소프트웨어, 방대한양의데이터를효과적으로수집, 설치와사용이쉬움 31
02 빅데이터의수집및통합기술 빅데이터주요수집및통합기술 32
02 빅데이터의수집및통합기술 Flume 플럼 - 이벤트로그데이터를효율적으로수집하고집계할수있는 로그수집기, 안정성과가용성이높음 33
02 빅데이터의수집및통합기술 Chukwa 척와 - 로그데이터수집및분석, 출력, 모니터링시스템 하둡기반으로동작함 ( 반드시하둡설치 ) 응용프로그램의로그저장모듈을수정하지않아도로그수집가능 하둡분산파일시스템을그대로수용하고실시간분석이가능한장점 34
02 빅데이터의수집및통합기술 Scribe 스크라이브 분산형로그수집서버, 오픈소스프로젝트 하루에메시지수십억개를저장가능, 중앙서버그룹과노드당 Scribe 서버한대로구성됨 기존클라이언트를수정하지않고도로그데이터를수집할수있는크로스플랫폼클라이언트라이브러리를제공 SQOOP SQl-to-hadOOP; 스쿱 기존 RDBMS 에서하둡으로데이터를이전하려고시작한프로젝트 JDBC인터페이스를사용하므로 MySQL, PostgreSQL, 오라클등다양한데이터베이스시스템을지원함 아파치하둡기반프로젝트인 Hive, Pig, Hbase 등과도호환이잘되어 RDMS 와 NoSQL 간의데이터연동에많이사용됨 35
02 빅데이터의수집및통합기술 36
02 빅데이터의수집및통합기술 Kafka 카프카 LinkedIn 링크드인에서사용중인아파치의초기프로젝트인 Kafka는확장성이좋고처리량이높은분산메시지시스템으로지속적이고우수한메시지전달성능을보장함 37
02 빅데이터의수집및통합기술 OpenRefine 오픈리파인 학계나관공서에서발표하는대규모데이터에정제되지않은상태로있는데이터를깔끔하게정리해주는데이터정제툴, 크고복잡한스프레드시트를정리가능함 기능 생성된데어터집합에서흔하게나타나는일반적인오류를수정하고방대한양의데이터에포함된불필요한데이터를정리함 38
02 빅데이터의수집및통합기술 JSON JavaScript Object Notation; 제이슨 인터넷에서데이터를주고받을때그데이터를표현하는방식 기존 XML과비슷하지만용량이작고변환속도가빠름 JSON은데이터의종류에제한이없어웹의데이터를정형화하는데사용됨 JavaScript 의구문형식을따르지만프로그래밍언어나플랫폼에독립적임 텍스트로되어사람과기계모두읽고쓰기쉬우며, 프로그래밍언어와플랫폼에독립적이기에서로다른시스템간에쉽게객체교환가능 39
02 빅데이터의수집및통합기술 BSON Binary javascript Object Notation; 비슨 JSON 의이진표현형식, 데이터저장엔진으로활용 JSON 에비해속도가빠르고크기가작다는특징이있음 저장공간의활용이비효율적이며지원하는라이브러리가많지않음 40
02 빅데이터의수집및통합기술 Thrift 쓰리프트 확장성높은이기종언어서비스를지원하는소프트웨어프레임워크 복잡한비정형데이터객체의정형화기능, 정형화된데이터를취급할수있는 인터페이스기능, 응용계층과무관한하부데이터형식지원기능이있음 단점 - 라이브러리 API 의업데이트가잦고, XML 의직렬화및역직렬화기능 을제공하지않으며, 코드가복잡함 특징 - 버전닝지원, 여러언어지원및언어별소스생성, 언어간직렬화기능, 동기 비동기 API 제공, XML 설정불필요, RPC 지원등 Protocol Buffers프로토콜버퍼스 오픈소스직렬화라이브러리 구글내에있는많은시스템과다양한운영체제및언어환경에서서로통신할 수있도록직렬화방법으로개발한라이브러리를오픈소스화한것 XML 에비해속도가빠르고데이터크기가작고, 코드가간단하며, 개발이쉽 다 41
02 빅데이터의수집및통합기술 메시지를연속된비트로생성, 이와반대로비트에서원래의메시지로만들수 있으며, 패킷을전송하는데유용함 42
02 빅데이터의수집및통합기술 Avro 에이브로 데이터직렬화시스템 Thrift, Protocol Buffers와기능은비슷함 기본적으로데이터를활용할수있도록스키마와인터페이스기능을제공, 여기서생성한스키마는데이터와전송하며, 이스키마는 JSON 파서의기능으로정의 인코딩과디코딩을할때저장공간을많이차지하며성능을저하시킨다는단점이있음 지원언어 C, C++, Java, PHP, Python, Ruby 등 43
개요 03 빅데이터저장및관리기술 기존의데이터저장구조가한계에달함 45
03 빅데이터저장및관리기술 새로운저장기술의등장 NoSQLNo SQL;Not-only SQL NoSQL 의장 단점및특성 46
03 빅데이터저장및관리기술 NoSQL 의기술적특성 47
03 빅데이터저장및관리기술 NoSQL 의분류 48
03 빅데이터저장및관리기술 49
03 빅데이터저장및관리기술 S3 Simple Storage Service [03] 아마존 S3는인터넷스토리지서비스 개발자가더욱쉽게웹기반의컴퓨팅작업을수행할수있도록설계함 웹에서용량에관계없이데이터를저장하고검색할수있는웹서비스인터페이스를제공하여개발자가확장성과신뢰성을제공하면서비용효율적인인프라를활용할수있음 50
03 빅데이터저장및관리기술 HDFS Hadoop Distributed File System [05] 하둡은아파치진영에서분산환경컴퓨팅을목표로시작한프로젝트임 파일시스템은분산처리환경에서필수조건으로하둡은 HDFS를제공함 하둡은마스터 Master 하나와슬레이브 Slave 여러개로클러스터를구성함 HDFS에서는마스터노드를 NameNode라고하며, 슬레이브노드를 DataNode 라고함 HDFS는대용량파일을클러스터에여러블록으로분산하여저장함, 이때블록들은마지막블록을제외하고모두크기가동일, 기본크기는 64MB. HDFS는데이터복제기법을지원함 51
03 빅데이터저장및관리기술 52
03 빅데이터저장및관리기술 DynamoDB 다이나모 DB 아마존웹에서유 무료로서비스 하드웨어프로비저닝, 복제, 설정패치, 사용하는응용프로그램에따른 DB 자동분할기능등을지원하며, 사용자는원하는만큼데이터베이스를생성하거나삭제하여데이터를저장할수있음 DynamoDB의모든데이터는 SSD에저장 DynamoDB의기본데이터모델은속성, 항목, 테이블로구성됨. 그리고속성은 < 이름, 값 > 쌍으로구성. 이름은문자열이어야하며, 값은문자열, 숫자, 바이너리, 문자열세트, 숫자나바이너리집합등의형태일수있음 53
03 빅데이터저장및관리기술 54
03 빅데이터저장및관리기술 MongoDB MONGOus DB; 몽고 DB [07] 신뢰성과확장성에기반한문서지향데이터베이스 방대한양의데이터에서낮은관리비용과사용편의성을목표로하는 MongoDB는 10gen이오픈소스로개발한것으로, 상업적인지원이가능하다. MongoDB 에서저장의최소단위는문서 각문서들은 RDBMS의테이블과비슷한컬렉션이라는곳에수집하며, 각컬렉션은데이터베이스에서관리한다. MongoDB 는자동 - 샤딩 Auto-Sharding 을이용한분산확장이가능함 샤딩은데이터를분할하여다른서버에나누어저장하는과정을말하며, 기존 DBMS 의범위질의, 보조인덱스, 정렬등연산과맵리듀스등집계연산을함께지원한다. 데이터는 BSON 형태로저장하며, C++ 로작성한다. 그리고서버의용량이부족할때새로운샤드 Shard 노드를추가하면자동으로재분산 Re-Distribution 을수행한다 55
03 빅데이터저장및관리기술 56
03 빅데이터저장및관리기술 CouchDB Cluster Of Unreliable Commodity Hardware DB; 카우치 DB 인터페이스가 JavaScript 로구성된문서기반데이터베이스 MongoDB 보다제공질의, 확장성, 버전관리등에서성능이더우수함 다른데이터베이스와속성Atomicity ( 원자성 ), Consistency ( 일관성 ),Isolation ( 독립성 ), Durability ( 지속 성 ); ACID 이같아데이터가여러시점에서접근할때발생할수있는문제점을다 중버전동시동작제어기능으로해결할수있다. 하지만쓰기작업중충돌이 발생하면다른기술에비해클라이언트의부하가증가한다는단점이있다 아파치프로젝트중유일하게 Erlang 얼랭을언어로사용하며데이터표현방식 은 JSON 파서를사용한다 CouchDB 는양방향복제와맵리듀스를지원하기때문에오프라인모드로사 용하다추후동기화할수있다 CouchDB 에서는충돌을예외상황으로구분하지않으며충돌문서도복제, 보 안적용등일반문서와똑같이취급한다 전체텍스트검색 API, 뷰인덱스, 확장가능한보안모델등을지원함 57
03 빅데이터저장및관리기술 CouchDB 의관리화면 [09] 58
03 빅데이터저장및관리기술 Cassandra카산드라 [10] < 키, 값 > 구조의 DBMS 로페이스북에적용하여사용하다가 2008 년구글을이 용하여오픈소스로배포함 특징 토큰링배경의키구간이설정되어있어서버 ( 노드 ) 의추가및제거만으로도전체저 장공간의유연한확장및축소가가능하다 다른서버 ( 노드 ) 에데이터복제본을구성하여특정노드에장애가발생해도서비스에 영향을주지않고, 데이터가유실되지않는다 수정 추가 삭제할때실제스토리지구조에적용하기전에먼저 CommitLog 에변경 사항을기록하므로 MySQL 대비 8~15 배빠른성능을보인다 1 차인덱스는열집합의열이름, 2 차인덱스는열의값을기반으로한다 데이터전송프로토콜로 Thrift 를사용하며, 사실상언어에의존없이모든환경에서 이용가능하다 물리파일저장구조로 SSTable Sorted, String, Table 을사용함. 물리파일을저장하는구조 자체가 1 차정렬조건에맞추어사전정렬된형태를유지한다 59
03 빅데이터저장및관리기술 60
03 빅데이터저장및관리기술 HBase Hadoop database; H 베이스 행, 열그룹, 열이름, 타임스탬프를이용한테이블구조 하둡파일시스템위에설치되며, ZooKeeper 주키퍼를노드관리에사용 읽기와수정은즉시실행되며, 맵리듀스연산은일괄처리됨 각프로세스는자신의레코드를비동기적으로업데이트함 영역서버 Region Server 간의시스템대체작동과불량클러스터복구기능, Get/Put/Scan/Delete의네가지동작을지원함 데이터모델은열집합기반의저장소로구성됨 61
03 빅데이터저장및관리기술 62
03 빅데이터저장및관리기술 63
03 빅데이터저장및관리기술 Redis Remote Dlctionary System; 레디스 메모리기반의 < 키, 값 > 저장공간, NoSQL 이나인메모리솔루션으로분류하기도함, 다양한데이터구조를지원하며, 메모리에저장된내용을지속시키려고파일로싱크하는기능을제공한다 데이터타입 String : 일반적인문자열로최대 512MB까지지원, 문자열뿐만아니라숫자와 JPEG 등바이너리파일도저장가능 Set : string의집합. set 간의연산을지원하는데이것으로교집합, 합집합, 차집합등을빨리얻을수있음 stored set : 일종의가중치가설정된데이터타입. 데이터는오름차순으로내부정렬되며, 정렬되어있는만큼 score 값범위에따른질의, 톱랭킹에따른질의등이가능 Hashe : 값내의 < 필드, 문자 > 쌍으로, RDBMS의기본키한개와문자열필드하나로구성된테이블 list : 문자열의집합으로저장되는데이터로형태는 set과비슷하지만, 일종의양방향연결리스트임. list 앞과뒤에서 Push/Pop 연산을이용하여데이터를삽입 삭제할수있고, 지정된인덱스값을이용하여지정된위치에데이터를삽입 삭제할수있음 64
03 빅데이터저장및관리기술 65
03 빅데이터저장및관리기술 Riak 리악 DynamoDB 계열에속함. 데이터모델은 < 키, 값 > 저장형식을취하는데, 값은 JSON문서가저장되는문서지향데이터베이스형식임 구성 링형태의데이터분산저장구조 Riak의클러스터링단위는크게노드와 v노드로구분할수있는데, 노드는물리적인서버를말하며, v노드는논리적인서버를말함. Riak은이링구조를실행하는중에도동적으로재설정 ( 노드의추가 삭제 ) 가능 노드를동적으로재설정해야하는상황이발생하면 Riak이데이터를변형된링구조에따라자동으로재배포함 66
03 빅데이터저장및관리기술 67
03 빅데이터저장및관리기술 Hypertable 하이퍼테이블 C++ 언어로개발됨, Hypertable은열그룹과타임스탬프개념을사용함 HQL이라는 SQL과비슷한명령어를제공하여 RDBMS와기능이비슷함 C++ API를완벽하게제공하고, Java로개발된 HBase보다성능이뛰어남 68
03 빅데이터저장및관리기술 ZooKeeper 주키퍼 하둡의분산처리시스템 (Hadoop, Chukwa, Pig 등 ) 을관리하는분산처리시스템을일괄적으로관리하는시스템 다중서버집합을묶어관리해주는시스템으로야후의분산코디네이터임 분산처리시스템의장애문제해결을위해개발됨 69
03 빅데이터저장및관리기술 Voldemort 볼드모트 LinkedIn에서개발, Java 기반의 < 키, 값 > 저장형식인데이터베이스로일종의해시테이블임 복잡한구조의벡엔드로, 분산대형클러스터환경에서동작함 일관성있는해싱을사용하여키와관련된저장위치를빠르게조회할수있고, 버전을제어하여일치하지않는값들을신속하게처리함 여러개의값을매우비슷한시간에여러클라이언트에서기록할때한번의읽기연산으로거의동시간에기록한값을처리함 70
개요 04 빅데이터처리기술 기존의데이터처리방식이방대한양의데이터를한번에얼마나빠르게처리하는지에초점을맞췄다면, 현재의데이터처리기술은저장된방대한양의데이터를사용자가원하는부분에맞춰원하는시간에처리하는데초점을둔다 72
04 빅데이터처리기술 73
04 빅데이터처리기술 74
04 빅데이터처리기술 75
04 빅데이터처리기술 Hadoop 하둡 여러컴퓨터로구성된클러스터를이용하여방대한양의데이터를처리하는분산처리프레임워크. 엔진형태로되어있는미들웨어와소프트웨어개발프레임워크로구성되어있음 즉시응답해야하는트랜잭션처리보다는데이터를모은후처리하여작업을완료해야응답을주는방식으로설계되었음. 따라서어느정도의시간이소요되는방대한양의데이터처리에적합함 맵리듀스의분산처리구조를사용하며맵리듀스는하나의큰데이터를여러개의조각으로나누어처리하는맵단계와처리된결과를하나로모아서취합한후결과를도출해내는리듀스단계로구성되어있음 76
04 빅데이터처리기술 77
04 빅데이터처리기술 Pig 피그 아파치하둡세부프로젝트중하나로, 절차적데이터처리언어프레임워크 Pig 는고수준언어로데이터분석을프로그래밍할수있는방대한양의데이 터분석플랫폼이며, 이를평가할수있는인프라도함께제공하며큰특징은 대규모병렬처리에대응할수있는구조라대규모데이터처리가용이하다는 것이다 Pig Latin 피그라틴의특징 데이터흐름을명시적으로보여줄수있는코드작성이가능함 이해하기쉽고유지보수가용이 시스템이코드실행을자동으로최적화하므로사용자는효율성을생각하지않고프로그래밍내용에만집중할수있음 Pig 에서제공하는 Pig Latin 은 int, long, double 등기본형외에릴레이션 Relation, 백 Bag, 튜플 Tuple 과같은고수준의구조를제공하며, Filter, Foreach, Group, Join, Load, Store 등관계 Relation; Table 연산도지원함, 사용자지정함수도쉽게정의가능 Pig Latin 으로작성한데이터처리프로그램은논리적인실행계획으로변환되고, 이것은최종적으로맵리듀스실행계획으로변환됨 78
04 빅데이터처리기술 79
04 빅데이터처리기술 Hive 하이브 하둡에서동작하는 SQL 프로그램을구현할수있는 Hive는하둡기반의데이터웨어하우스인프라로, 관계형데이터베이스에익숙한개발자에게훌륭한인터페이스를제공함 Hive는 SQL과같이선언적으로데이터를처리할수있음 Hive는 HDFS나 HBase와같은빅데이터의원본을 HiveQL 질의언어를이용하여분석 맵리듀스기반의실행부분과데이터가저장된공간의메타데이터정보, 사용자나응용프로그램에서질의를입력받아실행시키는실행부분으로구성됨 스칼라값, 집합, 테이블수준에서사용자정의함수를지정할수있는기능을제공하여사용자확장을지원 80
04 빅데이터처리기술 81
04 빅데이터처리기술 Cascading 캐스캐이딩 하둡용오픈소스소프트웨어추상화계층 사용자들이 JVM JavaVirtual Machine; 자바가상머신기반의언어를활용하여하둡클러스터에서데이터프로세싱워크플로우를제작하고, 제작한프로그램을실행할수있도록지원 광고타깃팅이나로그파일분석, 생물정보학, 기기학습, 예측적관점의분석, 웹콘텐츠마이닝, ETLExtract/Transform/Load 응용프로그램등에주로사용 장점 다른추상화계층기술인 Pig, Hive 등과같이맵리듀스작업의복잡성을숨겨줌 특징 데이터처리 API 제공 : Cascading은복잡한데이터흐름을정의하고정교한데이터중심프레임워크를개발할수있는 API를제공 데이터통합 API 제공 : Cascading을이용하여복잡한통합문제를해결하기전에추가할기능들을생성하고, 실제환경과비슷하게테스트할수있게함 82
04 빅데이터처리기술 프로세스스케줄러 API 제공 : 다른응용프로그램과호환하여프로세스단위의스케줄을지정 예약할수있음 기업개발지원 : 기업의 Java 개발환경에맞도록설계하여대규모개발및테스트가가능 다양한언어지원 : Java 기반의 Cascading은 Scala 스칼라, Clojure 클로저, Ruby 루비, Jython 자이썬, Grooovy 그루비등 JVM 기반의다양한언어를지원 내결함성지원 : 클러스터중일부서버가데이터처리에실패하면다른서버에자동으로작업을넘겨활성화하도록구성됨. 따라서작업실패및오류때문에발생한손실을최소화함 83
04 빅데이터처리기술 Cascalog 캐스칼로그 Clojure 언어로개발되어기능적인데이터처리인터페이스를제공 Datalog 데이터로그언어의영향을받았으며, Cascading 프레임워크를바탕으로개발하여아파치 Pig, Hive, Cascading 등을대체할수있는툴임 SQL보다훨씬높은수준의사용자추상화를제공할수있으며, 이것으로작성한코드는하둡에서처리할수있게연동하여구성함 하둡클러스터에서작은규모의데이터를처리하는코드작성에적합 Cascading과비슷한방식으로입력과출력을다루며, 데이터의흐름을자연스럽게표현함 기능, 필터, 집계Aggregator가모두동일한구문을사용해작성이간편하며, 논리적으로잘구성되어약간의노력으로도쉽게 SQL과비슷한작업을수행 Null 값을처리하는핸들링기법을도입하여 Null 값의오류를최소화하고, Cascading과호환성도뛰어남 84
04 빅데이터처리기술 Mrjob 미스터잡 하둡이후로 Python을이용하여하둡을쉽게프로그래밍할수있게도와주는프레임워크가생겼음. 대표적인것이바로 Hadoopy 하둡피, Dumbo 덤보, Mrjob임 미국의맛집추천사이트로유명한 Yelp 옐프에서만든 Python 라이브러리 데이터를처리하는코드를작성한후한곳에서작동하는엘라스틱 Elastic 맵리듀스나하둡클러스터에서동작하는프레임워크를제공 추상화나내장연산은지원하지않지만, 각단계에디버거를실행하여실제코드가내부에서어떻게동작하는지파악가능함 85
04 빅데이터처리기술 Mrjob 을사용한 Yelp 웹사이트검색결과화면 [05] 86
04 빅데이터처리기술 S4Simple Scalable Streaming System 야후에서공개한오픈소스기반의분산스트림처리시스템으로야후의서비 스운영에활용됨 실시간개인화검색광고의선택과위치지정, 야후의검색서비스제공등에 필요한데이터마이닝, 기계학습등을지원하며, 임의의이벤트스트림처리 에도응용할수있는오픈소스 ZooKeeper 프레임워크를사용하여클러스터들의분산실행을관리 87
04 빅데이터처리기술 MapR 맵알 아파치하둡의배포판공급업체인 MapR Technologies 맵알테크놀로지에서높은신뢰성을요구하는기업에제공하는상업용하둡. HDFS를대체할수있는자체파일시스템으로운영하며, 분산된네임노드가있어개선된신뢰성을제공함. MapR의새로운파일시스템은성능이더욱개선되고, 백업이쉬우며, 네트워크파일시스템 Network File System; NFS 과호환할수있는등데이터전송의단순화를제공하여맵리듀스처리량을향상하고입출력프로세싱속도도개선됨. MapR의프로그래밍모델은하둡과같지만, 핵심프레임워크를둘러싼인프라스트럭처를개선하여기업에적합한통합솔루션이라할수있음. 88
04 빅데이터처리기술 89
04 빅데이터처리기술 Acunu 아큐누 기존파일시스템을대체하여 MapR과같이새로운저수준의데이터저장계층을제공하는하둡보다는 Cassandra를대체하려고개발함. 처리속도를개선하려고빅데이터의분석질의, 범위질의에효과적인 tratified B-Tree를구현하여만든저장플랫폼. 오픈소스프로젝트로공개된 Acunu의 Castle은커널레벨에서 < 키, 값 > 을저장함으로써속도를향상시킬수있고, 기존의관계형데이터베이스와비슷한자동구성과다양한관리기능을제공함. 아파치 Cassandra와하둡에포함된표준 API를유지하여호환성을높이고, Cassandra의한계점을분석하여개선하려고노력함. 소규모의하드웨어및저렴한비용으로더많은작업을수행하는것이목표로, 제어및모니터링등이포함된관리도구를제공함. 90
04 빅데이터처리기술 91
04 빅데이터처리기술 Azkaban 아즈카반 [09] LikedIn의오픈소스프로젝트인 Azkaban은각서비스가여러개의연산들을통합하여비즈니스로직으로실행하며, 이것으로사용자가원하는워크플로우를정의할수있도록개발한배치스케줄러임. Azkaban은사용자가세부작업까지관리하기어려운문제를해결하려고, 스케줄링기법을이용하여진행한작업을서로관련있는여러단계로나눠처리하기번거로운세부과정들을처리함. 로그기능을제공하여오류가발생하면이를찾아관리자에게이메일로상황을알려주며, 웹인터페이스로작업의진행상황을파악함. 유닉스명령어나 Java프로그램을불러오는최소한의명령어로된텍스트파일로처리할일을구성하고, 복잡한내부구현은각명령어나 Java 프로그램으로구현함. 92
04 빅데이터처리기술 93
04 빅데이터처리기술 Oozie 우지 Azkaban과함께하둡기반의워크플로우제어시스템. 프로세스를실행할때워크플로우에관련된결정을특정단계에서내릴수있도록 XML 파일을이용하여설정할수있게함. Java 서블릿컨테이너에서실행하는 Java 웹응용프로그램으로, 사용자가시스템의기능을확장할수있는 API도지원, 하지만 Azkaban에비해인터페이스가강력하고복잡하여사용자가필요한기능에따라작업을선택해야함. Oozie의워크플로우동작들은원격시스템에서작업을시작함. 이워크플로우는제어플로우노드와동작 Action 노드를포함함. 제어플로우노드는워크플로우의시작과끝 (start,end, fail 노드 ) 을정의하며, 워크플로우의실행경로를제어하는메커니즘 (decision,fork, join 노드 ) 도제공하는데, 여기서동작노드는계산 처리작업을실행시키는원리임. 94
04 빅데이터처리기술 95
04 빅데이터처리기술 Greenplum 그린플럼 Shared-Nothing MPP Massively Parallel Processor 구조의데이터베이스이며, PostgreSQL 포스트그레스큐엘을기반으로함. 저장데이터는적용되는연산에따라행 Row 기반이나열 Column 기반방식중하나를선택할수있다. 데이터는서버에세그먼트단위로저장되며, 로그적재 Log Shipping 방식의세그먼트단위로복제하여가용성을확보함. Java와 R 언어로쓰인사용자함수를지원하며, 빠른프로세서와메모리용량이큰클러스터위에서동작할수있도록분산구조도지원함. 표준 SQL 인터페이스를활용할수있고, 다수의시스템에데이터를복제하는 RAID 기술을활용하여데이터손실도최소화함. 96
04 빅데이터처리기술 97
04 빅데이터처리기술 EMC Greenplum UAPUnifed Analytics Platform 관계형데이터베이스를하나로합친통합빅데이터분석소프트웨어. 빅데이터분석을지원하는기업에서사용가능한통합분석플랫폼. MPP 방식의데이터베이스, MapR, 빅데이터전문가. 정형데이터를분석하는 Greenplum 데이터베이스는데이터를분리하는 MPP 방식. Greenplum 아키텍처자체가증가하는정형데이터를병렬로처리하는데강하므로속도면에서다른기술보다유리함. 데이터를공유하지않아데이터베이스간의병목현상이발생하지않고, 높은성능을유지할수있으며필요한부분만읽어들이는열기반의데이터베이스도핵심기능임. 98
04 빅데이터처리기술 99
04 빅데이터처리기술 EC2Elastic Compute Cloud [13] 아마존 EC2 는클라우드에서컴퓨팅의규모를자유롭게변경할수있는웹서 비스이며, 개발자가웹스케일컴퓨팅을쉽게사용할수있도록설계함. EC2 는웹서비스인터페이스를사용하여다양한운영체제로인스턴스를시작. EC2 는메모리및 CPU 자원을시간단위로지정하여컴퓨터를임대할수있는 웹서비스. EC2 는슈퍼유저권한으로리눅스나윈도우서버네트워크에접근할수있으 며, 소프트웨어설치및시스템설정이자유로움. Elastic Block Storage 엘라스틱블록스토리지와 S3 로기존의파일시스템과동시에 활용할수있고, 엘라스틱 Elastic 맵리듀스서비스로하둡클러스터를간단히구 성함. 가상화계층이실제하드웨어구성설정을제한하기는하지만, 네트워크통신 이나데이터전송과정에서병목현상이발생하면자동으로많은가상머신을 활용하므로성능이비교적낮은시스템으로도문제를해결할수있다는장점. 100
04 빅데이터처리기술 Heroku 히로쿠 다양한프로그래밍언어를지원하는클라우드개발도구중하나. Heroku는 Ruby/Rails기반의웹응용프로그램에빠르게적용할수있는플랫폼임. Heroku를사용하면사용자가서버관리를신경쓰지않고응용프로그램개발과관리에만집중할수있으며, Heroku client gem을이용하면명령어모드에서응용프로그램을생성하고관리할수있음. Git 모듈을이용하여개발한응용프로그램을생성및배포할수있으며, 실행중인응용프로그램은원격 Ruby 콘솔과 Rake 명령어모듈로제어가가능. Heroku는개발자가간단하게응용프로그램을생성하고, 즉각적으로실행 제어할수있는환경을제공. 101
04 빅데이터처리기술 102
04 빅데이터처리기술 R 프로그래밍언어 통계적으로계산하고그래픽을처리하는프로그래밍언어이자소프트웨어환경. R은통계소프트웨어를개발하고데이터를분석하는데널리사용하며, 패키지개발이쉬워프로그래밍비전공자인통계학자사이에서많이활용. R은핵심패키지와함께설치되며, R의패키지배포환경인 CRAN the Comprehensive R Archive Network 에서다양한패키지를내려받음. 데이터분석결과를시각화할수있으며, 수학기호가정확히표시되는출판물수준의고화질그래프를제공함. 행렬을계산하는도구로 R을활용. 103
04 빅데이터처리기술 104
04 빅데이터처리기술 Pipes 파이프 Pipes는야후가제공하는웹응용프로그램으로, 데이터파이프라인을생성. Pipes는사용자가컴포넌트를드래그앤드롭하는방식의그래픽인터페이스를사용. 사용자는 Pipes를이용하여출처의정보를끌어와이를어떤규칙으로가공할것인지결정함. Pipes로방대한양의데이터를처리하기는어려우나, 전문가용의무료응용프로그램으로다수의소규모프로세스를연결시킬수는있음. 105
04 빅데이터처리기술 106
04 빅데이터처리기술 Mechanical Turk미케니컬터크 ; Mturk [17] 컴퓨터가수행할수없는임무를수행하게하려고프로그래머가사람의인지 능력을사용하는것을도와주는크라우드소싱인터넷마켓플레이스 Crowd Sourcing Internet Marketplace 아마존에서는 HIT 를제공하려고온라인으로사람과컴퓨터간의수많은협동 작업을관리하는데, 사람들의남는노동력을이용하여저렴하게하자는것이 Mturk 의목표. Mturk 에서는비즈니스목표를달성하는데도움을줄수있는작업자의가상 커뮤니티에접근가능하며, 강력한 API 와명령도구를사용하면인간의지능 이필요한작업을광범위하게분산된요구인력에게프로그래밍방식으로배 포가능함. 사용방법은구체적결과, 결과의형식, 작업항목표시방식, 작업완료에지불 할금액을 HIT 에정의하고, 이를마켓플레이스로로드한후일정시간이지나 지정한조건에만족하는결과를업로드했는지검색할수있음. 107
04 빅데이터처리기술 Solr/Lucene솔라 / 루씬 아파치 Lucene 기반의기업검색플랫폼인 Solr 는 Java 로작성되었으며, 아파 치톰캣 Tomcat 과같은서블릿내에있는독립적인전체 - 텍스트 Full-Text 검색서버 로작동함. 강력한전체 - 텍스트검색, 다각적검색, 동적클러스터링, 풍부한문서핸들링 이가능하여다양한부분에서상당히높은확장성을지원. Solr 는파일을인덱스하는검색엔진이상으로, XML 요청을 HTTP 로보내는 웹서비스 API 가있는검색서버로, Solr 검색서버 URL 을사용하면인터넷으 로파일질의및인덱싱하는곳에서는응용프로그램을생성할수있음. 다른 Solr 검색서버로캐싱과복사가가능. 108
04 빅데이터처리기술 109
04 빅데이터처리기술 ElasticSearch 엘라스틱서치 아파치 Lucene 기반의분산형태인오픈소스검색엔진서비스로일반사용자에게적합한서비스를제공함. 사용자는짧은대기시간에검색및인덱스갱신이가능. 문서지향적이고, 장기간지속해주는신뢰, 비동기쓰기, 실시간검색이가능하며, 설치및사용이비교적쉬움. Java로개발한 ElasticSearch는하나의클러스터에문제가발생하면진행중인작업이복제되어있는다른클러스터로자동으로이동하여결과를보여줌으로써단일고장점 Single Point Of Failure; SPOF 을제거함. 다중타입을갖는다중 Tenant( 하나이상의인덱스를지원, 인덱스마다하나이상의타입을지원, 인덱스계층별로제어가능 ) 의특징을보임. JSON 파서를사용하여인덱스데이터를다루기가쉽고, 다양한곳에서인덱스구성이가능함. 110
04 빅데이터처리기술 111
04 빅데이터처리기술 Datameer데이터미어 [20] 방대한양의데이터를처리하는하둡기반비즈니스지능형마켓을목표로설 계한 Datameer 는단순한프로그래밍환경을제공함. Datameer 는종류가서로다른방대한양의데이터를모아읽어들인후하둡 프레임워크에수집한데이터들을저장하고, 분석용도구를사용하는플랫폼 을공급함. Datameer 는하둡의복잡성을숨긴채분석도구를제공하며, 기업이데이터 분석용기술을사용하는데어려움을겪기시작하는크기인 10TB 이상의데이 터소스를대상으로함. Datameer 는일단사용자가분석하려는타입을명세화한후맵리듀스작업으 로변환시킴. 몇개의사용자친화적인데이터타입변화도구와시각화기능을제공하고, 제 공되는기능을활용하여인터페이스를설계함으로써강력한추상화레벨을 제공함. 112
04 빅데이터처리기술 113
04 빅데이터처리기술 InfoSphere BigInsights인포스피어빅인사이트 IBM 의 InfoSphere BigInsights 는인터넷에서정형화된데이터및비정형화된 데이터를관리하고분석하는 IBM 의다목적솔루션. 하둡을기반으로하며, 개인사용자및기업의요구를해결하려고 IBM 연구팀 의다양한분석기술에관리, 워크플로우, 프로비저닝, 보안기능을접목시켰 으며새로운기능몇가지를추가하여기존의분석기술을더욱향상시킴. 대표적인세부컴포넌트로스프레드시트기반의분석모듈인 BigSheets 가있 음. 114
04 빅데이터처리기술 115
04 빅데이터처리기술 InfoSphere Streams인포스피어스트림즈 IBM 의 InfoSphere Streams 는짧은시간안에방대한양의스트리밍데이터를 지속적으로분석할수있는 IBM 의또다른솔루션. InfoSphere Streams 는다양한정형화데이터및비정형화데이터유형을모두 지원하는강력한확장성과빠른속도의인프라를제공함. 이기능은빠른분석으로앞으로다가올상황에적절하게대처할수있게하는 데, 이는조직과개인의통찰력및의사결정능력을향상시키는데도움이됨. 116
04 빅데이터처리기술 117
개요 05 빅데이터분석기술 데이터마이닝Data Mining 저장된방대한양의데이터안에서자동으로체계적이고통계적인규칙이나 패턴을찾아내는데이터베이스파생기술. 다른말로 KDD Knowledge-Discovery in Databases 라고도하는데, 각종데이터베이스에 내재된의미있는지식의발견이라는뜻. 데이터마이닝기법은통계학분야에서발전한탐색적데이터분석, 가설검증, 다변량분석, 시계열분석, 일반선형모형등방법론과데이터베이스분야에서 발전한 OLAP On-Line Analytic Processing; 온라인분석처리, 인공지능분야에서발전한 SOM Self-Organizing Map; 자기조직화지도, 신경망, 전문가시스템등기술적방법론등에 사용. 119
05 빅데이터분석기술 120
05 빅데이터분석기술 데이터마이닝기술 분류Classification : 일정한집단에서특정한정의를이용하여분류및구분을추론함. 예를들어, 경쟁자에게로이탈한고객을분류해내는기술을들수있다. 예측Forecasting : 방대한양의데이터집합의패턴을기반으로미래를예측. 예를들어, 수요를예측하는기술을들수있다. 시계열Time-Series분석 : 시간의변화에따라일정한간격으로연속적인통계숫자를저장한시계열데이터에바탕을둔분석방법. 예를들어, 매일주식의값을저장하는시계열데이터를분석하는기술을들수있다. 회귀분석Regression : 하나이상의변수간의영향이나관계를분석및추정하는기술을들수있다. 군집화Clustering : 구체적인특성을공유하는군집을찾음. 군집화는미리정의된특성의정보가없다는점에서분류와다름. 예를들어, 비슷한행동집단을구분해내는기술을들수있다 [ 01]. 연관규칙Association Rule : 동시에발생한사건간의관계를정의. 예를들어, 장바구니안에동시에들어가는상품들의관계를규명하는기술을들수있다. 요약Summarization : 데이터의일반적인특성이나특징의요점을간략히정리하는기술을들수있다. 121
05 빅데이터분석기술 연속성 Sequencing : 시간에따라순차적으로나타나는사건의종속성을말함. 예를 들어, A 제품을구입한고객이향후 B 제품을구입할확률이라든가작년의계절적매 출변동요인과올해의매출등을알아내는기술을들수있다. 122
05 빅데이터분석기술 텍스트마이닝기술 비 반정형텍스트데이터로구성된빅데이터에서자연어처리기술에기반하여의미있는정보를추출하는기술. 데이터마이닝의분석대상은관계형데이터베이스, XML 문서와같은구조화된데이터들인반면, 텍스트마이닝의분석대상은텍스트문서, 이메일, HTML 파일등과같은비 반정형의텍스트데이터라는차이점이있음. 123
05 빅데이터분석기술 텍스트마이닝절차 정보수집 : 비 반정형의텍스트데이터를수집하는단계. 정보처리 : 대용량의데이터에서특정키워드나일부의미있는요소를추출하려고전처리를하는단계. 정보추출 : 수학적인모델이나알고리즘을이용하여유용한정보를추출해낸다. 텍스트마이닝을위한정보추출방법에는다양한목적, 조건, 환경등이있는데, 이정보추출방법은텍스트마이닝에서가장중요한부분중하나이다. 특히정보추출방법에는수많은수학적알고리즘과방법이있으며, 그중간단하면서가장강력한방법인 TF-IDF Term Frequency-Inverse Document Frequency 방식을많이사용. 정보분석 : 최종키워드나의미있는요소의우선순위를도출하는단계. 124
05 빅데이터분석기술 125
05 빅데이터분석기술 자연어분석기반의텍스트마이닝기술 126
05 빅데이터분석기술 자동분석단계 : [ 그림 5-6] 은자연어처리가필요한예로중요한단서단어는 macrosomic 이수식하는 reduce 와 glycemic 이수식하는 initiated 이다. 127
05 빅데이터분석기술 첫째 : 평면표현상에서개체명의좌우에위치한단어들을고려하는방법이있다. 하지만평면표현에서주변문맥을고려하여정보를추출할때유용하지않은단어를적용할수있다. 둘째 : 두개체명을포함하는하위트리의중심어를사용하는방법이있으나, 두개체명을포함하는하위트리의중심어를사용하면중요한정보를포함하지않을수있다. 데이터분석방법론 128
05 빅데이터분석기술 오피니언마이닝기술 빅데이터에포함된어떤사안이나인물, 이슈, 이벤트에서사람들의의견이나평가등을분석하는것. 오피니언마이닝의 3단계 ( 긍정, 부정 ) 의견분류과정 긍정및부정을표현하는단어정보추출 기존에구축된사전등리소스를이용하거나수작업으로해당도메인의고빈도긍정 / 부정을표현하는단어들을확인할수있다. 학습데이터에서유용한통계정보를활용하여자동으로어휘정보를얻을수도있다. 129
05 빅데이터분석기술 한국어로작성한사용자별점이아주높은리뷰에서는고빈도단어를긍정표현으로, 사용자별점이아주낮은리뷰에서는고빈도단어를부정표현으로추출할수있다. 세부평가요소와그것이가리키는오피니언의연결관계를포함한문장인식 첫번째단계에서구축된어휘정보를사용하여세부평가요소와긍정 / 부정표현을찾으며긍정적인오피니언인지, 부정적인오피니언인지문장단위로분류하려고여러방법을적용할수있다. 대량의레이블이부착된학습데이터를생성한후 Naive Bayes, ME Maximum Entropy 모델, SVM Support Vector Machine 과같은알고리즘을적용하여기계학습을수행함. 긍정 / 부정표현의수및유용한문장을추출하여리뷰요약생성 각세부평가요소에서긍정표현과부정표현의차이를이용하여사용자들의선호도를 [ 그림 5-9] 와같이제시할수있다. 이런오피니언마이닝결과를이용하여특정맛집의세부평가요소에서좋아하거나싫어하는정도를얻을수있다. 130
05 빅데이터분석기술 131
05 빅데이터분석기술 오피니언마이닝을사용하는예제시스템의구성도 132
05 빅데이터분석기술 소셜네트워크서비스 사람들의네트워크관계와대화내용속에오피니언이포함되어있으며, 주제나대상, 인물이특정부분에국한되지않고다양하기때문에오피니언마이닝기술을많이활용함. 133
05 빅데이터분석기술 리얼리티마이닝기술 데이터마이닝기술의일종으로, 모바일기기로사용자의인간관계, 행동방식, 라이프스타일등을분석함. 현실마이닝 이라고도함. 다른마이닝기술과는다르게생체인식으로소비자에게맞춤화된마케팅이나사용자의감정에따른심리적변화를추적하여제품판매등에반영. 실제적인정보인빅데이터를대상으로하며, 생체인식등을이용한리얼리티마이닝은사용자들의행동과상황을종합적으로분석할수있다는장점이있음. 134
05 빅데이터분석기술 생체정보데이터마이닝과정 135
05 빅데이터분석기술 군집화기술 데이터마이닝기술의한방법으로, 주어진빅데이터에서데이터들의특성을고려하여군집을정의하고군집를대표할수있는대표점을찾는것임. 136
05 빅데이터분석기술 계층적군집화기술 각데이터점을하나의군집으로설정한후이들간의거리를기반으로하여분할 합병해가는방식. 계층적군집화기술에서데이터샘플은분할된수열로묶음. 137
05 빅데이터분석기술 계통도 Dendrogram 에서는각계층에서군집들의유사성을쉽게확인할수있음 흡수 Agglomerative 과정 : 아래에서위로처리하여군집을흡수, n개의각군집과수열의형태가연속적인흡수군집화과정으로처리됨. 분리 Divisive 과정 : 위에서아래로분류하는과정으로, 하나의군집에 n개의샘플이있으며연속적인분리과정으로수행. 138
05 빅데이터분석기술 분할적군집화기술 k개의분할영역을결정하는방법으로유클리디안거리 Euclidean Distance 계산법에기반함. K-means 알고리즘 사전에정한 k 개의군집으로주어진데이터를분류하는방법. K-means 알고리즘수행과정 ➊ 군집의개수인 k를결정하고각군집에초기값으로중심한개씩을할당하여위치를설정. ➋ 각데이터를주어진중심점을기준으로가장가까운군집에할당한다. 중심점과의거리는유클리디안거리계산방법에따름. ➌할당된데이터를중심으로각군집은새로운중심점을계산. ➍새로운중심점이기존의중심점과차이가있으면 ➋로되돌아가반복한다. 새로운중심점이기존의중심점과차이가없으면알고리즘은끝. 139
05 빅데이터분석기술 [ 그림 5-16] 은군집의중심점을계속재형성하는과정임 140
05 빅데이터분석기술 소셜네트워크분석기술 인접행렬과각항의관계를표현한네트워크 141
05 빅데이터분석기술 시멘틱 Semantic 기술 복잡하고이질적인그래프구조를트리플 Subject-Predicate-Object 로구성된 RDF 그래프로표현함. RDF(S) 의장점 표준기반으로의미의모호성이없는정보표현과상호호환성확보가가능. 상호이질적정보들을단일한표현체계로통합표현 연계가가능. 그래프구조뿐아니라각노드의특성정보를통합표현가능. 단일서버에서대규모그래프로표현 저장 관리가가능 (10 억트리플이상 ). 그래프구조에서강력한질의와복잡한데이터연산처리가가능 SPARQL URL 에기반을두어분산그래프 DB 구현과분산질의처리에유리. 동적으로변경되는그래프정보의실시간적용과질의 연산이가능. 온톨로지 OWL 및규칙과결합하여연역적논리추론이가능. 기계학습과연동하여하이브리드유형의분석체계를구현. 특히 RDF(S) 를사용하므로 [ 그림 5-19] 와같이사람의연결구조와정보연결구조를통합하여표현하고, 필요에따라부분적으로분리하여단순화하기도쉬운데, 이는소셜네트워크분석에서매우강력한장점임. 142
05 빅데이터분석기술 143
05 빅데이터분석기술 시멘틱네트워크를기반으로한소셜네트워크분석의특징 거대한글로벌네트워크에서의미적연관성이있는서브네트워크를분리하고, 수학적분석모델을적용 해석할수있다는것. RDF에기반을둔시멘틱네트워크에서의미조건을이용하여서브네트워크를추출하려고 SPARQL을사용함. 144
05 빅데이터분석기술 BKNetwork.org 의지식네트워크전문가검색서비스 소셜네트워크분석의대표적인응용시스템. 부산출신이나부산지역에서활동하는학계, 산업계, 관계, 문화예술계를망라한분야별전문가와출향인고향을떠난사람을검색하는서비스. 다음장의 [ 그림 5-20] 은 삼성 으로검색한소셜네트워크분석결과. 145
05 빅데이터분석기술 146
05 빅데이터분석기술 그래프마이닝기술 페이스북이나트위터와같은소셜미디어의데이터를표현하는방법. 그래프에서마이닝기술을적용하는기술, 그래프마이닝기술은일정빈도수이상의특정패턴을모두찾아내는방법. 147
05 빅데이터분석기술 빈발부분그래프마이닝기법 전체그래프에서자주발생하는부분그래프를발견함. 그래프데이터베이스에서모든빈발부분그래프를찾는기법. 성능이효율적이고알고리즘의확장성이뛰어난 gspan 을널리사용함. 도약탐색 Leap Search 방법 분류성능이높은특징을선택하는방법으로측정기준을최소지지도로정하고, 최소 지지도를다양하게변화시키면서 gspan 과정을반복하는방법. 모델기반탐색트리Model Based Search Tree 분류성능이높은특징을선택하는방법으로, gspan 과정으로찾은빈발부분그래프 중에가장분류성능이높은빈발부분그래프의포함여부를측정한다. 이분할과정은그래프데이터베이스가완전히분할될때까지반복수행됨. 148
05 빅데이터분석기술 149
05 빅데이터분석기술 빅데이터를처리하는기존알고리즘변형기술 도형세기알고리즘의변형 150
05 빅데이터분석기술 컬럼빈도수측정프로그래밍방안 맵리듀스 맵함수 Mapper 와리듀스 Reducer 함수의입력과출력은모두 < 키, 값 > 순서쌍으로정의함. [ 그림 5-25] 다음의 employees.txt 데이터파일에서 FIRST 별로빈도수가얼마인지측정하는맵리 듀스를프로그래밍하고자함. 151
05 빅데이터분석기술 152
05 빅데이터분석기술 맵리듀스에서는이렇게하나의노드안에서반복적인결과를결합하여처리 하려고 addcounts 함수를추가로정의함. 153
05 빅데이터분석기술 소셜네트워크통계방안 [ 그림 5-27] 노드가 3 개이고에지에방향성이있는그래프에맵리듀스를적용 함. 154
05 빅데이터분석기술 ➊ 원데이터를에지로만표현. <1, 2>, <1, 3>, <2, 3>, <3, 1> ➋ 각맵함수에서는나누어진에지의 < 키, 값 > 순서쌍에서얻은값인목적노드 ID로그룹핑함. 컴바이너가내장된리듀스함수로결합된결과를보면, 1은한번, 2는한번, 3은두번이라는결과가나옴. ➌ 출력정보를다시 < 키, 값 > 순서쌍으로표현. <1, 1>, <2, 1>, <3,2> 맵함수에서는노드전입차수과정을그대로반복함. ➍ < 키, 값 > 순서쌍에서얻은값인 해당노드전입차수 로그룹핑함. 해당노드전입차수 1 은두번, 2 는한번나옴. 155
05 빅데이터분석기술 네트워크분석기법 군집화상수Clustering Coefficient 네트워크에서노드들 ( 컴퓨터들 ) 이뭉치려는정도가얼마나강한지측정하는방법으 로, 사람이나컴퓨터의관계응집도를평가하는척도로활용됨. 군집화상수함수의정의 156
05 빅데이터분석기술 [ 그림 5-29] cc(v) 식에서분모는노드 v의모든차수, 즉가능한모든이웃의크기 (d v ) 를 2로 Combination하므로노드 v의가능한모든노드쌍의수를분모로한다. cc(v) 식에서분자인감마 (Γ) 는노드 v의이웃을말한다. 즉 v에연결된노드들의집합으로분자의결과인 <u, w> 의집합은노드 v에연결된모든이웃의쌍인실제로연결된에지개수이다. 157
05 빅데이터분석기술 빨간색노드의이웃은다섯개이고, cc (v) 식의분모를구하려고 5 Combination 2를계산하면 10임. 이제 cc (v) 식의분자를위해이들다섯개의검은색노드이웃끼리서로연결된에지를세면다섯개임. 그러므로빨간색노드의군집화상수는 5/10가되므로결과는 0.5이다. 파란색노드의이웃은다섯개이고, cc (v) 식의분모를구하려고 5 Combination 2를계산하면 10임. 이제cc (v) 식의분자를위해이들다섯개의검은색노드이웃끼리서로연결된에지를세면한개임. 그러므로오른쪽중심노드의군집화상수는1 /10이되므로결과는 0.1이다. 158
05 빅데이터분석기술 군집화상수가높을수록그래프내의노드간에관계성이많음을알수있다. 이근거 로군집화상수는사회학에서도많이활용되며, 군집화상수가높을수록사회적신뢰 도가높다는결론을도출한다. [ 그림 5-31] 의알고리즘은 [ 그림 5-32] 에서각각의노드 v 에인접한삼각형의개수를세어군집화상수를구한다. 이는순차적인방법으로그래프가매우커지면연산의속도가떨어져결과를보기어렵다. 그러므로빅그래프에서는맵리듀스로바꾸어처리해야한다. 159
05 빅데이터분석기술 첫번째세트에서는노드를중심으로맵리듀스를수행하고, 두번째세트에서는에지 를중심으로맵리듀스를수행하므로데이터가분할된상태에서병행처리가가능. 160
05 빅데이터분석기술 161
05 빅데이터분석기술 최신빅데이터분석연구 162
05 빅데이터분석기술 데이터마이닝연관규칙을활용한빅데이터알고리즘 Apriori 알고리즘 [17] 은데이터마이닝분야의대표적인연관규칙알고리즘임. 맵리듀스알고리즘은각트랜잭션의모든부분집합을만든후각부분집합의개수를세는방법을사용하여이문제를해결함. 163
05 빅데이터분석기술 맵리듀스를사용한 Apriori 알고리즘에서는분산컴퓨팅기술의하나인 knowledge 그리드기반의 Apriori Grid Service 를제안했다. 164
05 빅데이터분석기술 빅데이터와분류기술 Pitchaimalai 의연구에서는 DBMS 와하둡분산파일시스템에서 Naive Bayes 분류알고리즘의효율성을평가했으며, 또한기존의결정트리분류Decision Tree Classification 알고리즘인 C4.5 를맵리듀스기반으로한 MReC4.5 로개선하는방 안도연구했다. 이방법에서는데이터를분산하여맵함수에서분류기 Classifier 를 만들고, 리듀스함수에서합치는방법을사용한다. 165
05 빅데이터분석기술 166
05 빅데이터분석기술 빅데이터와군집화 맵과정에서입력된점에서가장가까운점을찾은후리듀스과정에서이들을이용하여새로운군집을계산하고이후모든군집의내용이더이상바뀌지않을때까지반복함. 167
05 빅데이터분석기술 서브스페이스군집화알고리즘 서브스페이스군집화를맵리듀스프레임워크로구현하여여러대의머신에데이터를분산시킨후각머신이주어진데이터만을계산하도록군집화하는방식. 기본적인군집화알고리즘은 Apriori 방식알고리즘을이용하여낮은차원에서밀집영역을찾아나가는방식을사용한다. 168
05 빅데이터분석기술 빅데이터주요분석기술 169
05 빅데이터분석기술 NLTKNatural Language ToolKit 특정한문제를해결하려고알고리즘생성과정에필요한빌딩블록을제공한다. PHP, Python 등으로제공되는툴킷들이있으며, 연구자들이많이사용하는프레임워 크로사용자들이다양한방식으로활용할수있다. 또한일반적인접미사를제거하여 중심단어들을추출하거나전체텍스트에서동의어를찾아내려고기계가분석가능한 사전형태로데이터를정형화시키는기능도제공한다. OpenNLP오픈NLP 아파치의 OpenNLP 는비정형화된텍스트에서사람이나기관의이름, 특정장소, 시간 등을추출하는작업을간편하게실행할수있는모델을포함하는라이브러리. OpenNLP 는 Java 기반의자연어처리솔루션. 프로그래밍언어기반의응용프로그램에적합한형태로, 자연어처리코드를스스로 생성한다. 비정형화되거나가공되지않은텍스트를문장과단어로분리한후그결과 를다양한방법으로클래스화하는표준컴포넌트를많이포함한다. 170
05 빅데이터분석기술 Boilerpipe 보일러파이프 웹페이지내에서불필요한부분을제거하여실질적으로필요한정보만추출하는작업을수행하는프레임워크. HTML 문서에서실제로가장중요한콘텐츠를찾아내는알고리즘을적용한 Java 기반라이브러리로제공된다. 모든종류의웹콘텐츠에서거의완벽한전처리도구를생성할수있다. Boilerpipe는뉴스나기고같은특정정보가담긴웹페이지의분석에많이사용하다최근에는블로그나 SNS 서비스등다른형태의웹페이지에서정보를추출할때도유용하게사용한다. WEKA 웨카 데이터분석프로그램으로, 무료로배포되고 Java로작성된오픈소스프로그램이다. 데이터마이닝알고리즘으로사용자개인화가가능하다는장점이있다. WEKA는플러그인형식을취해개발자가자신이개발한고유알고리즘을쉽게접목시킬수있고, 사용이간편한명령으로구성되어있으며, 이해하기쉽고간단한인터페이스를제공한다. 171
05 빅데이터분석기술 172
05 빅데이터분석기술 Mahout 머하웃 확장가능한기계학습알고리즘을만드는것이주목적으로, 아파치라이선스가있으면무료로사용할수있다. 방대한양의데이터집합에서기계학습알고리즘을실행할수있는오픈소스프레임워크로, 확장성과처리량을보장하려고하둡기반의병렬형식으로구성한다. 공통작업이많은알고리즘에적합하며, 군집화, 분류, 사용자행동을기반으로품목을추천해주는시스템등분석환경에도적합하다. 173
05 빅데이터분석기술 scikits_learn 사이키트런 서포트벡터머신, 로지스틱회귀분석, 군집화등여러분석기법을제공. 또한이런기법을편리하게활용할수있도록고수준의인터페이스를제공함. scikits_learn은복잡한문제를해결하는알고리즘이나문제를해결하는과정에초점을맞추었기에과정에치중하는사용환경에더적합함. 174
개요 06 빅데이터표현기술 특정기준에따라분석한데이터의특징이나분석결과를분석가와사용자들이쉽게이해할수있도록그림이나그래프등으로표현해주는기술들을말한다. 예 ) 스프레드시트프로그램 빅데이터분석에서는표현단계가가장중요한기술분야로취급받음. 176
06 빅데이터표현기술 빅데이터주요표현기술 177
06 빅데이터표현기술 Tag Cloud태그클라우드 Tag Cloud 는메타데이터에서얻은태그들을중요도, 빈발도, 인기도등주제 에따라분석하여시각적으로늘어놓은것. 대부분웹페이지나이미지로나타 내며, 보통태그가 2 차원표와같은형태로배치됨. 특징적인하나의연결에연관된태그가얼마만큼많으며, 그연관된태그들이 어떤종류인지를잘보여줌. 가장대표적인예로각태그들의인기도가얼마만큼높은지보여주는표시법 으로사용될수있음. Last.fm( 음악제공웹사이트 ) 은사용자가어떤음악가의음악을자주듣는지, 어떤장 르의음악을자주듣는지분석하여 Tag Cloud 를생성함. 178
06 빅데이터표현기술 179
06 빅데이터표현기술 Gephi 게피 Gephi는정제나가공하지않은그래프데이터를네트워크형태로생성하여이를시각화하는오픈소스기반의 Java 응용프로그램. Gephi는소셜네트워크와관련된정보를쉽게이해할수있도록도와주는데, 주로 LikedIn의데이터를표현하는데많이활용한다. 표현에필요한변수를구성하려고여러알고리즘을사용했으며, 사용자가데이터및노드의위치를자유롭게수정하고조절할수있도록개발. 수정할데이터나노드의위치가많아도윈도우 GUI를이용하여쉽고빠르게수정가능하며, 기본적으로많이사용하는그래프구성을제공. 데이터의표현결과를미리보기탭에서확인할수있고, 사용자는툴킷라이브러리에서제공하는함수를활용하여문서를작성가능. [ 그림 6-2] Oracle OpenWorld 2011에서관심있는세션이나세션좌장과의친분을기준으로투표를실시하고, 이결과를네트워크그래프로표현함. 180
06 빅데이터표현기술 181
06 빅데이터표현기술 GraphVizGRAPH VIsualiZation software; 그래프비즈 AT&T 연구소에서 DOT 스크립트언어를사용하여다이어그램을그리려고만 든오픈소스프로그램으로, CPL Common Public License 을사용. 데이터를기반으로다이어그램을그릴수있는명령어라인네트워크그래프 시각화툴이며, 일반적인목적의흐름도나트리 Tree 를그리는데적합. GraphViz 로생산한결과그래프는다른표현툴의결과물에비해상대적으로 간단하거나투박하다. 하지만결과그래프를효과적으로다듬을수있는다양 한옵션을함께제공함. 다른소프트웨어에서라이브러리로사용할수있는기능도제공하고,DOT 언 어를사용하여그래프를정의하며, 이정의한내용을필터를이용하여다양한 이미지포맷으로생성함. [ 그림 6-3] 은 GraphViz 를이용하여웹사이트 300 여개 (40 개국이상 ) 간에네 트워크구성을생성하고이를다이어그램으로표현한화면. 182
06 빅데이터표현기술 183
06 빅데이터표현기술 Processing 프로세싱 기존의 DBN Design By Number 기반으로만든프로그래밍언어. DBN은디자이너와아티스트의프로그래밍접근도를높여주는소프트웨어로, 프로그래밍이나계산과정의난해함을최소화하여디자이너가코딩몇줄로도이미지를만들수있도록고안한소프트웨어. 디자이너에게가장많이알려진그래픽프로그래밍언어로, 관련있는웹을시각화할수있는 Processing은연관라이브러리, 예시, 관련문서등이많아사용자가원하는정보를얻기쉽다. 여러가지시각화도구로구성되어있는 JavaScript 프레임워크인 Protovis 바, 라인그래프, 포스-디렉티드 Force-Directed 네트워크구성과같은다양한기능이포함되어있으며, 시각화템플릿툴중에서인터페이스수준이상당히높은편임. 184
06 빅데이터표현기술 185
06 빅데이터표현기술 Fusion Tables퓨전테이블 테이블의데이터를효과적으로시각화할수있게도와주는툴. Fusion Tables 은방대한양의데이터를스프레드시트와같은테이블에저장 할수있는온라인시스템으로, 저장된정보를사용자요구에맞게처리하고, 그결과를시각화할수있음. Fusion Tables 은마이크로소프트엑셀에서제공하는차트와달리테이블을파 일이나이미지등공유대상으로지정. 구글맵, 구글스프레드시트와간단히 연동할수있고, 엑셀, CSV 등의파일을업로드할수있음. [ 그림 6-5] 는 Fusion Tables 에서지도를생성한화면으로, 우리나라문화재의 분포를히트맵 Heat Map 으로표현함. 186
06 빅데이터표현기술 187
06 빅데이터표현기술 Tableau 타블로 그래프를시각화하는데스크톱응용프로그램으로, 온라인지원과다양한콘텐츠를추가할수있고시각적인분석과리포팅도구를제공. Tableau는사용이쉬우며 GUI가직관적임. 사용자의피벗 pivot 테이블이나크로스테이블의작성을도와주는도구는여러가지가있는데, Tableau는그ㅊ중에서가장강력한기능을제공함. 데스크톱의인터페이스를사용하거나전문적인출판물에첨부할다양한형태의그래프를생성하는작업을할때사용하기좋은프로그램. [ 그림 6-6] 은 2005년에발생한허리케인들의에너지와바람세기를시각화한것임. 188
06 빅데이터표현기술 189
06 빅데이터표현기술 TinkerPop 팅커팝 오픈소스그래프소프트웨어인 TinkerPop은통합된도구모음을생성할수있으며, 그래프를처리하는 LAMP Linux, Apache, MySQL, PHP 구조와비슷함. TinkerPop은 REST 기반의서버형태로시스템을공개함. 전문화된그래프데이터베이스에질의를작성하고, 상호연결되어있는일반적인작업들을수행할수있는서비스모음을제공. 세부서비스로각각기능이다른Blueprints, Pipes, Gremlin, Frames, Furnace, Rexster 여섯가지를제공. 190
06 빅데이터표현기술 191
06 빅데이터표현기술 Clustergram 클러스터그램 Clustergram은클러스터링과관련된표현소프트웨어. 계층적클러스터링을수행하고, 계통도 Dendrogram 나히트맵형태로표현함. 클러스터개수가늘어나면각데이터집합부분에어떻게클러스터를할당하는지보여주는집약분석기법. [ 그림 6-8] 은클러스터링결과가계통도와함께히트맵형태로표현되었음을알수있다. 192
06 빅데이터표현기술 193
06 빅데이터표현기술 Spatial Information Flow스페이셜인포메이션플로우 특정정보안에서데이터의흐름을보여주는시각화기술. 주로정보의흐름을 2 차원이나 3 차원공간에링형태로시각화하여표현함. 일반적으로정보의흐름이많을수록링의크기가커짐. [ 그림 6-9] 는뉴욕과세계각도시사이에흐르는인터넷프로토콜의데이터양 을표현한결과임. 194
06 빅데이터표현기술 195
Thank You