今回は Google Cloud SDK を使うことで CLI から Google Cloud Platform を操作してみる。
使った環境は次の通り。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.13.3 BuildVersion: 17D102
インストール
macOS であれば Google Cloud SDK は Homebrew Cask からインストールできる。
$ brew cask install google-cloud-sdk
初期設定
インストールが終わったら、最初に認証情報などを設定するために gcloud init
コマンドを実行する。
コマンドを実行すると Web ブラウザが開くはずなので、そこから GCP にログインする。
$ gcloud init
上記の初期化をする過程でプロジェクトの作成か既存からの選択を促されるはず。
後から実行するときは次のように gcloud projects create
コマンドで作成する。
$ gcloud projects create gcloud-cli-helloworld
GCP では、このように何かを始めるときに、まずはプロジェクトを作成することになる。
$ gcloud projects list PROJECT_ID NAME PROJECT_NUMBER gcloud-cli-helloworld gcloud-cli-helloworld XXXXXXXXXXXX
BigQuery を操作してみる
試しにプロジェクト内で BigQuery を使ってみることにしよう。 まずはデータセットを作成する。 これは RDBMS でいえばデータベースに相当する。
$ bq mk gcloud-cli-helloworld:example_bq
次の通りデータセットができた。
$ bq ls gcloud-cli-helloworld datasetId ------------ example_bq
続いてデータセット内にテーブルを作る。 これは RDBMS でもお馴染みの概念なので特に説明はいらなさそう。
$ bq mk gcloud-cli-helloworld:example_bq.users
これでテーブルができた。 RDBMS との違いは、この状態ではまだテーブルのスキーマが指定されていないこと。
$ bq show gcloud-cli-helloworld:example_bq.users Table gcloud-cli-helloworld:example_bq.users Last modified Schema Total Rows Total Bytes Expiration Time Partitioning Labels ----------------- -------- ------------ ------------- ------------ ------------------- -------- 10 Apr 17:57:46 0 0
スキーマや中身についてはこれから設定していく。
続いては、次のように JSON 形式でスキーマを用意しよう。
$ cat << 'EOF' > schema.json [ {"name": "name", "type": "string", "mode": "required"}, {"name": "age", "type": "integer", "mode": "required"} ] EOF
肝心の中身は次のように CSV で用意した。
$ cat << 'EOF' > users.csv Alice,20 Bob,25 Carol,30 EOF
あとは bq load
コマンドを使ってスキーマとデータをテーブルにアップロードする。
$ bq load --project_id gcloud-cli-helloworld example_bq.users users.csv schema.json
これでテーブルにスキーマとデータが入った。
$ bq show gcloud-cli-helloworld:example_bq.users Table gcloud-cli-helloworld:example_bq.users Last modified Schema Total Rows Total Bytes Expiration Time Partitioning Labels ----------------- ---------------------------- ------------ ------------- ------------ ------------------- -------- 10 Apr 18:04:05 |- name: string (required) 3 43 |- age: integer (required)
先程の操作で --project_id
の指定が毎回うっとおしいときは、次のようにデフォルトのプロジェクトに指定すると手っ取り早い。
$ gcloud config set project gcloud-cli-helloworld
あとは bq query
でテーブルに対してクエリを投げることができる。
$ bq query "SELECT * FROM example_bq.users" Waiting on bqjob_r72120da59a09c346_00000162aecd87d0_1 ... (0s) Current status: DONE +-------+-----+ | name | age | +-------+-----+ | Bob | 25 | | Alice | 20 | | Carol | 30 | +-------+-----+
ばっちり。

スマートPythonプログラミング: Pythonのより良い書き方を学ぶ
- 作者: もみじあめ
- 発売日: 2016/03/12
- メディア: Kindle版
- この商品を含むブログ (1件) を見る