ZoomData 2.3をソーシャルリスニングツールとして使う（Twitter連携）

今回はZoomData 2.3をTwitterと連携させてみます。若干すんなりといかなかった部分も含めて紹介します。なお、本手順はあらかじめTwitterに開発者登録をしておいてTwitter APIが使えることが前提になります。

# ZoomDataとTwitterの連携
## データソースの選択

ZoomDataから参照先のデータソースとしてTwitterを指定します。左上のコンフィグアイコン（歯車マーク）からSourcesを選択して下の画面が出たらTwitterのアイコンをクリック。

![1.png](https://qiita-image-store.s3.amazonaws.com/0/150932/7a62ec6c-520e-8c88-0491-086cc92c673b.png)

Next
![2.png](https://qiita-image-store.s3.amazonaws.com/0/150932/10c54208-487e-c87f-9471-8fa35202bb77.png)

Create
![3.png](https://qiita-image-store.s3.amazonaws.com/0/150932/88721b6e-30cf-b96d-d575-5a6f0d5ce599.png)

ところが・・・エラーメッセージがでて先に進めません。

```
Falled to save source:Operation is not supported. streaming is disabled
```

理由を調べたところTwitterと連携するためにはMongoDBを追加で入れる必要があるとのこと。2.3からはベースのDBがPostgreSQLとなり、Twitterと連携するには後からMongoDBを入れなければならなくなりました。

というわけで以降はMongoDBをインストールしてからTwitterと連携する流れになります。

# ZoomDataのプロセス停止
最初にZoomDataを停止しておきます。

```
# systemctl stop zoomdata
```

# MongoDBのインストール
こちらを参考にインストールします。Community版をインストールすることにしました。

[MongDB installation](https://docs.mongodb.com/manual/installation/)

念のためSE Linuxはpermissiveかdisabledになっていることを確認しておきます。

## リポジトリ作成

```
# touch  /etc/yum.repos.d/mongodb-org-3.2.repo
```

```
# cat /etc/yum.repos.d/mongodb-org-3.2.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
```

```
# yum -y update
```

## インストール

```
# yum install -y mongodb-org
```

## プロセス起動
プロセスを起動します。

```
# systemctl start mongod
```

エラーが出てないことを確認しておきます。

```
# systemctl status mongod
```

自動起動もオンにしておきましょう。

```
# /sbin/chkconfig mongod on
```
## MongoDBの設定
MopngoDBに以下の設定をおこないます。値は一例です。

| 項目 | 値 |
|:-----------|:------------|
| データベース名       | zoomdata |
| user       | admin |
| password       | password |

## MongoDB上にデータベース作成

```
# mongo
MongoDB shell version: 3.2.11
中略
> use zoomdata

```

アカウントの追加

```
# mongo
>use zoomdata
>db.createUser({
>  user: "admin",
>  pwd: "password",
>  roles: [
>    {
>      role: "readWrite",
>      db: "zoomdata" 
>     }
>  ]
>})
```

入れるかどうか確認。

```
# mongo zoomdata -u admin -ppassword
```

## コンフィグ修正
リモートアクセスできるように127.0.0.1から0.0.0.0に変更します。

```
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.
```

入れるかどうか確認しておきます

```
# mongo {サーバのIPアドレス}
```

# ZoomData コンフィグ修正
## mongodbの情報を追記

```
# diff /etc/zoomdata/zoomdata.properties /etc/zoomdata/zoomdata.properties.org
4,9d3
<
< # MongoDb parameters
< zoomdata.db.host={サーバのIPアドレス}:27017
< zoomdata.db.name=zoomdata
< zoomdata.db.username=admin
< zoomdata.db.password=password
#
```

## ZoomData プロセス起動

```
# systemctl start zoomdata
```

しばらくかかります。ZoomDataのGUIに戻って冒頭の"ZoomDataとTwitterの連携"からやりなおします。

# ZoomDataとTwitterの連携（続き）
## 認証
Twwitterのユーザ名とパスワードを入れて連携アプリを認証。

![4.png](https://qiita-image-store.s3.amazonaws.com/0/150932/c9b88607-81f5-b549-9974-ddc4406da4bf.png)

## Fieldの設定
表示させるフィールドを指定したり、日本語で別名をつけることができます。とりあえず何もせずNext。

![5.png](https://qiita-image-store.s3.amazonaws.com/0/150932/01032e91-1b35-5d97-1e23-b12e18b06794.png)

## Chartの設定
期間は2016/11/27から現在までを指定しました。これでFinish。

![6.png](https://qiita-image-store.s3.amazonaws.com/0/150932/0e0e94a6-23a9-1f0d-8bd8-9267a166f461.png)

Chartへのリンクが表示されますのでクリックします。Barsを選択しました。

# Chartの表示
少し設定を変えてみました。日本のつぶやきを上位20位程度みられるようにします。Hash Tagの横軸のGroupをHash Tagに設定。左のFiltersでProfile languageをJAに設定。左のSort&LimitでLIMITを20に設定。でてきたのがこちら。

![7.png](https://qiita-image-store.s3.amazonaws.com/0/150932/3a27214e-67ce-ce9d-b57c-35ceff0dbe97.png)

Twitterなので猥雑なワードの登場はご容赦を・・・。例としてソーシャルリスニングツールとしての活用が容易であるとお分かりいただけるかと思います。グラフが上下に動きますのでリアルタイム感があります。

以上となります。