【Google Cloud】BigQuery 試してみよう

# BigQuery
- ペタバイト単位のデータに対してSQLを使って高速にクエリ実行できるサービス
- Googleのサービスと連携可能
    - Stackdriver Logging（ログ収集サービス）のログを BigQueryに出力
    - BigQueryのデータをBIツールで可視化
- テーブル同士の結合したSQLの実行可
- データセット（データベースと一緒）をまたいだテーブルの結合も可能
- 標準SQLが実行できる
- 課金
    - データ保存：100GB／1ヶ月＝200円
    - スキャン容量：1TB未満／1ヶ月＝無料、1TB越えると1回？＝500円

<img width="650" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/3fd4d593-8f04-2bab-d280-355d3de4abb1.png">
<img width="1347" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/b0f56eca-1d4d-70a7-9d12-a23daeab8341.png">
<img width="339" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/51151120-e510-d87c-e534-65a16339ff92.png">
使いたいデータセットを選択
<img width="983" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/c4bfd72d-c1c9-c4a2-3482-ba8ea6d28166.png">
<img width="900" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/c2b94f7e-ada0-7190-d68b-c97f4256fd7f.png">

標準SQLが使えるように設定
<img width="701" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/74173e74-d897-a971-d6af-85377b66bc92.png">
<img width="574" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/7440f9e7-d20d-4fae-49f1-8b290cc241b0.png">

SQLを実行するまでテーブルの指定方法がよくわからなかったけど［tab］補完が便利
<img width="662" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/8d86258d-3124-ae61-8743-3ecbf67ef121.png">
おぉぉ、こんなんも見える！！
<img width="1123" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/be3337b9-c843-f654-c816-c7b7beba51f1.png">
<img width="1040" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/927a9b91-71fa-f687-6190-b1ba30126798.png">

## Google Cloud Storageとの連携
- GCSにテーブルをエクスポート
    - エクスポート方法
        - Cloud Consoleから実行
        - bqコマンドから実行
    - GCSにパケットが作成されている必要がある
        - gsutilコマンドを実行
- GCSからBigQueryにデータをインポート
    - データセットとテーブルが必要
        - bq mk --detasetコマンドを使用

GCSにパケット作成
<img width="927" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/725809d3-497f-3b09-fc34-1558ce0239b5.png">

<img width="1342" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/b773deb6-82a4-d44a-a2ba-180fee133f3e.png">
<img width="547" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/3e366371-fe0a-7fa7-6efc-d046fc71e418.png">
<img width="343" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/b89616e4-8c70-29e4-da5c-dbb4fae7f70a.png">
<img width="477" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/c7827ffe-790d-e395-49e8-f4692aba2aca.png">
<img width="783" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/92c64415-4a6e-dab9-9076-db1f42bc7ea6.png">
<img width="1360" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/8208491a-c085-cb92-c49d-189ec11237ea.png">
コンソールから実行
<img width="1355" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/af8b99c9-61fb-cede-f2ef-08942f43e19d.png">
<img width="826" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/f8fafc3c-942f-ee35-3d44-22978def3980.png">

- bq extractコマンド

    |オプション|説明|
|:---|:---|
|--location|BigQueryのデータが保存されているリージョンを指定する|
|--destination_format|出力する際のファイル形式を指定する。CSV、NEWLINE_DELIMITED_JSON、AVRO形式が指定できる|
|--print-header|ヘッダ行を出力するかどうかを制御する|

テーブルを作成してインポート
<img width="1355" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/122ac9e1-2239-1672-1528-97c7136f3496.png">
<img width="921" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/9087f4e9-2846-4bc4-f3f7-1e36676390cc.png">

- bq loadコマンド

    |オプション|説明|
|:---|:---|
|--location|データセットのリージョンを指定する|
|--autodetect|データのスキーマを自動検出する|
|--source_format|インポートするファイルのフォーマットを指定する。CSV、NEWLINE_DELIMITED_JSON、AVRO形式が指定できる|

## データの可視化
- 「データポータル」へは Google Cloud Platformの Consoleからは行けず、https://datastudio.google.comにアクセスする
- ディメンション：横軸
- 指標：縦軸
- 表示するたびに、その時点のデータに対してクエリを実行してグラフを描画する
- 見るたびにクエリが発行されるためアクセスするデータ量による料金を考慮する
- Stackdriver Loggingは30日間の保存期間だが、BigQueryに保存し分析できる
- Geographic Information Systems（GIS）＝位置情報にクエリを実行できる
- 

<img width="1252" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/45df12b6-6f3f-7f56-ab8b-622682e48ab9.png">
<img width="1352" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/52d96a23-2390-385b-c279-ff26b8bd18ac.png">
<img width="1067" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/7adb29a3-458b-3f04-2bfc-ed4a8e7fe0a7.png">
<img width="903" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/2057d98c-46e3-eff2-db5f-51ce878a30f3.png">
<img width="599" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/192a1247-1bd8-7a4e-3c1e-39b34d892801.png">
<img width="806" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/c75ce6e7-9f84-f0ab-14d4-dbf4e30ba95a.png">
<img width="1349" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/becf9ee1-062c-f2b6-401c-d333158591db.png">
<img width="1351" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/59dde511-4558-20c9-6ca0-5009b722fac0.png">
<img width="486" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/980b296c-5f1d-451c-8d20-c54db580512b.png">
<img width="598" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/47393899-7a99-b7f3-ed20-b240c6a923c0.png">
<img width="1344" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/2a2edd92-fbd7-49e1-5cab-97074b2cfed5.png">
<img width="1005" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/8136e908-7202-3c21-95eb-8a48d165ec37.png">
<img width="1342" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/7fe2a26a-ef90-5b88-ccb4-c23148be46d3.png">

Excelを使う感覚でグラフが作れた。こりゃ楽だ