Help us understand the problem. What is going on with this article?

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

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

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

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

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

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

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

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

ダウンロードしてきたインストーラーを起動します。
a3.jpg
Next>を選択します。
a4.jpg
今回は、本人利用だけの形を選択しました。
a5.jpg
デフォルトのインストールディレクトリで問題ないかと。(これは後のパス通しに関係してきます)
a6.jpg
今回のポイントがこの画面になります。赤字で推奨しない!と出てきますが、これをしないで続行した場合は、手動で環境変数のPATH等を設定する必要が出てくると思いますので、今回は勇気を振り絞って(苦笑)この項目にチェックを入れてインストールしました(人柱・・・・かな?!)
a14.jpg
基本的に、粛々とインストールのプロセスが進んで行きますので、心穏やかにお待ちください。
a15.jpg
此処まで来ればあと一息です。
a10.jpg
無事にインストールが終了しました。
a11.jpg

さて、動作確認・・・

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

print("test")

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

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

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

> python

と入力してスペースを1個入れた後、先ほどのファイルをドラッグアンドドロップします。
a18.jpg
無事に動き始めました!!

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

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

> jupyter notebook

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

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

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

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

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

> pip install pymysql

サクッと入りました。
a21.jpg

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

まずは読み出し・・

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)

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

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

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)

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

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

今回のまとめ

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

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

謝辞

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした