LoginSignup
5
1

More than 5 years have passed since last update.

Cloud Datalabに大きなデータをアップロードする方法

Posted at

Cloud Datalab1は、ブラウザでpythonが実行できる便利な環境ですが、大きなデータをアップロードできない問題があります。
検証用の大きなデータをアップロードしようとしても無反応で、裏側で何が起きているのかわかりません。
アップロードする方法はいくつかあるようですが、今回は gcloud コマンドを使用する方法について。

前提

  • すでにローカルで動作する jupyter のプロジェクトがある
    → BigQueryやCloud Storageからデータを取得するコードに書き換えるのは手間……
  • DatalabのWebコンソールではアップロードできない大きなファイルがある

方法

gcloud コマンド の scp を使用し、Datalabインスタンスに直接投げます。
(これが良い方法かどうかは不明です、Datalabのドキュメントにはこのような方法は書いていなかった。気がする。)

アップロードするファイルの準備

ファイル単体であれば問題ありませんが、複数のファイルやディレクトリをアップロードする場合は、事前にtarなどでアーカイブを作成しておくと良いです。

gcloud コマンドの設定

まずは、Datalabを使用しているプロジェクトにスイッチします。

gcloud projects list
gcloud config set core/project プロジェクトID

アップロードと展開

Datalabのディレクトリは、インスタンスにマウントされていて、直接scpではアップロードできないようです。
そのため、一旦、自分のディレクトリにアップロードした後、インスタンス内で移動させます。

gcloud compute scp --zone [zone_name] ~/my_local_directory/data.tar my_account@instance_name:/home/my_account

コマンドラインか、ブラウザのコンソールからインスタンスに入ります。

gcloud compute --project "project_name" ssh --zone "zone_name" "instance_name"

移動して展開します。移動先が大事です。
Datalabのデータはどうやら、/mnt/disks/datalab-pd/content/datalab/にマウントされているようです。

cd ~
sudo mv data.tar /mnt/disks/datalab-pd/content/datalab/
cd /mnt/disks/datalab-pd/content/datalab/
sudo tar xzvf data.tar

以上!あってるのかわからないけど、これでできました。



  1. Datalabは、GCPで提供されている クラウド jupyter 環境。pythonのインタラクティブな実行が、ブラウザで、しかもクラウドで出来るのが特徴で、GCPの各サービスとの連携も良い感じらしいです。 

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1