2012年6月23日土曜日

BigQueryをGASで動かしてSpreadSheetに結果を書いたらtimeoutになった

あまり実行時間が長くなるとまずいらしい。
自分で書いたコードが、BigQueryが早いとは言え、
何本かクエリを実行せざるを得なくて、1分ぐらいはとられる。
なので、scriptの方でどうにかした。以下が詳しい。
http://stackoverflow.com/questions/7854573/exceeded-maximum-execution-time-in-google-apps-script

書き込み回数を減らす事だけで、解決した。
毎行ごとに書き込んでいた時はtime outになる事があったが、
500件ごとにしたら、Queryの実行時間+α位の所に落ち着いた。

2012年6月18日月曜日

BigQueryとSpreadSheetを連携する時の権限

SpreadSheetを共有してみんなで見れるようにしようとしたら、
権限が無いとエラーが出てスクリプトがうまく実行されなかった。
API Keyだけあればできるかと思っていたけど、
API自体の参照権限も必要だった。
これをつけたら問題無く共有したSpreadSheetでBigQueryのデータを取得出来た。
でもこうするとCloud Storageとか、他のも見れるようになるからなんだかむずがゆい。

2012年6月12日火曜日

BigQueryのSTRINGでIS NULL

BigQuery Browser ToolのPreviewで見ると「null」と表示されているSTRINGのデータに対して、IS NULLで評価しようとすると期待した値が戻ってこない。 = "" (空文字)だと期待通り。
Previewがおかしいのかどうかは分からないが、そのうちnullの扱いが変わったりしそうだから、nullを使うのを避けて、明示的に空文字にしておいた方が良さそう。
sampleのgithub_timelineでもそうなるから、データの問題ではなさそう。

BigQueryにservice accountでアクセス

Cloud Strage経由でimportするから、同じように扱いたかったから調べた。
これで出来た。
http://code.google.com/p/google-api-python-client/issues/detail?id=133