つぶやきテック

日々のつぶやきアウトプット

つぶやきRenku

データプロビナンスとRenku

  • 個々のデータだけでなく、それぞれのデータの「あいだ」、つまりどのような加⼯を経てそのデータとなったかも含めて管理することをデータプロビナンスと呼びます。
  • データの流れも管理することで、たとえばコンピュータを用いた学問研究時に、どんなデータが、どんなコードを通して、どんな結果になったか振り返ることが容易になります。

データが誰によって取得され,そのデータが誰によってどのように加工され,その加工されたデータがさらに,別の研究者によって利用されてゆくという一連のプロセスをすべてきっちりと管理するフレームワークの構築が不可欠である。このエコサイクルが回ることによりデータを取得した研究者にデータを提供する大きなインセンティブが生まれ研究のスピードが大きく加速されるものと考える。データベースの研究分野ではこれらの仕組みをプロビナンスと呼び,誤った結果が得られた場合,どの段階でエラーが混入したかを素早く捕捉することを可能とすることの有用性が明らかにされつつある。

(https://www.jstage.jst.go.jp/article/johokanri/55/10/55_705/_pdf)

  • このデータプロビナンスのためのプラットフォーム、ツールとして使えるもののひとつにRenkuがあります。

Renku

プロジェクトの作成

  • https://renkulab.io/ にアクセスし、ログインします。初回アクセス時はサインアップが必要ですが、GitHubアカウントでの登録もできます。
  • "create new project" のリンクから、プロジェクト名の入力、テンプレートの選択をして作成します。

JupyterLab notebookサーバの新規作成・接続

  • Enviromentタブを押下し、遷移した画面で"New"タブをクリックします。
  • ブランチ名、メモリ、CPU数を選択して作成します。
  • 作成が終わると、Runningタブから当該サーバに接続できます。

データセットの追加

RenkuではDOIs(Digital Object Identifier system)と呼ばれる、データマネジメントシステムから、一意なデータIDを指定してインポートできます。

JupyterLabの"Terminal"を選択し、以下のコマンドを実行することでデータセットがダウンロードできます。

$ renku dataset import --name flight-data 10.7910/DVN/WTZS4K

Output:

CHECKSUM    NAME                       SIZE (MB)  TYPE

----------  -----------------------  -----------  ---------------

            2019-01-flights.csv.zip       7.9301  application/zip

Do you wish to download this version? [y/N]: y

OK

追加済みデータセットの取得

$ renku dataset ls
ID                                    NAME         TITLE               VERSION
------------------------------------  -----------  ------------------  ---------
72f6aab5-7cd2-414d-846f-0f239fb3c571  flight-data  2019-01 US Flights  1.0

gitとの関係

renkuによるデータセットの追加等の操作は、gitのログとして残っています。

$ git log
commit 88f6826... (HEAD -> master)
Author: John Doe <john.doe@example.com>
Date:   Sun May 16 23:43:18 2021 +0000

    renku dataset import --name flight-data 10.7910/DVN/WTZS4K

commit 3af7657...
Author: John Doe <john.doe@example.com>
Date:   Sun May 16 23:43:18 2021 +0000

    renku dataset: committing 1 newly added files

commit 991d350... (origin/master)
Author: John Doe <john.doe@example.com>
Date:   Sun May 16 23:11:41 2021 +0000

    service: renku init -n "sample_renku" -s "https://github.com/SwissDataScienceCenter/renku-project...

JupyterLabからgitコマンドでpushを実行すると、renkulab.io に作成したRenkuプロジェクトにpushされます。

参考