1

我是谷歌 Datalab 的新用户。我正在评估将 Datalab 用于生产数据管道的可能性。这意味着我希望能够将我的数据处理作为 python 程序运行,而不是作为交互式笔记本。Datalab 似乎是为交互式 jupyter notebook 使用而设计的。但我记得在注册过程中看到一个屏幕说用户可以运行他们的整个数据管道。但是所有文档都只谈到交互式数据分析,没有提到程序化数据分析。我还想定期在 cron 作业中运行脚本。所以我正在寻找两件事:1)如何在 Datalab 上运行 python 脚本?2)如何在 cronjob 中定期运行它?

如果有人能提供一些启示,那将非常有帮助。提前致谢!

4

2 回答 2

1

并不是因为某件事(技术上)可能成为一个好主意。

正如@Anthonios 提到的:

无法通过支持的方法使用额外的 python 模块自定义 datalab。 

您可以通过结合其他(谷歌)云“构建块”轻松实现您的要求。

示例 1,对于流式数据:

  • PubSub > DataFlow[1] > 云存储或 BigQuery > DataLab[2]

示例2,预定批处理:

  • 启动 Docker 容器(计划)> 容器运行您的处理脚本并在完成后停止 > 云存储、云 SQL 或 BigTable > DataLab[2]

绘制云架构时没有单一的解决方案,这完全取决于您的用例。

但是您当前的架构(尽管可能)似乎在滥用 DataLab ...除非您有一个非常强大的论据来这样做...


  1. 制作中的 Python API

  2. 仅当最终用户需要执行交互式数据分析时才需要 DataLab。

于 2016-03-11T07:51:11.373 回答
0

正如此stackoverflow 帖子中所回答的,无法通过受支持的方法使用额外的 python 模块自定义 datalab。我的建议是将 python 脚本/cron 作业安装在 datalab 之外的另一个系统中,就像使用任何要运行的与 datalab 无关的 python 脚本一样。

真的很长边注: 如果您必须在 datalab 容器中运行程序,因为您想使用 datalab 特定的 gcp 库,那么我建议以下不受支持(但有创意)的设置对我有用。但是,它涉及运行本地数据实验室容器以及云数据实验室容器。

  1. 本地安装datalab
  2. 将以下内容附加到文件Dockerfile.in文件中

$REPO_DIR/containers/datalab/Dockerfile.in

# Add a custom script which calls a custom program (python file)
ADD mycustomprogram.sh /usr/local/bin/mycustomprogram.sh

# Allow the script to be executed
RUN chmod +x /usr/local/bin/mycustomprogram.sh
  1. 修改ENTRYPOINT变量 in$REPO_DIR/containers/datalab/run.sh以指向您的自定义脚本

现在,您在 datalab 本地容器中运行了一个自定义脚本。

通过本地设置,您仍然可以使用主机上的任何 git 客户端提交到同一个 Google 托管的 git 存储库。gcloud 有一个简单的提示,它将指导您完成克隆 Google 托管的 git 存储库的过程。

简单地运行gcloud init

登录后,您应该会看到以下提示,询问您是否要使用 Google 托管的存储库:

Do you want to use Google's source hosting (Y/n)?

重要提示:这只是在我们等待其他数据实验室自定义选项时临时解决的问题。我更喜欢编辑云 Dockerfile.in 文件,而不是部署本地数据实验室实例,以安装自定义 python 程序。

于 2016-03-10T14:23:58.927 回答