仕事やプライベートで調べたことのメモ書きなど(@札幌)

仕事やプライベートで調べたこと、興味ある事のメモ書きです。2016年4月から札幌で働いてます。※このブログは個人によるもので、団体を代表するものではありません。

MSDNサブスクリプションはVisual Studioサブスクリプションへ

知りませんでした。いつの間にか。
opcdiary.net

ライセンスの割り当てを行って、
いつものMSDNサブスクライバーダウンロードの画面で、今か今かと確認していたのですが。

旧サイトもそのまま残っているし、絶対にわからないと思う。
MSDN サブスクライバー ダウンロード

新しいサイトは、https://my.visualstudio.com/とのことです。

vagrant上にインストールしたAerospikeでycsbを実行してみる

さて、前回はWindows上のVagrantでAerospikeをインストールしてみたので、
takumats.hatenablog.com

今回は無理やりycsbの実行にチャレンジする。
github.com

従った手順は、公式サイトのこの記述。
Documentation | Aerospike

前回作った環境では、Javaが入ってなかったので、まずは以下に従ってjdkをダウンロード
qiita.com

その後、以下に従って、jdkをインストール
zero-config.com
すると、「java -version」が返ってくるようになりました。

mavenのインストールは以下を参考に。
qiita.com

で試行錯誤したらできるようになったのだが、つまづきポイント。

  • namespaceとしてycsbが必要 (aerospike.confで対応 (namespaceやファイル名))
  • 一度やると再実行でエラー (データが入っているため)

実行した感じ

[root@localhost YCSB]# bin/ycsb load aerospike -s -P workloads/workloada
[WARN]  Running against a source checkout. In order to get our runtime dependencies we'll have to invoke Maven. Depending on the state of your system, this may take ~30-45 seconds
[DEBUG]  Running 'mvn -pl com.yahoo.ycsb:aerospike-binding -am package -DskipTests dependency:build-classpath -DincludeScope=compile -Dmdep.outputFilterFile=true'
/usr/java/jdk1.8.0_111/bin/java -cp /opt/YCSB/aerospike/conf:/opt/YCSB/aerospike/target/aerospike-binding-0.9.0-SNAPSHOT.jar:/opt/YCSB/core/target/core-0.9.0-SNAPSHOT.jar:/root/.m2/repository/com/aerospike/aerospike-client/3.1.2/aerospike-client-3.1.2.jar:/root/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.4/HdrHistogram-2.1.4.jar:/root/.m2/repository/org/gnu/gnu-crypto/2.0.1/gnu-crypto-2.0.1.jar:/root/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.4/jackson-mapper-asl-1.9.4.jar:/root/.m2/repository/org/luaj/luaj-jse/3.0/luaj-jse-3.0.jar:/root/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.4/jackson-core-asl-1.9.4.jar:/root/.m2/repository/org/mindrot/jbcrypt/0.3m/jbcrypt-0.3m.jar com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.AerospikeClient -s -P workloads/workloada -load
YCSB Client 0.9.0-SNAPSHOT
Command line: -db com.yahoo.ycsb.db.AerospikeClient -s -P workloads/workloada -load
Loading workload...
Starting test.
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
2016-11-22 18:50:08:459 0 sec: 0 operations; est completion in 0 seconds
2016-11-22 18:50:08:609 0 sec: 1000 operations; 4901.96 current ops/sec; [CLEANUP: Count=1, Max=253, Min=253, Avg=253, 90=253, 99=253, 99.9=253, 99.99=253] [INSERT: Count=1000, Max=24095, Min=31, Avg=109.41, 90=113, 99=566, 99.9=5871, 99.99=24095]
[OVERALL], RunTime(ms), 209.0
[OVERALL], Throughput(ops/sec), 4784.688995215311
[CLEANUP], Operations, 1.0
[CLEANUP], AverageLatency(us), 253.0
[CLEANUP], MinLatency(us), 253.0
[CLEANUP], MaxLatency(us), 253.0
[CLEANUP], 95thPercentileLatency(us), 253.0
[CLEANUP], 99thPercentileLatency(us), 253.0
[INSERT], Operations, 1000.0
[INSERT], AverageLatency(us), 109.409
[INSERT], MinLatency(us), 31.0
[INSERT], MaxLatency(us), 24095.0
[INSERT], 95thPercentileLatency(us), 200.0
[INSERT], 99thPercentileLatency(us), 566.0
[INSERT], Return=OK, 1000
[root@localhost YCSB]#

一度実行してデータが追加された場合、Set内のデータを削除するにはこんな感じで実行する。

[root@localhost YCSB]# asinfo -v "set-config:context=namespace;id=ycsb;set=usertable;set-delete=true;"

「HWAUG & GPU-Accelerated VDI Community Meetup in 札幌」に参加(2016/11/21@札幌)

掲題のイベントに参加してきました。
h-watson.connpass.com

今回このイベントに参加した理由は2つ。
1つは札幌にあるIBMさんのオフィスで実施されるとのことで、勤務先と同じビルのため近かったこと。
もう1つは、前職で知り合いだった方が偶然登壇されることを知ったこと。

さて、勉強会の内容ですが・・・。
先頭は札幌のワトソンユーザー会でおなじみの佐藤さん。そういえば、ワトソン君のブログが更新されていないような・・・。
watson-sapporo.hatenablog.com
きっと、仕事が忙しいということで、プラスの解釈としましょう。

次の方、IBMエバンジェリストの方、とのことですが、なかなか面白かったです。
LINEボットをワトソン使って作る話なのですが、人工知能というよりは、
ルールベースの会話ができるボットを簡単に作れるよ、とのこと。
そうなんです、結局ルールベースなんですよね。
このあたり、人工知能の幻想と現実にできること、について、少しだけわかった気がしました。
linecorp.com

その次の方はいろいろ紹介されるセッションでしたが、その中でも、nvidia-dockerというのが気になりました。
github.com
私はもともとWindowsユーザー/開発者のため、dockerについてよくわかってないです。
ちょっとdockerについては、もう少し勉強せねば・・・。

次はNVIDA GRID(VDI)の話。CUDAもリモートで使えるようになるとのこと。
事例はやはりCADとかをたくさん使う自動車関連など。これまではワークステーションをたくさん並べなければならなかったのが、
シンクライアントで作業できるようになったらしい。
www.nvidia.co.jp
コンシューマー向けに普及するかがカギだろうか。。。
GPGPUではほぼ姿が見えなくなったAMDも、この分野では頑張ろうとしている模様。

さて、前職で知り合いだった方。
普段は東京にいるようで、また札幌にも来るとのことでした。
今回は懇親会には行けませんでしたが、次回はぜひお酒でも飲みにいければ。

「Oracle Cloud Developers Meetup@北海道 - 機械学習でお客様が他にも買いそうな商品を予測しようじゃないか。 」に行ってきた。(2016/11/17@札幌)

前回も参加したのですが、Oracle主催のハンズオンに行ってきました。
oracleclouddevelopersh.doorkeeper.jp

前回の参加メモはこちら。
takumats.hatenablog.com

やはり実際に手を動かしてのハンズオンは楽しい♪
今回のチュートリアルの内容はこちら。資料を公開してくれているのも、後でできるのでうれしい。
qiita.com

ハンズオン時は以下のようなOracle Application Expressというのに接続できるようになっている。
f:id:takumats:20161117191543p:plain

ツールとして、Oracle SQL Developerというのを使います。
http://www.oracle.com/technetwork/jp/developer-tools/sql-developer/downloads/index.html

まぁ基本は言われた通りにポチポチやっていくだけなのですが、
このような手順でいろんなことができる、というのはとても新鮮。
たったい2時間だし、こまごまとした説明とか、進捗遅い人を待っているのをふまえると、実質30分くらいか。

以下、メモ。

データ分析は大きく以下の流れで作業する。

  • 対象のテーブルの特定
  • データを加工(data preparation):欠損値補完、テーブル結合、など
  • 分析の手法を選択

テーブルの特定

バスケット分析で必要になる情報:Transaction ID、Item ID
まずは分析対象のテーブルを特定することが重要。
今回は二つのテーブルを選んだ。

データの加工

今回は結合(inner join)のみ。

分析手法を選ぶ

今回はアソシエーション。
この分析を選ぶところが、ノウハウがいるところ。
今回のようなフレームワークを使うとドラッグ&ドロップでいろいろできるが、やれることは限られる。
凝ったことをするには、やはり言語系の何かが必要だろう。

余談だが、分類、を使うと、どんなお客が買ってくれるか、みたいなことを分析できる。

f:id:takumats:20161117201201p:plain

そして実行すると

緑のポチがつく。
f:id:takumats:20161117201657p:plain

これを分析

  • 確信度:その事象(先行情報→結果)が起こる確率
  • サポート値:全体の母数に占める割合(サポート値が低いと信頼に足らないのでは?という情報)
  • リフト値:1未満だと信用できない

bdm.change-jp.com

そして、この結果をおすすめ商品を表示するところに記載してあげる。

最後に頭の体操

これが自動車会社だったらどんな分析をするべき?

どのような塊をトランザクションとするか、そこがデータサイエンティストの仕事で腕の見せどころでもある。

おまけ

ちなみに、12月に以下のようなイベントをするそうです。
Oracle Cloud Day Sapporo 2016
http://www.oracle.com/goto/cloudday_sapporo2016

機械学習と統計分析の違いがいまいちよくわからなくなってきた・・・・。
tjo.hatenablog.com

ビジネスEXPO 2016に行ってきた(2016/11/11@札幌)

毎年開催されているビジネスEXPO(第30回ビジネスEXPO(北海道 技術・ビジネス交流会))というものに行ってきました。
www.business-expo.jp

事前にIT関連ばかりではない展示会だということは聞かされてはいたのですが、なかなか楽しめる展示会でした。
札幌ではない道内の会社さんとお話しできたり、大学関連のブースもあったり、普段あまり接点のないところと話をできたのはよかったと思います。

リクルートスーツに身を包んだ学生さんっぽい人たちも結構いましたね。
実際に弊社が展示を行った場合にどの程度効果があるのか、というところはわかりづらいところはありますが・・。
ただ、他の展示会のように参加者は登録制にして名刺でもぶら下げてもらう方が、出展する立場になってみるとありがたいのではないでしょうか?
いろいろとシステム的に面倒なのでしょうかね?参加者にも心理的抵抗が出てくるのでしょうか・・・?

IoT関連の展示もいくつかあって、どういった感じでデータ集めてるか、という視点で話を聞いてはみたものの、どこも、MySQL。まだ、パフォーマンスが困るほどは使い倒していないようでした。

いくつか話を聞いた中で、バスロケーションシステムの話が複数。
北海道のバスは冬に遅れるし待つのも寒いから需要があるのかも??
info.buskita.com
info.chi-navi.net

HBAソリューションフォーラム2016に行ってきた(2016/10/18@札幌)

少し前になりますが、HBAソリューションフォーラム2016に行ってきました。
会社の製品を扱っていただいている代理店さんが、弊社の製品を展示くださったというのもありご案内いただいたため、初めて参加しました。
そもそも、このフォーラム自体、今まで知らなかったのですが、HBAさんの取引先向けの展示会という位置づけのため、まぁ無理もないか・・。
HBAソリューションフォーラム2016 イベント概要 | 株式会社HBA

弊社自身は直接HBAさんとは取引はないのですが、多くの会社が参加され展示されていて、意外と楽しめる展示会でした。アンケートに答えたら、ノートまでいただきました。

こういう少しクローズドなイベント、確かによくあると思うのですが、せっかくいろんな会社さんが展示されているので、もう少しオープンな感じに集客してもよいのではないか、と思いました。まぁいろいろな戦略、目的の上で、だとは思いますが・・・。

Windows上のVagrantでAerospikeをインストールしてみる

KVSの一種であるAerospikeを試したくなったので、以下のページに従って入れてみた。

Aerospikeとは

www.aerospike.com

AerospikeはNoSQLの仲間。数あるKVSの中でも高速性が売り。CassandraやRedisとよく比較されている。
www.aerospike.com

サイバーエージェントが大規模に導入したことが有名。
www.cyberagent.co.jp

AerospikeをWindows(Vagrant)に入れてみる

http://www.aerospike.com/docs/operations/install/vagrant/win

C:\HashiCorp\Vagrant\aerospike-vm>vagrant init aerospike/centos-6.5
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

C:\HashiCorp\Vagrant\aerospike-vm>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'aerospike/centos-6.5' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'aerospike/centos-6.5'
    default: URL: https://atlas.hashicorp.com/aerospike/centos-6.5
==> default: Adding box 'aerospike/centos-6.5' (v3.10.0.3) for provider: virtualbox
    default: Downloading: https://atlas.hashicorp.com/aerospike/boxes/centos-6.5/versions/3.10.0.3/providers/virt
ualbox.box
    default: Progress: 100% (Rate: 2797k/s, Estimated time remaining: --:--:--)
==> default: Successfully added box 'aerospike/centos-6.5' (v3.10.0.3) for 'virtualbox'!
==> default: Importing base box 'aerospike/centos-6.5'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'aerospike/centos-6.5' is up to date...
==> default: Setting the name of the VM: aerospike-vm_default_1478009422332_5745
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly

==> default: Forwarding ports...
    default: 3000 (guest) => 3000 (host) (adapter 1)
    default: 8081 (guest) => 8081 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 5.0.20
    default: VirtualBox Version: 5.1
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => C:/HashiCorp/Vagrant/aerospike-vm

C:\HashiCorp\Vagrant\aerospike-vm>

すると、上記のように普通にインストールが実行され、aerospikeのserviceが動いているらしいことは確認できる。