ノートブックの操作

このガイドでは、Cloud Datalab ノートブックに関連するさまざまなタスクについて説明します。

ソース管理

datalab create VM-instance-name を初めて実行すると、プロジェクトに datalab-notebooks Cloud Source Repositories(以下「クラウド リモート リポジトリ」と呼びます)が追加されます。これは、Cloud Datalab VM インスタンスで実行されている Docker コンテナに作成された /content/datalab/notebooks git リポジトリ(以下、「Cloud Datalab VM リポジトリ」と称します)のリモート リポジトリです。Google Cloud Console のリポジトリ ページからクラウド リモート リポジトリを参照できます。

git または ungit を使用して、Cloud Datalab VM リポジトリでノートブックを管理できます。

ブラウザで ungit を使用する

Cloud Datalab コンテナには、ウェブベースの git クライアントである ungit が含まれています。このクライアントを使用すると、Cloud Datalab ブラウザ UI から Cloud Datalab VM リポジトリを commit し、ノードブックをクラウド リモート リポジトリに push できます。

Cloud Datalab /content/datalab/notebooks リポジトリで ungit を開くには、Google Cloud Datalab メニューバーの右上にあるリポジトリのアイコンを選択します。

Cloud Datalab VM リポジトリがブラウザ ウィンドウに表示されます。

ノートブックをクラウド リモート リポジトリに追加する。

  1. Cloud Datalab ノートブックのブラウザ ウィンドウで /datalab/notebooks フォルダに移動します。

  2. [+ Notebook] アイコンを選択して、/datalab/notebooks フォルダから新しいノートブックを開きます。

    1. ノートブックに 1 つ以上のセルを追加します。
    2. メニューバーの [Untitled Notebook] をクリックして、ノートブックの名前を「New Notebook」に変更します。
    3. [Notebook] → [Save and Checkpoint](Ctrl+s)の順に選択するか、ノートブックが自動保存されるまで待機します。
  3. Cloud Datalab ノートブックのブラウザ ウィンドウに戻り、ungit のアイコンをクリックして ungit ブラウザページを開きます(ブラウザで ungit を使用するをご覧ください)。commit タイトルを入力すると、New Notebook.ipynb を Cloud Datalab VM リポジトリに commit できます。

  4. ノートブックを commit したら、ungit のブラウザページから datalab-notebooks クラウド リモート リポジトリにノートブックを push します。

コマンドラインから git を使用する

ソース管理用に Cloud Datalab UI から ungit を使用する(ブラウザで ungit を使用するを参照)方法の代わりに、Cloud Datalab VM に SSH 接続し、VM または Cloud Shell のターミナルから git を実行できます。手順は次のとおりです。

  1. gcloud コマンドライン ツールまたは Cloud Console を使用して、Cloud Datalab VM に SSH 接続します。

    gcloud コマンド

    project-idzoneinstance-nameを指定して、次のコマンドを実行します。
    gcloud compute --project project-id ssh 
    --zone zone instance-name

    コンソール/Shell

    Cloud Console の [VM インスタンス] セクションに移動し、Cloud Datalab VM 行の右側にある [SSH] メニューを展開して、[gcloud コマンドの表示] を選択します。
    gcloud コマンドライン ウィンドウが開き、gcloud SSH コマンドが表示されます。このコマンドをコピーして、ローカル ターミナルに貼り付けます。
  2. Cloud Datalab VM に SSH 接続した後、sudo docker ps コマンドを実行して、VM で実行されている 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 を使用してコンテナ内の対話型シェル セッションを開きます。
    docker exec -it container-id bash
    ...
    root@datalab-server-vm-name:/#
    
  4. コンテナの /content/datalab/notebooks ディレクトリに移動します。
    cd /content/datalab/notebooks
    
    これは Cloud Datalab VM git リポジトリのルート ディレクトリで、ここから git コマンドを実行できます。
    git status
    On branch master
    nothing to commit, working directory clean
    

Cloud Datalab VM からノートブックをコピーする

Cloud Datalab VM インスタンスからファイルをコピーするには、gcloud compute scp コマンドを使用します。たとえば、Cloud Datalab VM の datalab/notebooks ディレクトリの内容をローカルマシンの instance-name-notebooks ディレクトリにコピーするには、instance-name を実際の Cloud Datalab VM の名前に置き換えて次のコマンドを実行します(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 バケットにユーザーのコンテンツを定期的にバックアップし、VM ディスクに障害が発生するか、VM ディスクが削除された際に、ユーザー コンテンツが偶発的に消失するのを防ぎます。デフォルトでは、Cloud Datalab インスタンスがユーザーのすべてのコンテンツを接続ディスクに格納し、バックアップ ユーティリティはこのディスクのルート上で動作します。バックアップ ジョブは 10 分ごとに実行され、ディスク全体の zip ファイルが作成されます。その後、そのファイルが前回のバックアップ zip ファイルと比較され、2 つのファイルに違いがあり、新たな変更と前回のファイルとの間に十分な時間が経過している場合は、新たに作成された zip がアップロードされます。Cloud Datalab は、バックアップ ファイルを Google Cloud Storage にアップロードします。

Cloud Datalab は、1 時間ごとのバックアップを過去 10 回分、1 日ごとのバックアップを 7 回分、1 週間ごとのバックアップを 20 回分保持し、古いバックアップ ファイルを削除して、スペースを確保します。バックアップは、datalab create コマンドで Cloud Datalab インスタンスを作成するときに --no-backups フラグを渡すことでオフにできます。

各バックアップ ファイルの名前は、VM インスタンス ゾーン、インスタンス名、インスタンス内のノートブック バックアップ ディレクトリ パス、タイムスタンプ、さらに時間、日、週のいずれかのタグを使用して命名されます。デフォルトでは、Cloud Datalab はバックアップ パス $project_id.appspot.com/datalab_backups を作成しようとします。このパスを作成できない場合、またはユーザーに十分な権限がない場合は、$project_id/datalab_backups パスを作成しようとします。それが失敗すると、Google Cloud Storage へのバックアップは失敗します。

バックアップを復元する

バックアップを復元するには、VM ゾーン、VM 名、ノートブック ディレクトリ、人間が判読可能なタイムスタンプを調べ、Google Cloud Storage からバックアップ ファイルを選択します。

バックアップ ファイルのパスの例: gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921 /tmp/backup0127.zip

このバックアップの例は、ゾーン us-central1-b の VM datalab0125 用に作成され、ノートブックの /content ディレクトリ下のすべてのコンテンツを含んでいます。これは、01/27/201710:29:21 に日次バックアップ ポイントとして作成されました。

バックアップ zip ファイルは、ブラウザまたは Google Cloud SDK インストールの一部としてインストールされている gsutil ツールを使用してダウンロードできます。

  • ブラウザを使用するには、Google Cloud Consoleに移動し、左側のナビゲーション サイドバーから [Storage] を選択します。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 VM に接続された永続ディスク上のファイル システムにファイルを作成またはコピーできます。

データが別の場所(オンプレミスや別のクラウド上)にある場合は、gsutil ツールまたは Cloud Storage Transfer Service を使用して Cloud Storage にデータを転送できます。