오픈소스 NoSQL(MongoDB) 을이용한 Twitter Stream 의저장과실시간공간지식발견 군산대학교컴퓨터정보공학과 남광우

Similar documents
Ubiqutious Pubilc Access Reference Model

1217 WebTrafMon II

NoSQL

Cache_cny.ppt [읽기 전용]

김기남_ATDC2016_160620_[키노트].key

Week13

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

초보자를 위한 분산 캐시 활용 전략

CONTENTS Volume 테마 즐겨찾기 빅데이터의 현주소 진일보하는 공개 기술, 빅데이터 새 시대를 열다 12 테마 활동 빅데이터 플랫폼 기술의 현황 빅데이터, 하둡 품고 병렬처리 가속화 16 테마 더하기 국내 빅데이터 산 학 연 관

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

DIY 챗봇 - LangCon

비식별화 기술 활용 안내서-최종수정.indd

chap 5: Trees

rmi_박준용_final.PDF

Intra_DW_Ch4.PDF

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

MySQL-Ch05

Microsoft Word - 김완석.doc

DBMS & SQL Server Installation Database Laboratory

오늘날의 기업들은 24시간 365일 멈추지 않고 돌아간다. 그리고 이러한 기업들을 위해서 업무와 관련 된 중요한 문서들은 언제 어디서라도 항상 접근하여 활용이 가능해야 한다. 끊임없이 변화하는 기업들 의 경쟁 속에서 기업내의 중요 문서의 효율적인 관리와 활용 방안은 이

JMF2_심빈구.PDF

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion

untitled

APOGEE Insight_KR_Base_3P11

vm-웨어-앞부속

dbms_snu.PDF

PowerPoint Presentation

목 차

출원국 권 리 구 분 상 태 권리번호 KR 특허 등록

1

DB진흥원 BIG DATA 전문가로 가는 길 발표자료.pptx

침입방지솔루션도입검토보고서

MS-SQL SERVER 대비 기능

[Brochure] KOR_TunA

RED HAT JBoss Data Grid (JDG)? KANGWUK HEO Middleware Solu6on Architect Service Team, Red Hat Korea 1

Interstage5 SOAP서비스 설정 가이드

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

PowerPoint Presentation

CONTENTS CONTENTS CONTENT 1. SSD & HDD 비교 2. SSD 서버 & HDD 서버 비교 3. LSD SSD 서버 & HDD 서버 비교 4. LSD SSD 서버 & 글로벌 SSD 서버 비교 2

15_3oracle

Global Bigdata 사용 현황 및 향후 활용 전망 빅데이터 미도입 이유 필요성 못느낌, 분석 가치 판단 불가 향후 투자를 집중할 분야는 보안 모니터링 분야 와 자동화 시스템 분야 빅데이터의 핵심 가치 - 트랜드 예측 과 제품 개선 도움 빅데이터 운영 애로 사항

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

MySQL-Ch10

ETL_project_best_practice1.ppt

슬라이드 1

슬라이드 1

빅데이터_DAY key

신림프로그래머_클린코드.key

FileMaker 15 ODBC 및 JDBC 설명서

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

플랫폼을말하다 2

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

PowerPoint 프레젠테이션

RUCK2015_Gruter_public

쉽게 풀어쓴 C 프로그래밊

untitled

Oracle9i Real Application Clusters

Remote UI Guide

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

solution map_....

Polly_with_Serverless_HOL_hyouk

Backup Exec

02 C h a p t e r Java

Observational Determinism for Concurrent Program Security

DocsPin_Korean.pages

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

FileMaker ODBC 및 JDBC 가이드

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

Something that can be seen, touched or otherwise sensed

<4D F736F F F696E74202D20352E20BCBAB4C920C1DFBDC C F6EC0BB20C0A7C7D120BDC7BDC3B0A C3B3B8AEB9E6BEC

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate


슬라이드 1

SchoolNet튜토리얼.PDF

Assign an IP Address and Access the Video Stream - Installation Guide

자연언어처리

MasoJava4_Dongbin.PDF

슬라이드 1

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

6강.hwp


MySQL-.. 1

PowerPoint 프레젠테이션

Voice Portal using Oracle 9i AS Wireless

untitled

MPEG-4 Visual & 응용 장의선 삼성종합기술원멀티미디어랩

Secure Programming Lecture1 : Introduction

<4D F736F F F696E74202D E20C0CEC5CDB3DD20C0C0BFEB20B9D720BCADBAF1BDBA20B1E2BCFA E >

FileMaker 15 WebDirect 설명서

uFOCS

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

DW 개요.PDF

초보자를 위한 C++

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

PowerPoint 프레젠테이션

Oracle Database 10g: Self-Managing Database DB TSC

11장 포인터

Transcription:

오픈소스 NoSQL(MongoDB) 을이용한 Twitter Stream 의저장과실시간공간지식발견 군산대학교컴퓨터정보공학과 kwnam@kunsan.ac.kr 남광우

연구배경및필요성 Twitter 스트림에서의공간정보추출 - 도메인온톨로지와텍스트정보에기반한위치추정에집중 - 공간현상의추출및공유부분은부족 Twitter 스트림스트림에서정보추출 - 자연어기반텍스트정보셋에서의키워드추출 - 시간의변화에따른이슈변화모니터링 - 단일키워드기반의정보제공, 현상에대한경험적추가지식필요 데이터마이닝기술의활용 - 추출된키워드들간의유용한연관관계를발견 - 사용자에게이슈 ( 키워드 ) 에대한이해도를향상시킬수있음 SNS 에서데이터마이닝기법을이용공간상에논의되는다양한이슈들추출이를시맨틱공간지식 (GeoSemantic Knowledge) 으로가공, 활용가능 2

연구내용 Twitter 스트림에서의시공간지식추출프레임워크개발 스트림마이닝을활용한 SNS 데이터수집및이슈추출 대용량 Twitter 스트림의저장과분석프레임워크개발 Twitter Stream 의축적과빠른검색 NoSQL(MongoDB) 를이용한저장 빠르며반복적인데이터접근을지원하기위한데이터 Caching Sliding Window 기반의 Twitter 스트림분석 공간연관규칙과 Clustering 트위터에서의공간지식추출활용방안 특정지역에서의시간에따른이슈변화모니터링 3

MongoDB in NoSQLs - 왜 MongoDB 를선택했는가?

NoSQL NoSQL = No SQL? no no... NoSQL = Not Only SQL!!! Relational Graph Key-Value Data Column Document 5

왜 NoSQL 인가? Relational DBMS ACID Transactions 안전성, 완전성중심 성능과보호의절충 구현의복잡성 Many Insert/Many Update Web, BigData NoSQL Massive Data Complex Data Schema Free One Insert/Many Read 성능과안전 구현의단순성 6

NoSQL for BigData http://blog.kissmetrics.com/twitter-statistics/?wide=1 7

NoSQL Stack Apache Hadoop Google Hadoop MapReduce HBase Hadoop Distributed File System(HDFS) Distributed Programming Model Distributed Databases Distributed File System MapReduce BigTable Google File System(GFS) Cluster 8

NoSQL 의종류 Key-value stores Amazon s Dynamo Cassandra BigTable, BerkeleyDB Document Database MongoDB, CouchDB Column stores Hadoop/HBase, Google BigTable, Cassandra Graph databases FlockDB, Neo4J 9

NoSQL : Document Database CouchDB, MongoDB JSON Twitter 에서 JSON 으로데이터제공 10

MongoDB Document Oriented Database Data is stored in documents, not tables / relations JSON -> BSON : BSON is a binary representation of JSON MongoDB is Implemented in C++ best performance Platforms 32/64 bit Windows Linux, Mac OS-X, FreeBSD, Solaris Language drivers for: Ruby / Ruby-on-Rails Java C# JavaScript C / C++ Erlang Python, Perl others... 11

MongoDB Data and Queries JSON : Example location1 = { name: "10gen HQ, address: "17 West 18th Street 8th Floor, city: "New York, zip: "10011, latlong: [40.0,72.0], tags: [ business, cool place ], } tips: [ {user:"nosh", time:6/26/2010, tip:"stop by for office from 4-6pm"}, {...}, ] 12

MongoDB Data and Queries Creating your indexes db.locations.ensureindex({tags:1}) db.locations.ensureindex({name:1}) db.locations.ensureindex({latlong: 2d }) Finding places: db.locations.find({latlong:{$near:[40,70]}}) With regular expressions: db.locations.find({name: /^typeaheadstring/) By tag: db.locations.find({tags: business }) 13

Twitter 데이터의수집과저장 - Streamming API 와 MongoDB

Twitter Streamming API Twitter Streamming API public streams : follow, track, locations, count, with user streams site streams Twitter4J 15

Twitter Streamming API https://stream.twitter.com/1.1/statuses/filter.json? locations=-122.75,36.8,-121.75,37.8 { "text": "Time for the States to fight back!!! Tenth Amendment Movement: Taking On the Feds http://bit.ly/14t1rv #tcot #teaparty, "created_at": "Tue Nov 17 21:08:39 +0000 2009", "geo": -74.5,40.25, "id": 5806348114, "in_reply_to_screen_name": null, "in_reply_to_status_id": null, "user": { "screen_name": "TPO_News", "created_at": "Fri May 15 04:16:38 +0000 2009", "description": "Child of God - Married - Gun carrying NRA Conservative - Right Winger hard Core Anti Obama (Pro America), Parrothead - www.aboldstepback.com #tcot #nra #iphone", "followers_count": 10470, "friends_count": 11328, "name": "Tom O'Halloran", "profile_background_color": "f2f5f5", "profile_image_url": "http://a3.twimg.com/profile_images/295981637/tpo_balcony_normal.jpg", "protected": false, "statuses_count": 21147, "location": "Las Vegas, Baby!!", "time_zone": "Pacific Time (US & Canada)", "url": "http://www.tpo.net/1dollar", "utc_offset": -28800, } } 16

Twitter Stream 의수집과저장 Tweets from following Media Stream API (MediaCollector Account) Internet SNS data collector Tweet collector Abstraction by Lucene Insert Collected data JSON Tweet raw DataBase (MongoDB) Mentions from anonymous users(selected based on location) Tweet Word Vector Databases(MongoDB Tweet collector: Streaming API 기반트윗수집, 중복성검사, 저장 Abstraction Processing: Full Text Tweet 을 Lucene 을이용하여 Word Vector 화 17

Twitter Stream 의수집과저장 TweetStreamCollector Twitter4J void start( String dbname ) { dbmanager = new MongoDBManager( dbname ); TwitterStream stream = new TwitterStreamFactory().getInstance(); stream.addlistener( this ); FilterQuery query = makefilter(); stream.filter( query ); ensureindex(); } 18

Twitter Stream 의수집과저장 Twitter4J 의 Streamming Listener 구현 public void onstatus(status status) { } JSONObject mediadata = makejsonmediadata( status ); dbmanager.insertdata( MongoDBManager.MEDIADATA_COLLECTION, mediadata.tostring() ); String mediadataid = (String)mediaData.get("MediaDataID"); JSONArray wordarray = (JSONArray)mediaData.get( "TermVector"); JSONObject abstracteddata = makejsonabstracted( mediadataid, status, wordarray ); dbmanager.insertdata( MongoDBManager.ABSRACTED_COLLECTION, abstracteddata.tostring()); 19

Twitter Stream 의수집과저장 Syntactic parser: 문장에서분석을위한어휘소추출 Stopword filter: 의미없는분석결과배제를위한필터링 by LUCENE Tweet raw DataBase (MongoDB) Text analyzer Syntactic parser Tweet word set DataBase (MongoDB) Word Dictionary Stopword filter Spam manager 20

Twitter Stream 의수집과저장 Term Vector 의생성 JSONArray makejsontermvector( String text ) throws Exception { TagMagnitudeVector tmv = tweetanalyzer.analyze( text ); JSONObject jsontag = null; List<TagMagnitude> tml = tmv.gettagmagnitudes(); // 분석데이터를담을 JSONArray 생성 JSONArray jsontermvector = new JSONArray(); for( TagMagnitude tm : tml ) { // 단일분석데이터생성 jsontag = new JSONObject(); jsontag.put("displaytext", tm.getdisplaytext()); jsontag.put("stemmedtext", tm.getstemmedtext()); jsontag.put("magnitude", tm.getmagnitude()); } // 분석데이터삽입 jsontermvector.put( jsontag); } return jsontermvector; 21

수집된데이터 V06 약 3.5 일치분량 16G V07 약 3 일치분량 14G 약시간당 15,000 개 75,000 개 Term 22

지식탐사와 Sliding Window Caching

Twitter 데이터스트림에서의이슈추출 스트리밍데이터처리 : Sliding Window 시간의흐름에따라분석대상단어들의모집단이변하기때문에이를다시계산해야하는문제점을슬라이딩윈도우를도입하여보완 [Celi2011, Lee2011a, Math2010, Sank2009] 24

공간지식 : 연관규칙 & co-location Answers: and Spatial Databases : A Tour 25

공간지식 : 연관규칙 & co-location Spatial Databases : A Tour 26

공간지식 : Spatial Clustering/Flock Density-based Clustering For Real-time Stream Data 27

공간지식 : Outlier Detection Traffic Outlier Detection 28

공간지식 : Outlier Detection 29

Twitter Mining Keywords Trends 30

Twitter Mining 31

Twitter Mining 32

Twitter Mining 33

Problems Massive Data Storage Caching Knowledge Association Rule Clustering 34

Caching for Twitter Streams Stream Caching and Analysis Twitter Stream Sliding Window Caching Twitter Twitter Collector Stream Analysis MongoDB Twitter RawData MongoDB Twitter Abstracted Data 35

Caching for Twitter Streams StreamStorage Twitter Stream Sliding Window Caching New Arrival Tweet Streams sliding window query 36

연관규칙탐사알고리즘 : FP-stream FP-Growth 를데이터스트림에활용할수있도록변형 빈번하게발생하는패턴과트리구조가시간의변화에따라민감하게변화하지않을것이라는가정에근거 Pattern tree 에빈발항목을저장하고 tiled-time windows 에현시점까지의빈발항목을축적하여최근빈발한항목에대한변화를용이하게파악 [Gian2003] 37

연관규칙탐사알고리즘 소셜미디어스트림에서의 fp-tree 알고리즘적용제약사항 FP-stream: 고정된크기의시간을사용하기때문에유동적인빈발항목을탐색하기어려움 시간의누적에따른트리복잡도및메모리사용량증가 FUFP-tree: Minimum count 값이상의빈발규칙이새롭게발생할경우, 해당규칙의유효성을검사하기위하여이전에발생한 transaction 들을모두검색해야함 시간의누적 ( 트랜잭션의누적 ) 에따른신규규칙추출확률감소 FP-tree 알고리즘적용을위한요구사항 변화하는시간에따라추출되는이슈의변화를관측할수있어야함 FP-tree 구현을위해운용가능한메인메모리규모를유지해야함 38

메모리관리방안 패턴노드테이블 Pattern node ID(nid) 를메모리에저장 SC i : B i 에서발생한규칙에대한 support count Hash를통해 FP-tree 의패턴노드테이블 (memory or disk) 에접근 Hash table for Pattern-node Time-sensitive Sliding-window Pattern-node table nid : 0010 B 1 B 2 B 3 B B i-3 B i-2 B i-1 B i transaction Root B i SC i B 1 10 B 2 15 B 5 20 a b c nid 0010 c b d nid : 0010 c d d f 39

메모리관리방안 LRU 구조이용 메모리와 Disk 의 Hybrid 저장구조지원 pattern tree를구성하는항목들에대한 time window 메타정보를관리 특정시간 (threshold value) 이상접근되지않을경우 Disk 로저장 or 삭제 t(b i ) t(b i+1 ) New LRU Structure nid 0010 New rules nid : 0010 B i SC i B 1 10 threshold value B 2 15 B 5 20 nid 0010 Past 40

구현 < 데이터수집기 > < 연관성분석기능의분석옵션설정 > < 분석데이터결과매쉬업 > < 데이터분석기 > 41

구현 // long timeunit, long slidetime, long windowtime, long stoptime, minsupport, number of rules exp1.expdstree(10*minute, 20*MINUTE, 2*HOUR, starttime, stoptime, 100, 1000); [Total Nodes :115196:Created:18379:Deleted:17555 : x 0 [FrequencyList Size : 42923 attrnodelist Size : 42923: Slided Out Items : 5008 streamlinesize : [0:2078][1:1994][2:2064][3:2110][4:2133][5:2160][6:2131][7:2173][8:2129][9:2211][10:2 186][11:2133][12:2205] stream Transaction Sum: 27707 stream Items Total Sum: 158901 [Total Nodes :116292:Created:18799:Deleted:17703 : x 0 [FrequencyList Size : 43653 attrnodelist Size : 43653: Slided Out Items : 4971 streamlinesize : [0:2064][1:2110][2:2133][3:2160][4:2131][5:2173][6:2129][7:2211][8:2186][9:2133][10:2 205][11:2144][12:2277] stream Transaction Sum: 28056 stream Items Total Sum: 160736 42

구현 트위터검색연동 구글검색연동 43