在团队中共享 Jupyter 笔记本

数据挖掘 软件推荐
2021-10-12 23:14:44

我想设置一个服务器,它可以通过以下方式支持数据科学团队:成为存储、版本控制、共享和可能执行 Jupyter 笔记本的中心点。

一些所需的属性:

  1. 不同的用户可以访问服务器并打开和执行他们或其他团队成员存储的笔记本。这里有趣的问题是,如果用户 X 执行用户 Y 编写的笔记本中的单元格,会有什么行为。我猜笔记本不应该更改:
  2. 解决方案应该是自托管的。
  3. 笔记本应存储在服务器或 Google 驱动器或 owncloud 的自托管实例上。
  4. (奖励)笔记本将受 git 版本控制(git 可能是自托管的。不能绑定到 GitHub 或类似的东西)。

我调查了JupyterHubBinder对于前者,我不明白如何允许跨用户访问。后者似乎只支持 GitHub 作为 notebook 的存储。

您有使用这两种解决方案的经验吗?

4个回答

JupyterHub 不提供版本控制系统,也不促进笔记本的共享。您提到了自己对 Binder 的限制。

试试齐柏林飞艇0.7 版应该会在接下来的几天内发布。

  • 正如您从路线图中看到的那样,该版本提供了与协作完全相关的“企业”功能。
  • 集成了版本控制系统(git)。
  • 它是自托管的。

从本质上讲,我认为它满足您发布的所有要求。最重要的是,它提供了更丰富的可视化功能和大量其他功能(与 Shiro、Knox、Kerberos 一起使用 - 任何人都可以保护 Spark?)。

Airbnb 最近开源了他们内部的数据科学知识库:https ://github.com/airbnb/knowledge-repo

从它的自述文件来看,它似乎可以松散地适合您的用例:

知识库项目的重点是使用对这些专业有意义的数据格式和工具,促进数据科学家和其他技术角色之间的知识共享。它为“知识帖子”提供各种数据存储(以及管理它们的实用程序),特别关注笔记本(R Markdown 和 Jupyter / iPython Notebook),以更好地促进可重复的研究。

还有一篇博客文章评论了它的动机。

我发现——为数据科学家共享笔记本并不是一种理想的交流方式。他们中的许多人更喜欢像 Spider/RStudio 这样的 IDE,或者只是一个文本编辑器(我认识一些使用vi.

您可能只是通过源代码控制共享代码,通过云存储共享数据。它将增加灵活性。

我最近开源了一个工具,它将代码、数据以及数据和代码之间的依赖关系组合到一个环境中,并使您的数据科学项目可重现:DVC 或 dataversioncontrol.com(有教程)。

使用 DVC 工具,您可以通过 Git 共享您的项目,通过单个 DVC 命令将数据同步到 S3。如果您的某些数据科学家决定在项目的任何阶段更改代码,那么最终结果可以通过单个命令轻松复制dvc repro data/target_metrics.txt

我知道的唯一自托管解决方案是付费的 Anaconda Enterprise 云设置, https://anaconda.org/about我知道的其他解决方案不是自托管的!