Trabaja con notebooks

En esta guía, se explican las diferentes tareas asociadas con los notebooks de Cloud Datalab.

Control de la fuente

Cuando ejecutas datalab create VM-instance-name por primera vez, se agrega un datalab-notebooks de Cloud Source Repository al proyecto (llamado “Cloud Remote Repo” en el resto del documento). Este es un repositorio remoto para el repositorio de Git /content/datalab/notebooks que se crea en el contenedor de Docker que se ejecuta en la instancia de VM de Cloud Datalab (llamado “Cloud Datalab VM Repo” en el resto del documento). Puedes explorar cloud remote repo desde la página Repositories (Repositorios) de Google Cloud Console.

Puedes usar git o ungit para administrar los notebooks en Cloud Datalab VM Repo.

Usa ungit en un navegador

El contenedor de Cloud Datalab incluye ungit, un cliente de Git basado en la Web que te permite confirmar elementos en Cloud Datalab VM Repo y enviar notebooks a Cloud Remote Repo desde la IU del navegador de Cloud Datalab.

Para abrir ungit en el repositorio /content/datalab/notebooks de Cloud Datalab, selecciona el ícono de repositorio en la sección superior derecha de la barra de menú de Google Cloud Datalab.

Se abrirá una ventana del navegador en Cloud Datalab VM Repo.

Agrega un notebook a Cloud Remote Repo

  1. Navega hasta la carpeta /datalab/notebooks en la ventana del navegador del notebook de Cloud Datalab.

  2. Abre un notebook nuevo desde la carpeta /datalab/notebooks. Para ello, selecciona el ícono “+ Notebook”.

    1. Agrega una o más celdas al notebook.
    2. Haz clic en “Untitled Notebook” (Notebook sin nombre) en la barra de menú y cambia el nombre a “New Notebook” (Notebook nuevo).
    3. Selecciona Notebook → Save and Checkpoint (Notebook → Guardar y crear punto de control) (Ctrl + S) o espera hasta que el notebook se guarde de forma automática.
  3. Regresa a la ventana del navegador del notebook de Cloud Datalab y haz clic en el ícono de ungit para abrir una página del navegador (consulta Usa ungit en el navegador). Después de proporcionar un título de confirmación, New Notebook.ipynb estará listo para confirmarse en Cloud Datalab VM Repo.

  4. Después de confirmar el notebook, envíalo al datalab-notebooks de Cloud Remote Repo desde la página del navegador de ungit.

Usa git desde la línea de comandos

En lugar de usar ungit desde la IU de Cloud Datalab para el control de la fuente (consulta Usa ungit en el navegador), puedes conectarte mediante SSH a la VM de Cloud Datalab y ejecutar git desde una terminal que se ejecute en la VM o desde Cloud Shell. A continuación, se indican los pasos que debes seguir:

  1. Conéctate a la VM de Cloud Datalab mediante SSH a través de la herramienta de línea de comandos gcloud o Cloud Console:

    Comando de gcloud

    Después de insertar project-id, instance-name y zone, ejecuta el siguiente comando:
    gcloud compute --project project-id ssh 
    --zone zone instance-name

    Console/SHELL

    Ve a la sección Instancias de VM de Cloud Console, expande el menú SSH a la derecha de la fila VM de Cloud Datalab y, luego, selecciona View gcloud command (Ver comando de gcloud).
    Se abrirá la ventana gcloud command line (Línea de comandos de gcloud), en la que aparecerá el comando SSH de gcloud que puedes copiar y pegar para realizar la ejecución en una terminal local.
  2. Después de establecer una conexión mediante SSH con la VM de Cloud Datalab, ejecuta el comando sudo docker ps para enumerar el ID del contenedor de la imagen de Docker de Cloud Datalab que se ejecuta en la VM. Copia el ID del contenedor asociado con el comando /datalab/run.sh y el nombre datalab_datalab-server.
    docker ps
    CONTAINER ID  ...    COMMAND   ...   ...   NAMES
    ...
    b228e3392374   ...   "/datalab/run.sh" ... datalab_datalab-server-...
    ...
    
  3. Usa el ID del contenedor del paso anterior para abrir una sesión interactiva de shell dentro del contenedor.
    docker exec -it container-id bash
    ...
    root@datalab-server-vm-name:/#
    
  4. Cambia al directorio /content/datalab/notebooks en el contenedor.
    cd /content/datalab/notebooks
    
    Este es el directorio raíz de Cloud Datalab VM Repo git, desde el que puedes emitir comandos de Git.
    git status
    On branch master
    nothing to commit, working directory clean
    

Copia notebooks desde la VM de Cloud Datalab

Mediante el comando gcloud compute scp, puedes copiar archivos desde la instancia de VM de Cloud Datalab. Por ejemplo, para copiar el contenido del directorio datalab/notebooks de la VM de Cloud Datalab a un directorio instance-name-notebooks en tu máquina local, ejecuta el siguiente comando después de reemplazar instance-name por el nombre de la VM de Cloud Datalab (se creará el directorio instance-name-notebooks si no existe).

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

Copias de seguridad de Cloud Datalab

Para prevenir la pérdida accidental del contenido de los usuarios si se produce una falla o la eliminación de un disco de la VM, las instancias de Cloud Datalab crean copias de seguridad de este contenido de forma periódica en un depósito de Google Cloud Storage. Según la configuración predeterminada, las instancias de Cloud Datalab almacenan todo el contenido de los usuarios en los discos conectados, y la utilidad de copias de seguridad funciona en la raíz de estos discos. Los trabajos de copia de seguridad se ejecutan cada diez minutos, se crea un archivo ZIP del disco completo, se lo compara con la copia de seguridad más reciente y se sube el archivo si se encuentran diferencias entre ambos y si ha transcurrido tiempo suficiente entre la aplicación de los cambios nuevos y la última copia de seguridad. Cloud Datalab sube los archivos de copia de seguridad a Google Cloud Storage.

Cloud Datalab retiene las 10 últimas copias de seguridad por hora, 7 copias diarias y 20 copias semanales; además, borra los archivos de copia de seguridad más antiguos para conservar espacio. Las copias de seguridad se pueden inhabilitar; para ello, pasa la marca --no-backups cuando se crea una instancia de Cloud Datalab con el comando datalab create.

Los nombres de los archivos de copia de seguridad se generan con la zona de la instancia de VM, el nombre de la instancia, la ruta de acceso del directorio de la copia de seguridad del notebook dentro de la instancia, la marca de tiempo y una etiqueta, que puede ser por hora, diaria o semanal. De forma predeterminada, Cloud Datalab intentará crear la ruta de acceso de la copia de seguridad $project_id.appspot.com/datalab_backups. Si no se puede crear esta ruta o el usuario no tiene permisos suficientes, se intenta crear una ruta de acceso $project_id/datalab_backups. Si falla este intento, no se podrán realizar copias de seguridad en Google Cloud Storage.

Restablecer las copias de seguridad

Para restablecer una copia de seguridad, el usuario debe examinar la zona y el nombre de la VM, el directorio del notebook y la marca de tiempo legible para seleccionar el archivo de copia de seguridad de Google Cloud Storage.

Ruta de acceso al archivo de copia de seguridad de muestra: gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921 /tmp/backup0127.zip

Esta copia de seguridad de muestra se creó para la VM datalab0125 en la zona us-central1-b y contiene todo el contenido del directorio /content del notebook. Se creó como un punto de copia de seguridad diario en la fecha 01/27/2017 a las 10:29:21.

Se puede descargar un archivo ZIP de copia de seguridad desde el navegador o con la herramienta de gsutil, que se incluye en la instalación del SDK de Google Cloud.

  • Para usar el navegador, navega a Google Cloud Console y, luego, selecciona Almacenamiento en la barra lateral de navegación izquierda. Navega hasta el depósito de la copia de seguridad de Cloud Datalab y, luego, selecciona y descarga el archivo ZIP en el disco.

  • Para usar gsutil y descargar el archivo de copia de seguridad, ejecuta gsutil cp gs://backup_path destination_path. Por ejemplo, para crear una copia de seguridad y extraer el archivo ZIP de ejemplo que se mencionó con anterioridad, haz lo siguiente:

    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/

Trabajar con datos

Cloud Datalab puede acceder a los datos almacenados en cualquiera de los siguientes lugares:

  • Google Cloud Storage: Se puede acceder a los archivos y directorios de Cloud Storage de manera programática mediante las API de datalab.storage (consulta el instructivo de notebook de /datalab/docs/tutorials/Storage/Storage APIs.ipynb).

  • BigQuery: Las tablas y vistas se pueden consultar mediante SQL y las API de datalab.bigquery (consulta el instructivo de notebook de datalab/docs/tutorials/BigQuery/BigQuery/BigQuery APIs.ipynb).

  • Sistema de archivos local en el disco persistente: Puedes crear o copiar archivos en el sistema de archivos del disco persistente conectado a la VM de Cloud Datalab.

Si los datos están en otra ubicación, de forma local o en otra nube, puedes transferirlos a Cloud Storage mediante la herramienta de gsutil o el servicio de transferencia de Cloud Storage.