현재 빅데이터 학습을 위한 전초 단계로 '빅데이터'를 만드는 작업을 진행 중이다.
개인의 자격으로 거대 규모의 데이터를 만들어내기란 여간 어려운 것이 아니다.
때문에 일단 의미 있는 분석이 가능한 데이터를 어느 정도 선까지 모으는 것을 목표로 하고 있다.
현재 목표로 하고 있는 것은 대략 100Gb선이다.
그래서 선택한 것이 트위터의 트윗들이다.
특정 키워드로 검색을 했을 경우 검색되는 트윗들을 모아보기로 한 것이다.
이를 분석하면 검색어로 사용된 특정 단어에 대한 분석이 어느정도 가능하지 않겠냐는 판단에서 내린 결정이다.
그래서 Twitter API를 이용하여 작업을 진행 중인데
처음엔 시행착오가 좀 있었다.
우선 기존에 사용해본 적이 있는 REST API 중 search API를 이용하여 데이터 수집을 진행하였다.
그런데 REST API는 한계가 있었다. 기존에 축적된 모든 트위터의 데이터가 대상이 아닌 것이었다.
6~7회 시도를 해 본 결과 대략 1주일치 분량의 데이터를 얻을 수 있었을 뿐 그 이전의 데이터는
가져올 수가 없었다. 1주일 분의 데이터라 해도 약 60~70Mb 정도의 파일 크기가 된다.
게다가 특정 날짜까지의 데이터를 불러오는 옵션이 있는데 계속해서 데이터를 축적하기 위해서는
매일 한 번 정도는 이 날짜를 가장 최근 날짜로 변경을 해야 하고 그렇게 쌓인 파일에는 중복되는
데이터가 거의 대부분이라는 문제가 있었다.
그래서 구글링을 한 결과 REST API 말고 Streaming API라는 것이 있다는 것을 알았다.
REST API가 배치성이라면 Streaming API는 리얼타임이다. 즉 실시간으로 올라오는
트윗 데이터들을 네트워크가 끊기기 전까지 지속적으로 가져오는 것이다.
타임라인의 데이터를 가져오는 것은 Public stream이라고 하고 여기에는 3가지 옵션이 있다.
각각은 다음과 같다.
- POST statuses/filter : 특정 키워드로 필터링된 데이터만 가져온다.
- GET statuses/sample : 전체 트윗의 일부를 무작위로 가져온다.
- GET statuses/firehose : 전체 트윗의 정보를 모두 가져온다.
'Development > Tips' 카테고리의 다른 글
정규 표현식으로 HTML(style, script) 태그 제거하기 (0) | 2014.07.25 |
---|---|
Xcode 서브 프로젝트가 포함된 프로젝트의 Archive (2) | 2013.11.04 |
[옛 글] [Tip] MAC에서 SVN 오류 처리 (0) | 2013.07.19 |
[옛 글] Xcode에서 .a 라이브러리 파일이 svn ignore 되어있을 때 (0) | 2013.07.19 |
[옛 글] [OSX TIP] 파인더에서 숨겨진 파일 보기 (0) | 2013.07.19 |