Google Cloud Platform을 이용한 iPhone 7의 이슈(반응) 분석

Google Cloud Platform을 이용한 iPhone 7의 이슈(반응) 분석

Google Cloud Platform(GCP)을 이용하면 빅데이터 관련 지식이 없으면서도, 복잡한 Private Cloud 설치을 설치하지 않아도 보다 저렴한 비용으로 다양한 빅데이터를 수집하고 분석할 수 있다.

여러가지 데이터 분석이 있겠지만, 최근 iPhone 7이 한국에 출시되어서 이에 대해 Twitter에서는 어떤 이슈들(빅데이터 분석)이 나오고 있는지 분석해 보겠다.

SNS 상에서 iPhone 7 이슈 분석을 위해 GCP을 사용하고, 먼저 Twitter에서 데이터를 수집하면서 다른 SNS 서비스에서도 수집할 수 있도록 준비할 예정이다. 데이터 수집은 fluentd을 사용할 예정이다. 수집된 데이터는 필터링 및 재포맷되어 GCP의 Pub/Sub에 저장되며, DataFlow 서비스를 통해 자연어 분석 후 BigQuery 서비스을 이용해 데이터를 분석하여 다양한 챠트로 구체화 된다. 


'빅데이터 로그 수집기, Fluentd 소개(https://mansoo-sw.blogspot.kr/2016/10/fluentd.html)' 글에서 fluentd는 input 단계에서 다양한 데이터 소스를 받아 들일 수 있기 때문에 'Twitter' 외에도 다른 SNS의 정보들도 수집할 수 있다. 그리고 output 단계에서 수집된 데이터를 GCP Pub/Sub로 보내기 위해서 'fluentd pub/sub plugin'을 설치해야 한다. 설치방법은 '빅데이터 로그 수집기, Fluentd 소개' 글을 참고한다. 

1. Twitter Feed 수집 서버

fluentd에서 수집된 데이터를 GCP에서 분석하기 위해서는 아래 그림과 같이 Output 쪽에 Google Pub/Sub plugin을 설치가 필요하다.


fluentd 설치가 되었다면 간단하게 'td-agent-gem' 툴을 사용하여 plugin을 설치할 수 있다.
$ sudo td-agent-gem install fluent-plugin-gcloud-pubsub
Successfully installed fluent-plugin-gcloud-pubsub-0.0.5
Parsing documentation for fluent-plugin-gcloud-pubsub-0.0.5
Done installing documentation for fluent-plugin-gcloud-pubsub after 1 seconds
1 gem installed

데이터를 수집하기 위해서는 td-agent.conf 파일을 수정해야 한다. td-agent.conf 파일은 다음 경로에 있다.
/etc/td-agent/td-agent.conf


2. Twitter App 생성

Twitter에서 데이터를 가져오기 위해서는 계정에 접근할 수 있는 권한 정보들이 필요한데, Twitter 계정에서 App을 생성하면 된다.  App 생성은 Application Management 홈페이지에서 생성할 수 있으며, App을 생성하면 Consumer Key(API Key), Consumer Secret(API Secret), Access Token, Access Token Secret 등의 정보를 얻을 수 있다.



3. Google API 관리자 - Google Cloud Access Token 생성

Google Cloud Access Token 생성은 API 관리자를 통해 생성할 수 있다.
자세한 것은 'Google Cloud Platform 에서 PUB/SUB 사용하기' 글을 참고한다.

4. Fluentd에 Input(Twitter)과 Output(GCP Pub/Sub) 설정

/etc/td-agent/td-agent.conf 에 다음 내용들을 추가한다.


  type twitter
  consumer_key        # 트위터 Consumer Key(API Key)
  consumer_secret     # 트위터 Consumer Secret(API Secret)
  oauth_token         # 트위터 Access Token
  oauth_token_secret  # 트위터 Access Token Secret
  tag                 input.twitter.sampling  # Required
  timeline            sampling   # Required (tracking or sampling or location 
                                 # or user stream)
  keyword             iPhone7
  output_format       nest       # Optional (nest or flat or simple[default])


   type gcloud_pubsub
   project # GCP Project ID
   topic   # projects/GCP_Project_ID/topics/twitter
   key     # 다운로드 받은 Google Cloud Access Token JSON 파일
   flush_interval 10
   autocreate_topic false

[작성중...]

댓글

이 블로그의 인기 게시물

macOS가 갑자기 부팅이 되지 않을 경우 데이터 복구 또는 백업 방법

C++로 프로그래밍할 때 인자 또는 리턴 값으로 std::vector 등 STL 데이터 타입 처리하는 좋은 방법

Git 저장소를 병합하는 방법(How to merge repositories in Git)