Go製のBigQuery Clientでクエリ結果からテーブルを作成する


今回はGoでBigQueryにクエリを発行し、その結果をもとにテーブルを作成するサンプルを紹介します。
これがまた意外にネットになかったのでメモ。

コード

まずコードを載せてから解説します。

説明

ここでクライアント用のcontextを作成します。これがappengineだったら r *http.Request を受け取って ctx := appengine.NewContext(r) みたいに生成します。

ここの client.Query() の部分で、投げるクエリ自体の設定をします。qがクエリインスタンス的なもので、ここにいくつかオプションを設定します。
クエリインスタンスを生成したあとでいくつかオプションを設定しています。
q.CreateDisposition = "CREATE_IF_NEEDED" の部分では、テーブルを作成するかどうかを指定します。
ライブラリのドキュメント該当部分
q.WriteDisposition = "WRITE_TRUNCATE" の部分では、テーブルの作成する方法について設定します。 WRITE_EMPTY はテーブルがない場合のみ作成、 WRITE_APPEND はテーブルに追記する形で作成します。
ライブラリのドキュメント該当部分

残りの部分は各種サンプルの貼り合わせなので、見たままということで。

参考

GolangでBigQueryにデータを追加する
GoでBigQueryクライアントを実装してBigQueryからデータを取ってくる
golang-samples

シェアする

  • このエントリーをはてなブックマークに追加

フォローする