Go
golang
bigquery

Go言語からBigQueryのAPIを使う

More than 3 years have passed since last update.

[追記] JWTまわりのAPIが変わったようなので、以下のサンプルそのままだと動かない可能性あり

Googleの提供するライブラリをimportする。


go

import (

bigquery "code.google.com/p/google-api-go-client/bigquery/v2"
"code.google.com/p/goauth2/oauth/jwt"
)

アクセスに必要なトークンを準備する。


go

iss := "yourname@developer.gserviceaccount.com"

scope := bigquery.BigqueryScope
pem := `-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----`
token := jwt.NewToken(iss, scope, []byte(pem))

HTTPクライアントを準備する。


go

transport, err := jwt.NewTransport(token)

client := transport.Client()
bq, err := bigquery.New(client)

APIを呼ぶ。

以下の例ではBigQueryに保存された行を取得している。


go

call := bq.Tabledata.List("projectid", "dataset", "table")

call.MaxResults(10)
list, err := call.Do()

上記のlistをJSON形式に変換して表示する場合。


go

buf, err := json.Marshal(list)

fmt.Println(string(buf))

ちなみに行をBigQueryに挿入したい場合はTabledata.InsertAllというAPIを使う。