前置き
- 本記事はあくまで個人の意見である
- 環境によってはもっと適する形があると思う
- 勉強不足のためもっとスマートな方法があるかもしれないです
分析環境構築の流れ
- 以下流れで仮想環境を構築していく
No. | 内容 |
---|---|
1 | 全体像 |
2 | VirtualBox+vagrantで仮想環境を構築 |
3 | pyenv+Anaconda[Python、R]+jupyter+Rstudioのインストール |
4 | postgreSQL+Pgadmin4のインストール |
どんな人向けか?
- 分析環境について考える際、普段どのような働き方をしているかで分析環境を考えた
- いろいろな働き方があるかとは思うが、今回は以下のような人向けの分析環境について考える
考えた結果
- 以下のような分析環境を考えた
※書けば書くほど複雑になって分かりにくい
考えたこと
【1】なぜ仮想化なのか?
- 分析の実行環境はLinuxベースのサーバーへSSHすることが多そう
- ローカルにLinux環境を構築することで、手戻を少なくする
※具体的には以下のような手戻を経験したことがあるため
実務あるある①
- ノートPC環境はWindowsまたはMac
- 分析用サーバーにSSHすればLinux環境がある
- 分析用サーバーがあるとはいえ、まずはサーバー上で開発するよりローカルで開発したい
- 理由①:変なコードを流して分析用サーバーを利用している人に迷惑をかけたくない
- 理由②:結果を転送するのが面倒
- 理由③:ぱっと分析したいときに、いちいちSSHするのが面倒
- ローカルで分析したコードを分析サーバーで実行するとエラーとなる
- 原因①:パッケージがインストールされていない
- 原因②:パッケージのバージョンが違う
- 原因③:エンコード、改行コードが違う
- 分析用サーバーでトライ&エラー
実務あるある②
- ノートPC環境はWindows
- ターミナル上で実行したいがMS-DOSが使いにくくCygwinを入れる
- ライブラリのインストールでつまずく
- 頑張ってググってとりあえず動かすことができるが、環境がめちゃくちゃになる
- CygwinにAnacondaを入れようとしてもうまく入らない
- あきらめてWindows環境で分析しターミナル上では動かさない
- 分析用サーバーでトライ&エラー
【2】分析クライアントツール
- 個人的にRstudioのような分析環境が好き
- 好きな理由は以下の通り
- スクリプトの実行結果が別に表示される
- 行単位で実行可能
- マークダウンが書ける
- スライドショーができる
- 仮想環境と連携できる
- 環境構築が楽
- Pythonも同様の環境を探し以下まとめた
※調査不足の可能性あり
ソフトウェア | 結果 | 1 | 2 | 3 | 4 | 5 | 6 | 備考 |
---|---|---|---|---|---|---|---|---|
Rodeo | × | 〇 | 〇 | △ | × | △ | 〇 | 公式ではマークダウン、サーバー指定できると記載があるがバージョン2.0.13でできなかった。 |
Spyder | × | 〇 | 〇 | × | × | × | 〇 | 調査不足の可能性あり。 |
PyCharm | × | 〇 | × | × | 〇 | 〇 | × | 調査不足の可能性あり。 |
Jupyter | 〇 | × | 〇 | 〇 | 〇 | 〇 | 〇 | Rも同様の環境で利用可能。 RISEを使うとスライドショーができる。 |
Jupyter lab | × | × | 〇 | 〇 | 〇 | 〇 | 〇 | jupyterでできることは基本できそう。 ターミナルとスクリプトは画面分割されているが結果がターミナルに反映されるわけではない。 今後に期待したい。 |
【3】ソフトウェアライセンス
- オープンソースのライセンスを利用する
- 利用する理由は以下の通り
- アカデミックとの連携を考えると、有償の環境はなるべく避けたい
- 有償ソフトウェア依存となりたくない
【4】その他ソフトウェアを選んだ理由
ソフトウェア | 理由 |
---|---|
Windows | 周りにMSofficeユーザが少なくないため (今回の場合Macでも同じような環境を構築可能) |
Oracle VirtualBox | 既存PCで仮想環境を構築したかったため。 Windows、Macどちらでも対応可能な仮想環境としたかったため。 ※詳細は 仮想環境についてまとめてみる にて記載 |
vagrant | 同一の環境を配布するため。 最近流行りのDockerも試したがいろいろ失敗してしまった。 |
Ubuntu | 分析サーバーのOSに合わせる ※最近の分析関連の記事はUbuntuが多い気がする。 |
Anaconda | 必要なライブラリがまとまっており楽だから |
Teraterm | 今まで使ってきたから |
WinSCP | 他になにがあるのよくかわからないから |