MemSQLを使ってみようVol.14: 実践編7


Windows環境向けの追加検証を行います。

前回、Mac環境でのJupyter NotebookとMemSQLの連携検証を行いましたが、今回は環境を少し変えてWindows環境とリモートのMemSQLを使った追検証を実施してみたいと思います。

今回はAnaconda環境としてJupyter Notebookを導入してみる・・

前回は、色々とステップを踏んで環境を構築しましたが、今回の検証ではシンプルにAnacondaの最新版を使って、関連環境を整える事にします。

まずは、Anacondaのホームページへ行って、必要なモジュールをダウンロードしてきます。


ダウンロードのページへ移動して

執筆時点では、Python3.7のバージョンが公開されていましたので、Windows10の64ビット版に合わせてAnacondaの64ビット版をダウンロードします。

では!インストールします!!

ダウンロードしてきたインストーラーを起動します。

Next>を選択します。

今回は、本人利用だけの形を選択しました。

デフォルトのインストールディレクトリで問題ないかと。(これは後のパス通しに関係してきます)

今回のポイントがこの画面になります。赤字で推奨しない!と出てきますが、これをしないで続行した場合は、手動で環境変数のPATH等を設定する必要が出てくると思いますので、今回は勇気を振り絞って(苦笑)この項目にチェックを入れてインストールしました(人柱・・・・かな?!)

基本的に、粛々とインストールのプロセスが進んで行きますので、心穏やかにお待ちください。

此処まで来ればあと一息です。

無事にインストールが終了しました。

さて、動作確認・・・

まずは、テキストエディタを使ってPythonを書いてみます・・

print("test")

test.txtではなく、test.pyとして保存します。

インストールされた環境を呼び出してきます。

Anaconda Promptを選択して、先ほどのファイルでを流し込んでみます。

> python

と入力してスペースを1個入れた後、先ほどのファイルをドラッグアンドドロップします。

無事に動き始めました!!

いよいよJupyter Notebookとの遭遇・・

先程と同様に、Anaconda Promptを立ち上げて、

> jupyter notebook

と入力します。
無事にWindows10環境上にJupyter Notebookが立ち上がってきました!

念のために・・MemSQLとの連携を確認します

ここまでくれば、基本的にJupyter NotebookのPythonワールドになりますので、前回と同じ手順でMemSQLへの読み書き連携検証を行ってみたいと思います。

お約束のモジュールを導入

まずは、前回同様にpymysqlを導入します。

> pip install pymysql

サクッと入りました。

では、具体的な連携作業に入ります。

まずは読み出し・・

import pymysql

db = pymysql.connect(host='xxx.xxx.xxx.xxx', #ネット上のMemSQLに付与されているIPアドレス
                     user='root',
                     password='',
                     db='r_db',
                     charset='utf8',
                     cursorclass=pymysql.cursors.DictCursor)

db.commit()

with db:
    cur=db.cursor()
    cur.execute("SELECT * FROM r_table03")
    rows=cur.fetchall()
    for row in rows:
        print (row)

今回は、前回の検証で作成したデータベースとテーブルを、そのまま読み出しています。

無事に読み出せました!

次にデータベースの書き込み・・

import pymysql

db = pymysql.connect(host=  'xxx.xxx.xxx.xxx', #ネット上のMemSQLに付与されているIPアドレス
                             user='root',
                             password='',
                             db='r_db',
                             charset='utf8',
                             cursorclass=pymysql.cursors.DictCursor)

db.commit()

with db:
   cur=db.cursor()
   cur.execute("CREATE TABLE IF NOT EXISTS pw_test(test_id INT AUTO_INCREMENT PRIMARY KEY, data VARCHAR(25))")
   cur.execute("INSERT INTO pw_test(data) VALUES('aaaaaaa')")
   cur.execute("INSERT INTO pw_test(data) VALUES('bbbbbbb')")
   cur.execute("INSERT INTO pw_test(data) VALUES('ccccccc')")

無事に書き込めたか確認してみます。

with db:
   cur=db.cursor()
   cur.execute("SELECT * FROM pw_test")
   rows=cur.fetchall()
   for row in rows:
        print (row)

うまくデータベースに収まってくれました。

…という事で、取り急ぎの駆け足検証@Windowsは終了です。

今回のまとめ

今回は、前回に引き続きJupyter NotebookとMemSQLの連携検証をWindows10+リモートのMemSQL環境で行ってみました。こちらの仕組みも、必要な環境が動き始めれば、素直にpymysql経由でMySQLのフリをしながらMySQLを操作出来る様になりますので、ぜひWindows派の皆様もMemSQLをお試し頂ければと思います。

また次回以降の予定としては、以前の回でご紹介させて頂いた、MemSQLのファイルシステムパイプラインを使って、データの定期取り込みをしながらMemSQL上に基礎データの蓄積を行い、そのデータをRやJupyter Notebookで操作しながら結果を再度MemSQLに書き込んで、最終的にZoomdataで可視化する・・というシナリオに挑戦してみたいと思います。

謝辞

本解説に転載させて頂いているスクリーンショットは、一部を除いて現在MemSQL社が公開されている公式ホームページの画像を使わせて頂いており、本内容とMemSQL社の公式ホームページで公開されている内容が異なる場合は、MemSQL社の情報が優先する事をご了解ください。