このガイドでは、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 リポジトリがブラウザ ウィンドウに表示されます。

ノートブックをクラウド リモート リポジトリに追加する。
Cloud Datalab ノートブックのブラウザ ウィンドウで
/datalab/notebooks
フォルダに移動します。[+ Notebook] アイコンを選択して、
/datalab/notebooks
フォルダから新しいノートブックを開きます。- ノートブックに 1 つ以上のセルを追加します。
- メニューバーの [Untitled Notebook] をクリックして、ノートブックの名前を「New Notebook」に変更します。
- [Notebook] → [Save and Checkpoint](Ctrl+s)の順に選択するか、ノートブックが自動保存されるまで待機します。
Cloud Datalab ノートブックのブラウザ ウィンドウに戻り、ungit のアイコンをクリックして ungit ブラウザページを開きます(ブラウザで ungit を使用するをご覧ください)。commit タイトルを入力すると、
New Notebook.ipynb
を Cloud Datalab VM リポジトリに commit できます。ノートブックを commit したら、ungit のブラウザページから
datalab-notebooks
クラウド リモート リポジトリにノートブックを push します。
コマンドラインから git を使用する
ソース管理用に Cloud Datalab UI から ungit を使用する(ブラウザで ungit を使用するを参照)方法の代わりに、Cloud Datalab VM に SSH 接続し、VM または Cloud Shell のターミナルから git を実行できます。手順は次のとおりです。
gcloud
コマンドライン ツールまたは Cloud Console を使用して、Cloud Datalab VM に SSH 接続します。gcloud コマンド
project-id、zone、instance-nameを指定して、次のコマンドを実行します。gcloud compute --project project-id ssh
--zone zone instance-nameコンソール/Shell
Cloud Console の [VM インスタンス] セクションに移動し、Cloud Datalab VM 行の右側にある [SSH] メニューを展開して、[gcloud コマンドの表示] を選択します。- 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-... ...
- 直前の手順のコンテナ ID を使用してコンテナ内の対話型シェル セッションを開きます。
docker exec -it container-id bash ... root@datalab-server-vm-name:/#
- コンテナの
/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/2017
の 10: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.zipunzip -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 にデータを転送できます。