読者です 読者をやめる 読者になる 読者になる

BigQueryの使い方入門

スポンサーリンク

BigQueryを使い始めるにあたってクエリを試したりデータをロードするまでの流れをまとめました。

f:id:tasukujp:20151016095911p:plain

登録すると以下の画面になりますが、最初のプロジェクトは「My First Project」で作成されます。名前の変更はプロジェクトの管理から可能です。左側メニューのビッグデータから BigQuery に移動しましょう。

f:id:tasukujp:20151016101954p:plain

クエリの実行

クエリは毎月1TB(課金アカウントあたり)分のデータ処理まで無料で実行できます。
 Pricing - BigQuery — Google Cloud Platform

f:id:tasukujp:20151016103355p:plain

左側メニューのpublicdata:samplesはすぐに使えるサンプル用のテーブルです。

実際にクエリを実行してみると次のようになります。処理に要したデータ量も合わせて表示されますが、画像ではcachedとなっています。これは、BigQuery には自動キャッシュ機能があり、同一のクエリに対しては結果を再利用することができるためです。このキャッシュ機能については使い方次第でコストを削減できそうなので詳しく調べたいと思います。

f:id:tasukujp:20151016104727p:plain

BigQuery は DELETE や UPDATE をすることができません。Redshift なんかは PostgreSQL がベースになっているだけあって、なんだかんだ普通の RDB 感覚で使えましたが、BigQuery は少し感覚が違いますね。とはいえ SELECT に関しては標準 SQL と基本的に同じなのでここはすんなり馴染めます。

 Query Reference - BigQuery — Google Cloud Platform
 Query Reference(日本語版)- BigQuery — Google Cloud Platform

テーブルの作成とデータのロード

BigQuery でデータをロードできるプロジェクトは、課金が有効になっているプロジェクトだけです。まずはデータセットを作成します。データセットとはテーブルの集合であり、通常の RDB でのデータベースに似たものです。

f:id:tasukujp:20151016110908p:plain

Dataset IDを入力してData locationを選択します。Expire new tables in one day.にチェックしておくと自動的に1日で削除されるようになります。データの削除を忘れると課金が発生してしまいますので、一時テーブルなどのすぐ消す予定のデータはチェックしておきましょう。

f:id:tasukujp:20151016110917p:plain

作成したデータセットにテーブルを作成します。

f:id:tasukujp:20151019103220p:plain

Table IDを入力して Next。

f:id:tasukujp:20151019104014p:plain

ロードするデータのフォーマットと場所を指定します。ローカルからも可能ですが、Google Cloud Storage にしました。

f:id:tasukujp:20151019104127p:plain

テーブルのスキーマを定義します。

f:id:tasukujp:20151019104316p:plain

ロードに関するオプションを指定します。

f:id:tasukujp:20151019104701p:plain

ここでのオプションは以下の通りです。

オプション 内容
Field delimiter ロードするファイルのフィールド区切り文字
Header rows to skip ヘッダーなどスキップする行数
Number of errors allowed 不正なレコードが存在した場合の許容する数
Allow quoted newlines CSVファイルの文字列項目にクォートされた改行文字を含む
Allow jagged rows フィールド数よりも列が少ない場合、欠けてるフィールドは null としてロードする
Ignore unknown values スキーマに一致しない値を含む行を受け入れ、不明な値は無視される

最後 Submit をクリックするとロードが開始されます。Job History に Load の進捗が表示されるので緑色のチェックになったら完了です。

f:id:tasukujp:20151019112523p:plain

ロードしたテーブルをクリックして Details で件数やサイズ、テーブルの内容が確認できます。

f:id:tasukujp:20151019112719p:plain

参考書籍

Google BigQuery
Google BigQuery
posted with amazlet at 15.10.16
Jordan Tigani Siddartha Naidu
オライリージャパン
売り上げランキング: 166,295