Como trabalhar com notebooks

Veja neste guia as diferentes tarefas associadas aos notebooks do Cloud Datalab.

Controle de origem

Quando o datalab create VM-instance-name é executado pela primeira vez, ele adiciona um datalab-notebooks Cloud Source Repository ao projeto (mencionado a seguir como "repositório remoto do Google Cloud"). Este é um repositório remoto para o repositório do git /content/datalab/notebooks criado no contêiner do Docker em execução na instância da VM do Cloud Datalab (mencionado a seguir como "repositório da VM do Cloud Datalab"). Você pode navegar pelo repositório remoto na nuvem a partir da página Repositórios do Console do Google Cloud.

É possível utilizar git ou ungit para gerenciar os notebooks no repositório da VM do Cloud Datalab.

Como utilizar o ungit no navegador

O contêiner do Cloud Datalab inclui o ungit, um cliente git com base na Web que permite confirmar operações no repositório de VM do Cloud Datalab e enviar notebooks ao repositório remoto do Cloud a partir da IU do navegador do Cloud Datalab.

Para abrir o ungit no repositório /content/datalab/notebooks do Cloud Datalab, selecione o ícone do repositório na seção superior direita da barra de menu do Google Cloud Datalab.

Uma janela do navegador é aberta no repositório de VM do Cloud Datalab.

Como adicionar um notebook ao repositório remoto do Cloud

  1. Navegue até a pasta /datalab/notebooks na janela do navegador do notebook do Cloud Datalab.

  2. Abra um novo notebook na pasta /datalab/notebooks selecionando o ícone "+ Notebook".

    1. Adicione uma ou mais células ao notebook.
    2. Renomeie-o clicando em "Notebook sem título" na barra de menus e alterando o nome para "Novo notebook".
    3. Selecione Notebook → Salvar e criar checkpoint (Ctrl-s) ou aguarde o salvamento automático do notebook.
  3. Retorne à janela do navegador do notebook do Cloud Datalab e clique no ícone do ungit para abrir uma página de navegador para ele (consulte Como usar o ungit no navegador). Depois de fornecer um título de confirmação, New Notebook.ipynb estará pronto para ser confirmado no repositório da VM do Cloud Datalab.

  4. Depois de confirmar o notebook, envie-o para o datalab-notebooks repositório remoto do Cloud a partir da página do navegador do ungit.

Como usar o git a partir da linha de comando

Em vez de usar o ungit na IU do Cloud Datalab para o controle de origem (consulte Como usar o ungit no navegador), é possível usar o SSH na VM do Cloud Datalab e o git a partir de um terminal em execução na VM ou no Cloud Shell. Estas são as etapas:

  1. SSH para a VM do Cloud Datalab usando a ferramenta de linha de comando gcloud ou o Console do Cloud:

    Comando gcloud

    Execute o seguinte comando depois de inserir project-id, zone e instance-name.
    gcloud compute --project project-id ssh 
    --zone zone instance-name

    Console/SHELL

    Acesse a seção Instâncias de VMs do Console do Cloud, expanda o menu SSH à direita da linha da VM do Cloud Datalab e selecione Visualizar comando gcloud.
    A janela da linha de comando gcloud é aberta, exibindo o comando gcloud SSH que pode ser copiado e colado para execução em um terminal local.
  2. Após se conectar por SSH na VM do Cloud Datalab, execute o comando sudo docker ps para listar o ID do contêiner da imagem docker do Cloud Datalab em execução na VM. Copie o código do contêiner associado ao comando /datalab/run.sh e ao nome do datalab_datalab-server.
    docker ps
    CONTAINER ID  ...    COMMAND   ...   ...   NAMES
    ...
    b228e3392374   ...   "/datalab/run.sh" ... datalab_datalab-server-...
    ...
    
  3. Abra uma sessão de shell interativa dentro do contêiner utilizando o código da etapa anterior.
    docker exec -it container-id bash
    ...
    root@datalab-server-vm-name:/#
    
  4. Altere para o diretório /content/datalab/notebooks no contêiner.
    cd /content/datalab/notebooks
    
    Este é o diretório do repositório git da VM do Cloud Datalab do qual podem ser enviados comandos do git.
    git status
    On branch master
    nothing to commit, working directory clean
    

Como copiar notebooks da VM do Cloud Datalab

É possível copiar arquivos da instância de VM do Cloud Datalab usando o comando gcloud compute scp. Por exemplo, para copiar o conteúdo do diretório datalab/notebooks da VM do Cloud Datalab para um diretório instance-name-notebooks na máquina local, execute o comando a seguir depois de substituir instance-name com o nome da VM do Cloud Datalab (o diretório de diretório instance-name-notebooks será criado caso ainda não exista).

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

Backup do Cloud Datalab

Para evitar a perda acidental de conteúdo do usuário em caso de erro ou exclusão do disco da VM, as instâncias do Cloud Datalab realizam backups periódicos desse conteúdo para um repositório do Google Cloud Storage, no projeto do usuário. Por padrão, uma instância do Cloud Datalab armazena todo o conteúdo do usuário em um disco conectado e o utilitário de backup é executado na raiz do disco. A tarefa de backup é executada a cada dez minutos. Ela cria um arquivo ZIP do disco completo e o compara ao último arquivo de backup, carregando o novo ZIP caso haja diferença entre os dois e tempo suficiente tenha decorrido entre as novas alterações e o último backup. O Cloud Datalab faz o upload dos arquivos de backup para o Google Cloud Storage.

O Cloud Datalab guarda os últimos 10 arquivos de backups de hora, 7 de dia e 20 de semana, excluindo os mais antigos para preservar espaço. É possível desativar os backups transmitindo a sinalização --no-backups ao criar uma instância do Cloud Datalab com o comando datalab create.

Os arquivos de backup são nomeados usando a zona e o nome da instância da VM, o caminho do diretório do notebook dentro da instância, o carimbo de data/hora e uma tag de hora, dia ou semana. Por padrão, o Cloud Datalab tentará criar o caminho de backup $project_id.appspot.com/datalab_backups. Se não for possível criar esse caminho ou se o usuário não tiver as permissões necessárias, será feita uma tentativa de criação de um caminho $project_id/datalab_backups. Se a tentativa falhar, os backups não serão armazenados no Google Cloud Storage.

Restauração de backups

Para restaurar um backup, o usuário seleciona o arquivo no Google Cloud Storage examinando a zona e o nome da VM, o diretório do notebook e o carimbo de data/hora legível.

Caminho do arquivo de backup de amostra: gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921 /tmp/backup0127.zip

Este backup de amostra foi criado para a VM datalab0125 na zona us-central1-b e contém todo o conteúdo no diretório /content do notebook. Ele foi criado como um ponto de backup diário em 01/27/2017 às 10:29:21.

O arquivo ZIP de backup pode ser baixado do navegador ou utilizando a ferramenta gsutil, instalada como parte do SDK do Google Cloud.

  • Para usar o navegador, acesse o Console do Google Cloud e selecione Armazenamento na barra lateral de navegação à esquerda. Procure o bucket de backup do Cloud Datalab, selecione e faça o download do arquivo ZIP para o disco.

  • Para usar gsutil para fazer o download do arquivo de backup, execute gsutil cp gs://backup_path destination_path. Para realizar o backup e descompactar o arquivo ZIP de amostra mencionado acima:

    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/

Como trabalhar com dados

O Cloud Datalab pode acessar dados nos seguintes locais:

  • Google Cloud Storage: arquivos e diretórios no Cloud Storage podem ser acessados de forma programática usando as APIs datalab.storage (consulte o tutorial do notebook /datalab/docs/tutorials/Storage/Storage APIs.ipynb)

  • BigQuery: tabelas e visualizações podem ser consultadas usando SQL e APIs datalab.bigquery (consulte o tutorial do notebook datalab/docs/tutorials/BigQuery/BigQuery/BigQuery APIs.ipynb)

  • Sistema de arquivo local no disco permanente: crie ou copie arquivos para o sistema de arquivo no disco permanente ligado à sua VM do Cloud Datalab.

Se os dados estiverem em outro local, como em uma instalação física ou em outra nuvem, será possível transferi-los para o Cloud Storage usando a ferramenta gsutil ou o Serviço de transferência do Cloud Storage.