👻
Go言語からBigQueryのAPIを使う
[追記] 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を使う。
この記事はQiitaの記事をエクスポートしたものです
Discussion