使用笔记本

本指南将介绍与 Cloud Datalab 笔记本相关的各种任务。

源代码控制

当您第一次运行 datalab create <虚拟机实例名称> 时,系统会在项目中添加一个 datalab-notebooks Cloud Source Repositories 代码库(以下称为“云端远程代码库”)。之前在您的 Cloud Datalab 虚拟机实例内运行的 docker 容器中已创建了一个 /content/datalab/notebooks git 代码库(以下称为“Cloud Datalab 虚拟机代码库”),新添加的代码库正是此代码库的远程代码库。您可以从 Google Cloud Platform Console 代码库页面浏览该云端远程代码库。

您可以使用 gitungit 来管理 Cloud Datalab 虚拟机代码库中的笔记本。

在浏览器中使用 ungit

Cloud Datalab 容器包括 ungit,这是一个基于网页的 git 客户端,您可以通过它向 Cloud Datalab 虚拟机代码库提交内容,并在 Cloud Datalab 浏览器界面中将笔记本推送到云端远程代码库。

要在 Cloud Datalab /content/datalab/notebooks 代码库界面上打开 ungit,请选择 Google Cloud Datalab 菜单栏右上方的代码库图标。

一个浏览器窗口随即在 Cloud Datalab 虚拟机代码库上打开。

将笔记本添加到云端远程代码库。

  1. 导航到 Cloud Datalab 笔记本浏览器窗口中的 /datalab/notebooks 文件夹。

  2. 选择“+ 笔记本”图标,以从 /datalab/notebooks 文件夹打开一个新笔记本。

    1. 将一个或多个单元添加到笔记本中。
    2. 将笔记本重命名,只需点击菜单栏中的“未命名的笔记本”并将名称更改为“新笔记本”即可。
    3. 选择笔记本→保存和检查点 (Ctrl-s),或等待系统自动保存该笔记本。
  3. 返回到 Cloud Datalab 笔记本浏览器窗口,然后点击 ungit 图标以打开一个 ungit 浏览器页面(请参阅在浏览器中使用 ungit)。输入一个提交内容标题后,就可以将 New Notebook.ipynb 提交到 Cloud Datalab 虚拟机代码库中了。

  4. 提交笔记本后,从 ungit 浏览器页面中将笔记本推送到 datalab-notebooks 云端远程代码库。

通过命令行使用 git

除了通过 Cloud Datalab 界面使用 ungit 进行源代码控制以外(请参阅在浏览器中使用 ungit),您也可以通过 SSH 登录到 Cloud Datalab 虚拟机,并从虚拟机中运行的终端或从 Cloud Shell 运行 git。具体步骤如下所示:

  1. 使用 gcloud 命令行工具或 GCP Console 通过 SSH 登录到 Cloud Datalab 虚拟机:

    gcloud 命令

    输入 project-id、zone 和 instance-name,然后运行以下命令。
    gcloud compute --project project-id ssh 
    --zone zone instance-name

    Console/SHELL

    转到 GCP Console 的虚拟机实例部分,展开 Cloud Datalab 虚拟机行右侧的 SSH 菜单,然后选择查看 gcloud 命令
    此时将打开 gcloud 命令行窗口,其中显示了 gcloud SSH 命令,您可以复制并粘贴该命令以在本地终端中运行。
  2. 通过 SSH 登录到 Cloud Datalab 虚拟机之后,运行 sudo docker ps 命令以列出虚拟机中运行的 Cloud Datalab docker 映像的容器 ID。复制与 /datalab/run.sh 命令和 datalab_datalab-server 名称相关联的容器 ID。
    docker ps
    CONTAINER ID  ...    COMMAND   ...   ...   NAMES
    ...
    b228e3392374   ...   "/datalab/run.sh" ... datalab_datalab-server-...
    ...
    
  3. 使用上一步中的容器 ID 在该容器内打开一个交互式 Shell 会话。
    docker exec -it container-id bash
    ...
    root@datalab-server-vm-name:/#
    
  4. 切换到容器中的 /content/datalab/notebooks 目录。
    cd /content/datalab/notebooks
    
    这是 Cloud Datalab 虚拟机 git 代码库的根目录,您可以在该目录下发出各种 git 命令
    git status
    On branch master
    nothing to commit, working directory clean
    

从 Cloud Datalab 虚拟机复制笔记本

您可以使用 gcloud compute scp 命令从 Cloud Datalab 虚拟机实例复制文件。例如,如需将 Cloud Datalab 虚拟机 datalab/notebooks 目录的内容复制到本地机器上的 instance-name-notebooks 目录,请将 instance-name 替换为您的 Cloud Datalab 虚拟机名称,然后运行以下命令(如果 instance-name-notebooks 目录不存在,则系统将创建一个)。

gcloud compute scp --recurse \
  datalab@instance-name:/mnt/disks/datalab-pd/content/datalab/notebooks \
  instance-name-notebooks

Cloud Datalab 备份

Cloud Datalab 实例会定期将用户内容备份到用户的项目中的某个 Google Cloud Storage 存储分区,以防止当虚拟机磁盘发生故障或被删除时用户内容意外丢失。默认情况下,Cloud Datalab 实例会将用户的所有内容存储在一块附加的磁盘中,并且备份实用程序会针对该磁盘的根目录执行操作。备份作业每十分钟运行一次,它会为整个磁盘创建一个 zip 文件,并将其与上一次备份的 zip 文件进行比较。如果二者之间存在差异,并且在进行新的更改和上次备份之间已经过了足够长的时间,则备份作业将上传这个新的 zip 文件。Cloud Datalab 会将这些备份文件上传到 Google Cloud Storage。

Cloud Datalab 会保留最近的 10 个每小时备份、7 个每日备份和 20 个每周备份文件,并删除较早的备份文件以腾出存储空间。在使用 datalab create 命令创建 Cloud Datalab 实例时,传递 --no-backups 标志可以关闭备份功能。

每个备份文件均是使用虚拟机实例地区、实例名称、实例内的笔记本备份目录路径、时间戳以及一个用于注明是每小时、每日还是每周备份的标记进行命名的。默认情况下,Cloud Datalab 将尝试创建备份路径 $project_id.appspot.com/datalab_backups。如果无法创建此路径或用户权限不足,则系统将尝试创建路径 $project_id/datalab_backups。如果尝试又失败了,则将无法备份到 Google Cloud Storage。

恢复备份

要恢复备份,用户可以通过检查虚拟机地区、虚拟机名称、笔记本目录以及易于用户理解的时间戳,从 Google Cloud Storage 中选择备份文件。

示例备份文件路径:gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921 /tmp/backup0127.zip

此示例备份是之前为地区 us-central1-b 中的虚拟机 datalab0125 创建的,它包含了笔记本的 /content 目录下的所有内容。它是作为一个每日备份点于 01/27/2017 10:29:21 创建的。

您可以通过浏览器下载备份 zip 文件,也可以使用在安装 Google Cloud SDK 过程中安装的 gsutil 工具进行下载。

  • 如要使用浏览器,请导航至 Google Cloud Platform Console,然后从左侧导航边栏选择存储。浏览到 Cloud Datalab 备份存储分区,然后选择 zip 文件并将其下载到磁盘上。

  • 要使用 gsutil 下载备份文件,请运行 gsutil cp gs://backup_path destination_path。例如,要备份和解压缩上述示例 zip 文件,可输入以下命令:

    gsutil cp 
    gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921
    /tmp/backup0127.zip
    unzip -q /tmp/backup0127.zip -d /tmp/restore_location/

处理数据

Cloud Datalab 可以访问位于以下任何位置的数据:

  • Google Cloud Storage:您可以使用 datalab.storage API 以编程方式访问 Cloud Storage 中的文件和目录(请参阅 /datalab/docs/tutorials/Storage/Storage APIs.ipynb 笔记本教程)

  • BigQuery:您可以使用 SQL 和 datalab.bigquery API 查询表和视图(请参阅 datalab/docs/tutorials/BigQuery/BigQuery/BigQuery APIs.ipynb 笔记本教程)

  • 永久性磁盘上的本地文件系统:您可以在附加到 Cloud Datalab 虚拟机的永久性磁盘上的文件系统中创建文件,也可以将文件复制到该文件系统中。

如果您的数据位于其他位置(本地或其他云服务中),则您可以使用 gsutil 工具或 Cloud Storage Transfer Service 将这些数据转移到 Cloud Storage。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Datalab 文档