スキップしてメイン コンテンツに移動

kibana

アンケート結果の集計とプレゼン資料作りの宿題がある。
アンケート結果はCSVファイルに1行ごとにまとめてあるが、EXCELでの集計は面倒になりそう。
噂のkibanaを使ってみることにする。

とりあえずkibanaは単体では使えず、ElasticsearchというDBと組み合わせて使うものであることを知った。まずこれらを我が家のNASにインストールする。本家にRepositoryからのインストール手順があるのでこれに従う。我が家はUbuntu 16.10なのでdebianパッケージを使う。

まずはElasticsearch

https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html


Ubuntu 16.10はsystemdなので、この流儀でサービスを起動する。

Kibanaも同じ

https://www.elastic.co/guide/en/kibana/current/_upgrading_kibana.html#setup-repositories

CSVファイルからElasticsearchへのデータ投入はembulkを使った。

http://www.embulk.org/docs/recipe/scheduled-csv-load-to-elasticsearch-kibana4.html

上記ページのscheduledは関係なし。
データ投入までの手順は上記の説明に合わせる。CSVファイルはcsvフォルダにおいて、embulk exampleを実行し、ファイル置き場などを手直ししたうえでembulk guessコマンドを実行する。SHIFT JIS文字列やCRLF改行を認識してくれるので助かる。

今回投入するデータは日本語を含んでいて、日本語文字はデフォルトの構文解析器だと1文字単位にばらされるとのこと。文字列データに対して"index: not_analyzed"を指定すれば回避できるとの記事もあるが、embulkでデータを投入するとmapping設定としてindex設定ができない(設定する方法を見つけることができなかった)。

仕方がないので、以下のシェルスクリプトで事前にmappingデータを投入し、その後embulk run config.ymlを実行する、というやり方で落ち着いた。

curl -XPUT 'http://localhost:9200/wlb2016_webservice' -d '
{
    "mappings" : {
      "wlb_2016_webservice" : {
        "properties" : {
          "URL" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "WEBサービス" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "年代" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "性別" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "所属" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "番号" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "紹介文" : {
            "type" : "string",
            "index" : "not_analyzed"
          }
        }
      }
    }
}'
データがイマイチな場合、以下のコマンドでElasticsearchのデータを消して再実行を繰り返した。

curl -XDELETE 'http://localhost:9200/wlb2016_webservice'

今回のデータは日時データを含まないのでkibanaのSetting設定では「Index contains time-based events」チェックボックスを外し、index名称を指定すればよい。

その後Visualize画面で円グラフを作ってみた。とりあえずうまく動いた。

よくわからないのは、総数が少ないアイテム群を「その他」のようにまとめて表示する機能はないのか?というところ。

コメント

このブログの人気の投稿

ST-M310 シフトレバーのカバー開け

通勤用のCylva F24のリアディレイラーの変速の調子が悪いので調整した。完ぺきではないし、購入してからもうすぐ2年、走行距離は5000Kmは超えているはずなのでシフトケーブルも見てみたいと思い、シフターの分解をやってみる。 マニュアルはこちら。 https://si.shimano.com/pdfs/dm/DM-SL0001-09-JPN.pdf 20ページがALTUS、つまりST-M310のはず。 ねじを外せば太鼓部分を隠しているカバーが取れるように見えるけど、自分の場合二つ問題が。 一つ目はカバーがブレーキレバー部分にぶつかって取れない。Cylva F24についているシフターはブレーキレバーと一体型になっている。型番はよくわからない。マニュアルはシフターのみしか書いていないので、蓋が簡単に取れるように見えるけど、ブレーキ部分にぶつかって上には外れない。結局ブレーキ部分に当たる側をマイナスドライバーで側面の高さ分持ち上げた。 二つ目は爪の存在が説明されていない。マニュアルにはひっかけ部分の説明があるけど、そもそもインジケーターの裏が爪になっていてカバーが引っ掛かっている。この爪は真ん中に3mmぐらいの間があるので、ここにマイナスドライバを突っ込んでてこの原理で無理やり開ける必要がある。 カバーを外すとたぶんインジケーターが吹っ飛ぶけど、これは見れば直す方法はわかる。 で、中身を確認したけどきれいなもんでさびなどないし、ワイヤーの切れ・ほつれもなかった。

Ride with GPSで作成したルートのgpxファイルとOruxMapsの関係

Ride with GPSのAndroidアプリによるナビゲーションはOruxMapsと比較して告知がしつこくない。設定があまり多くないので仕方がないが、キューシートのポイントに対して一回しかアナウンスがない(もう一回ぐらいあるかな?)。またルート外に出た場合は地味な警告音と文字の通知しかない。 OruxMapsだと、ポイントの何メートル前で警告を出すか、最大何回出すか指定できる。街中だとうるさいぐらいしつこくアナウンスが出る。同様にルート外に出た場合も、しつこくしつこくアナウンスが出る。 たぶんブルベだとこれぐらいしつこい方がミスコースをなくすためにはいいと思う。 そうすると、Ride with GPSで作成したルートを使ってOruxMapsでナビゲーションするのがよい。 色々試した感じではGPXトラックのExportで、経路マーカーとしてPOIを含めると経路マーカーとしてキューを含めるをチェックすると、POIとキューがgpxのWayPointとしてExportされる。 キュー キューはWayPointとしてExportされる。RWGPSの「種類」として選んだものがnameに入り、注記に入れたものがdescとcmtに入る。   <wpt lon="139.5624979" lat="35.5408905">     <name>Straight</name>     <cmt>PC1</cmt>     <desc>PC1</desc>     <sym>Dot</sym>     <type>Dot</type>   </wpt>   POI POIの名前として入力したものはnameに入る。 <wpt lon="139.60360027326055" lat="35.565638161972615"> <name>フオトチェック</name> <sym>Dot</sym> <type>Dot</type> ...

Bryton 420 gpxデータ

Google マイマップでルートを引き、KMZファイルをGPS Visualizer ConverterでGPXファイルに変換してBryton Activeに転送し、Bryton 420に転送する。 車で通れないルートを通るために、マイマップ上で車のルートと徒歩のルートを織り交ぜてルートを引いたものをBryton Activeに転送したら、対応していないGPXファイルである、とのエラーが出た。 しかたがないのでルートを分割して対応した。