また、このときPythonが手元にない環境だったので、先に作ったcygwin環境のシェル+curlでお手軽に試せることも分かりました。
curl -X POST -d accountType=HOSTED_OR_GOOGLE -d Email=tf0054@gmail.com -d Passwd=xxx -d service=ndev -d source=google-bigquery-manualimport-1 -H "Content-Type: application/x-www-form-urlencoded" https://www.google.com/accounts/ClientLogin
xxxの部分はご自分のpwに変えて下さい。このcurlコマンド実行で得られるレスポンスにある、AUTH=yyyのyyy部分ががTokenになります。けっこう長いです。
②各種操作用シェルスクリプトを保存
Librariesのページにあるシェルをファイルに落とします。
check_import_status.sh
createtable.sh
delete_table.sh
import.sh
query.sh
このとき、curlからhttpsアクセスをするので、(私の環境では)各シェルの中にあるcurlのオプションに、"-k"を足す必要がありました。
③SSAのサンプルデータをダウンロード&配置
本家には日本からアクセスできなさそう?なので、ココからダウンロードし、以下絵の感じに「tf0054/yob1880.txt」として管理画面からupload。
④テーブルを作成
$ ./createtable.sh tf0054/tables/babynames
上のGoogleStorage管理画面キャプチャのとおりですが、ここの階層にあるディレクトリは自動的に掘られるようです(上記tablesなど)。
⑤データをインポート
$ ./import.sh tf0054/tables/babynames tf0054/yob1880.txt
これまでにGoogleStorageへ上げたデータがあれば、それをBigQueryで見られるようにする(BigQueryの管理下に置く)ことができました。
⑥インポート処理状況を確認
$ ./check_import_status.sh tf0054/tables/babynames b85867e864bf1259
先のインポートコマンド投入時にもらえるレスポンスに、ジョブIDがもらえるのでそれを最終パラメータにします。
⑦セレクトしてみる
$ ./query.sh "SELECT name,count FROM [tf0054/tables/babynames] WHERE gender = 'F' ORDER BY count DESC LIMIT 5;"
テーブル名はカギ括弧に括って記述し、さらにGoogleStorage的にはフルパスで参照する感じになりました。
レスポンスがJSONでもらえるだけど、見た目には分かりずらい。Parseエラーなどになっていないことを随時確認しましょう。例えば⑦の結果は以下です。
{"result":{"kind":"bigquery#queryResults","fields":[{"id":"name","type":"string"},{"id":"COUNT","type":"integer"}],"rows":[{"f":[{"v":"Mary"},{"v":"7065"}]},{"f":[{"v":"Anna"},{"v":"2604"}]},{"f":[{"v":"Emma"},{"v":"2003"}]},{"f":[{"v":"Elizabeth"},{"v":"1939"}]},{"f":[{"v":"Minnie"},{"v":"1746"}]}]}}
何やら可能性を感じますが、Hadoop上のHIVE、みたいな位置づけですね(でも、だとするとGoogleStorageがHadoopにあたるものとなる、、、のでしょうか)。また、対応できているSQL(?)の情報も公開されていました。