Googleさんから
BigQueryの利用OKがメール出来たので、(公開されている
お試し手順に沿って)自らuploadしたデータに検索ができる、までを確認しました。
また、このときPythonが手元にない環境だったので、先に作ったcygwin環境のシェル+curlでお手軽に試せることも分かりました。
- - -①操作用Tokenを取得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(?)の情報も
公開されていました。