より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

衝撃のDatalore〜圧倒的な使いやすさを誇るクラウド上のJupyter Notebook

Dataloreの魅力

blog.jetbrains.com

要はクラウド上で動かせるJupyter Notebookといったところです。

f:id:rimever:20181222225815p:plain
ホーム画面

f:id:rimever:20181222163645p:plain

この手のサービスでは、Google ColaborateryやAzure Notebooksがあります。

それらのサービスがありながらも圧倒的な存在感のあるサービスです。

とにかく、使いやすいです。

JetBrainsはチェコの企業だけあって、どうしても日本では馴染みが薄いと思いますので、この記事を見て、興味を持っていただければ幸いです。

インテリセンス

使いやすさの最大の理由として、JetBrainsならではのインテリセンスが提供される点にあります。

f:id:rimever:20181222163259p:plain

Jupyter Notebookにおいて気になっていた点としては、インテリセンスがない点です。

  • 前に書いたソースをコピペ
  • 真面目に英語のAPI仕様書を見る

ということがあります。そうした手間が減るかなと思います。

改めてインテリセンスの恩恵を痛感しました。

  • 入力する手間が省ける
  • 入力ミスが減る
  • 忘れた関数などを探さずに済む

他にもカーソルの位置にある変数と同じ変数をハイライトする機能もあります。

f:id:rimever:20181222170744p:plain

Live Computation

動かしていると気づきますが、入力中に実行してしまいます。

エラーがあればエラーを表示します。

表示できそうならば表示します。

左下でこの機能を有効にするか切り替えることが可能です。

f:id:rimever:20181222163851p:plain

使い方について補足

プロジェクトを作成すれば、サンプルプロジェクトが作成されています。

こちらを動かして感触を掴んでいただければと思います。

私がつまづいた点を挙げていきます。

日本語文字化け対応は

日本人からするとmatplotlibの日本語の文字化けを解消するが必要あります。

フォントをFile uploaderでアップロードして、下記のようなソースを書けば対応できるのはわかってますが、流石にこれは不便です。

フォントフォルダにフォントをアップロードできるのがいいのですが、ファイル管理周りは制御されているっぽく、私も今、調査中です。

import numpy as np
import seaborn as sns
import matplotlib.font_manager as fm
font_path = "ipaexg.ttf"

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

fp = FontProperties(fname=font_path, size=14)

plt.bar([1, 2], [5, 10], 0.25)
plt.bar([1.25, 2.25], [4, 8], 0.25, color='darkorange')
plt.xlim((0.75, 2.75))
plt.ylim((0, 12))
plt.ylabel('軸ラベルはfontproperties=fp', fontproperties=fp)
plt.xticks([1.25, 2.25], ['目盛りは', 'fontproperties=fp'], fontproperties=fp)
plt.title('タイトルはfontproperties=fp', fontproperties=fp)
plt.text(2.125, 10, 'テキストは\nfontproperties=fp', fontproperties=fp,
         ha='center')
plt.annotate('アノテーションは\nfontproperties=fp', xy=(1.125, 5), xytext=(1.3, 8),
             fontproperties=fp, arrowprops=dict(facecolor='k', shrink=0.05))
plt.legend(['凡例は', 'prop=fp'], prop=fp, loc='upper left')

ファイルはどうやってアップロードする

操作するとipynbのようなノートブックのアップロードはできますが、Jupyter Notebookのようにホーム画面からcsvファイルやsqlite3ファイルなどがアップロードできません。

ノートブックを開いて上部メニューのTools-File uploaderから行います。

f:id:rimever:20181222225620p:plain

お高いんでしょう?

コミュニティー版であれば、月120時間、アップロードは10GBまでです。

メモリは4GBです。

プロフェッショナル版では月20ドルで、アップロードは50GBまで。

月120時間をオーバーすると、使用しているサーバーに紐付く使用時間の課金をされます。

サーバーはAWSですので、AWSの金額に上乗せした額のようです。

ですので、向こうからすると確実に儲かる仕組みの様子。

long computation

Dataloreは120時間というボーダーラインがあります。

意図せずに使い続けないように5分ほどで自動的に停止するようになっているようです。

長時間実行しない限りは、ノートブックの上部メニューのTools-long computationのチェックを外しておくことを勧めます。

実行を停止する

ホーム画面の右上で自分のアカウントをクリックして出てくるメニュー、 Running Computationsをクリックしてください。

f:id:rimever:20181222192141p:plain

実行しているプログラム一覧を確認できるので、そこから停止できます。

ショートカットキー

一部の操作はJupyter Notebookとは異なります。

上部メニューのHelpからショートカットキーが確認できます。

f:id:rimever:20181224133959p:plain

最後に

Google ColaboratryにもAzure Notebooksにも、それぞれに良さはあるとは思います。

あとは、使い分けなのかなと。

Google ColaboratryもAzure NotebooksもJupyter NotebookもPyCharmもVisual Studio Codeといっぱいあるのに試す余裕はなかなかないかもしれません。

それでも、一度はこのDataloreに触れて欲しいです。

JetBrainsは使いやすい IDEを開発している会社というのはわかっていたのですが、その圧倒的な強みを感じさせてくれるサービスです!

P.S(2019/1/4)

多くの方にはてなブックマークしていただいたので、ちょっとしたことですが、本記事を作成後にDataloreについて気づいたことを下記に記載しました。

rimever.hatenablog.com

よろしかったら、お読みください。