チーム分析におすすめなDeepnote入門

みなさんは、Deepnoteというサービスは聞いたことがありますか?

データ分析界隈で最近聞いたのですが実際使ってみたら非常に便利だったため、今回Deepnoteの入門記事を作成しようと思い立ちました。

この記事では、以下のような問いに答えていきたいと思います。

  • Deepnoteとは何か?
  • Deepnoteのどこが便利か?
  • Deepnoteのデメリットはあるか?
  • Deepnoteのおすすめ利用ケースは?
  • Deepnoteの使い方は?

Deepnoteとは?

Deepnoteの概要

Deepnoteとは、「コラボレーション型のデータ分析ノートブック」です。

まず、コラボレーション型と言ったようにノートブックを実行するインスタンスがクラウド上に用意されています。そして、そのノードブックを複数人で同時編集をしたり、セルに対してコメントを貼り付けたりすることができます。

コラボレーション向けという点が特筆はしていますが、それ以外にもわざわざDeepnoteをノートブックとして利用したいメリットがたくさんあります。

Deepnoteの画面構成

Deepnoteの画面構成は下記のようになっています。

  • 左側:「Workspace > Folder > Project」という階層構造でディレクトリを操作できるエリア。
  • 中央:「スクリプト / マークダウン / SQLクエリ / 入力UI」を操作できるノートブックのエリア。
  • 右側:「プロジェクト / 外部連携 / コメント / 履歴」を操作できる設定エリア。

Deepnoteのメリット

Deepnoteのメリットは主に5つあります。

  1. コーディングの同時編集が可能(セルへのコメントも可能)
  2. クラウド上のインスタンスで実行可能(ディレクトリ上のファイルデータも残る)
  3. セルの共有(URL生成)が可能
  4. データベースとの連携がシームレス
  5. 実行環境のカスタマイズが可能

サービスの趣旨としては、Google Colaboratoryに類似していますが、上記5つの点においてGoogle Colaboratoryよりも優れていることがわかります。

それぞれのより詳しい方法は、この後の章で解説します。

Deepnoteのデメリット

以上のように非常に利便性が高い一方で、改善余地のある点(デメリット)もあります。

  1. インスタンスの起動が遅い(1分以上かかる場合あり)。
  2. Jupyterのセルを扱うショートカットが使えない。
  3. 本格的にチーム利用するにはお金がかかる(個人利用は無料)。

フリープランでは、以下の範囲まで使用することができます(2022/09/06 現在)。

  • 編集者:3人
  • プロジェクト数:10
  • マシンの稼働時間:750時間 / 人 / ワークスペース
  • 変更履歴:過去7日間

ちなみに、学生向けの無料プランもあるため、学生の方は、こちらをご参照ください。

より詳細な料金体系は下記をご参照ください。

Deepnoteのおすすめ利用ケース

上記のメリットとデメリットを踏まえて、どのような利用ケースがDeepnoteに向いているかを下記のリストにまとめました。

  • 少人数(3人以下)でデータ分析を行うケース。
  • 計算能力の高いコンピュータが用意できないケース。
  • 実験的に短いスクリプトを実行したいケース。

Deepnoteの使い方

ここでは、Deepnoteの各機能を個別的に解説していきます。
気になる機能だけをピックアップして確認するハンドブックのようにご利用ください。

アカウント作成

下記のサイトへアクセスして、Get startedよりアカウント作成が可能です。

ノートブックの実行方法

ノートブックは、中央エリアのRun notebookを押して全てのセルを実行するか、セルを選択した上で「右側の実行ボタン」をクリックすることで選択したセルを実行できます。

実際に以下のようなコードを実行し、irisのDataFrameをdisplayすると以下のような画面になります。
表だけでなく、その分布を示してくれて、大変見やすいですね。

from sklearn.datasets import load_iris
import pandas as pd

iris_dict = load_iris()
df = pd.DataFrame(iris_dict.data, columns=iris_dict.feature_names)
display(df)
ライブラリが存在しない場合

もしもsklearnが存在しない場合は、事前に!pip3 install scikit-learnを実行しましょう。

また、requirements.txtを作成して、そこにscikit-learnを登録する方法でも可能です。

DataFrameのグラフを可視化する方法

DataFrameをDisplayした後に右上のVisualizeを押すか、以下のようにブロックから+ Block > ChartからDataFrameを可視化するブロックを出すことができます。

可視化用のブロックが出てきたら、DataFrameを選択することで、以下のように簡易的に可視化することができます。

変数の確認方法

Deepnoteでは、右下のエリアにおいて、変数を確認することができます。
VS CodeやPyCharmなどにもついていますが、これもDeepnoteの大変便利な機能の一つです。

スケジュール実行する方法

ノートブックをスケジュール実行することもできます。

Run notebookの右側の下矢印をクリックして、Schedule notebookをクリックすることで、スケジューリングができます。

下記のように、スケジューリングの詳細として、「スケジュール頻度 / 時間 / メール通知」を設定できます。

セルの共有方法

セルを選択した上で、右側の3番目のボタンを押します。

すると、以下のようにShare blockの設定ができるモーダルが表示されるため、コードを共有したい場合はCodeを、出力結果を共有したい場合は、Outputを選択します。

そして、URLかiframeによって共有ができるため、必要な方の情報をコピーします。

ここでは、実際の表示のされ方に関しては、下記をご参照ください。

Share block (URL)

https://embed.deepnote.com/46ab1796-3394-4cf6-b148-429d0e3dc513/56fbb18844364ee49b58ae890263b49b/3dbe2bd7b34f48ee9e5c2d6967dd1317?height=707

Embed block (iframe)

チームのメンバーを招待する方法

右上のShare & publish > Manage collaboratorsよりメンバーを招待することができます。

以下のような画面において、メンバーを招待したり、権限を付与したりすることができます。

ちなみに、設定できる権限の種類は以下の通りです。

Markdownの追加方法

他のNotebookと同様に以下のように+ Block > Markdownよりマークダウンを追加することができます。

データベースへの接続方法

Deepnoteでは、数多くのデータベースへシームレスに接続することができます。

右側のIntegrations > Create newよりたらしい連携先を登録しましょう。

現在(2022/09/06時点)では、以下のサービス(ClickHouse, Environment variables, Shared dataset, Google Drive, Amazon S3, Google Cloud Storage, PostgreSQL, Redshift, Amazon Athena, MongoDB, BigQuery, Snowflake, MySQL, SQL Server, MindsDB, Google Container Registry, Elastic Container Registry, Docker Hub, SSH Key)が利用可能です。

SQLクエリの実行方法

SQLクエリを実行したい場合、+ Block > SQLよりセルを追加しましょう。

そして、SQLのセル上で、デモ用のPostgresに接続し、実際にクエリを実行すると、以下のようにデータを取得することができます。そして、そのデータを特定のDataFrameに格納することもできます。以下の例では、df_1というDataFrameに格納しています。

SELECT user_id, plan FROM users

入力UIの追加方法

Deepnoteでは、さらに、入力UIを追加することができます。

以下のように、+ Block > Date inputなどのように任意のブロックを追加することができます。

例えば、Date inputを追加し、以下のようにtarget_dateに指定した場合、UIから入力された値をそれ以降のセルで使用することができます。

import datetime
print(f"diff: {datetime.datetime.today() - target_date}")

CSVをプレビューする方法

DeepnoteへアップロードしたCSVは簡易的にプレビューすることができます。

右側エリアのProject > Filesよりファイルをクリックすると、以下のように分布も併せて表示してくれます。

requirements.txtの設定方法

初期設定として、pipなどでライブラリをインストールしたい場合は、requirements.txtが有効です。

右側エリアのProject > Files > + > New Fileよりrequirements.txtを追加しましょう。

実は、初期設定としてinit.ipynbという以下のファイルが仕込まれているため、それ以外の設定は不要です。

環境の詳細設定(Python / Rのバージョン、GPU、Dockerfileの設定方法)

まず、右側エリアのProject > Environmentのトグルマークを押しましょう。

すると、以下のように「マシンや実行言語」を選択することができます。

ちなみに、選択可能な環境は以下の通りです(2022/09/06時点)。

  • Python (3.7, 3.8, 3.9, 3.10)
  • Anaconda (Python 3.8)
  • Local ./Dockerfile
  • R (3.5.2, 4.0, 4.2)
  • Tensorflow GPU (2.7.0, 2.9.1)

最後に

いかがだったでしょうか?

もしもこの記事を読んで、あなたのデータ分析環境の候補が一つ増えたら幸いです。

この他にも、Twitterにて「データサイエンティスト / エンジニアに役立つ情報を発信中」です。ご興味があれば、ぜひフォローお待ちしております。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA