【Dr.Sum】Python Developer Toolを使ってみよう！【何ができる？】

# やりたいこと
Dr.Sumというデータベース製品はPythonと連携して大量データを柔軟に加工・分析することができます！
本記事では、Dr.Sum上でのpython開発をサポートするpython Developer Toolの使い方について解説していきます。

# 知っておいてほしいこと
### Dr.Sumとは？
Dr.Sumとは、高速集計に特化したデータベースソフトです。
PostgreSQLやMySQL、OracleやSQL Server、SnowflakeやRedShiftなどが同じ土俵のツールになるかなと思います。

https://www.wingarc.com/product/dr_sum/

### Python連携機能とは？
そんなDr.Sumにはpythonと連携できる機能があります。
Dr.Sum内の大量データを高速に処理することができます。
SQLでは難しい加工や、機械学習を使った分析などができるようになりました！嬉しいですね。

https://cs.wingarc.com/manual/drsum/5.6/ja/UUID-eada69d6-5fd7-1a57-747f-33318c15cae8.html

さらにさらに、pythonの開発をサポートするpython Developer Toolがあります。
今回はこのツールの使い方を紹介します！

# まずは起動しよう
Enterprise Managerの画面の上部にあるアイコンから起動します。

![起動アイコン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/dc19133f-a307-5c0c-d156-d3b44ace5d22.png)

すると、こんな画面が開きます。

![2022-10-20_16h20_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/8a9d9b13-199b-aec3-7b48-9f73520bfbf3.png)

# できること

Python Developer Toolでは大きく分けて**ファイル管理**と**パッケージ管理**の２つの機能があります。
それぞれ見ていきましょう！

### ファイル管理
ファイル管理では、ローカルとDr.Sumサーバー間のファイルのやり取りや、サイズや更新日時に基づく差分比較ができます。
さながらFTPクライアントのような動きになります。
画面の構成はこのようになっています。

![uuid-f218e047-66e3-5ccc-00aa-4a461e6adffd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/2e0ef824-a1e7-a8eb-028d-ac99b3e780a8.png)

(A)、(B)はそれぞれPY_SCRIPT_ROOTとPY_DATA_ROOTの内のフォルダの中身を表示しています。
具体的なパスはEnterprise Managerの[サーバー]-[設定]の「Python連携ルート」から確認・変更可能です。

![2022-10-19_21h51_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/aa0308d6-bd63-7d1b-7f88-8a31eaf66462.png)

上記の画像でいうと、次のようになります。
PY_SCRIPT_ROOT・・・C:/DrSum56/Server/samples/udtf-py/script
PY_DATA_ROOT・・・C:/DrSum56/Server/samples/udtf-py/data

(a)、(b)はそれぞれローカル及びサーバーの内容を示しています。
ドラッグ＆ドロップでファイルのコピーが可能です。
ローカルで作成したpythonファイルのデプロイを行うことができます。

![ファイル移動.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/26b643ed-aa7d-1540-7dbb-fa3c10f5b928.gif)


画面左上の[フォルダーを比較する]をクリックすると一定のルールに基づいて比較が行われ、色分けでわかりやすく表示してくれます。
色分けのルールは以下のとおりです。
・片方にファイルが存在しない→黄色
・更新日時が新しい→緑
・サイズが異なる→赤

![比較.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/4c14c36a-5ef5-c372-9d3f-31e51c561d60.png)

Python Developer ToolからはサーバーのPY_SCRIPT_ROOTまたはPY_DATA_ROOT直下しか参照できません。
特に機械学習を行う際は、外部のベンダーに予測モデルの作成などロジック部分を構築してもらうケースも考えられます。
システム管理者側からすると、意図しないファイルを閲覧されたり削除されたりといった事故を防ぐことができて良いのかなと思っています。

その他、詳しくはマニュアルをご参照ください。

https://cs.wingarc.com/manual/drsum/5.6/ja/UUID-02afc4a7-8736-8ccc-3a59-a70cc6e43e7c.html

### パッケージ管理
プログラムを書く上では欠かせないpythonのライブラリの管理が可能です。
Python Developer Toolの画面にメニューにある[設定]-[パッケージ管理]から開くことができます。

**インストール済みパッケージ** と **pipコマンドの実行** の２つのタブがあります。
インストール済みパッケージでは、Dr.Sumサーバー側のpython環境にインストールされているライブラリの一覧を確認できます。

![2022-10-19_22h35_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/d099723e-90c7-920d-42fb-f43f4faa4f00.png)

pipコマンドの実行では、ライブラリのインストールを行うことができます。
requirement.txtなどでライブラリを一括でインストールしたり、アンインストールすることも可能です。

![パッケージのインストール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2254022/5bfb9279-d801-fb21-4aa4-7e48cd6543ff.png)

その他、詳しくはマニュアルをご参照ください。

https://cs.wingarc.com/manual/drsum/5.6/ja/UUID-941bc433-6a37-15e5-31a9-b50463da0aa6.html

# まとめ
本記事では、python連携機能による開発をサポートするPython Developer Toolを紹介しました。
大まかにはファイル管理とパッケージ管理の２つで、デプロイやライブラリのインストールなどを行うことができます。
便利な機能が沢山あるので、ぜひ使ってみてください！