はじめに
Bigquery とは
ビッグデータをクエリ文で処理するための分析基盤。
フルマネージドサービスで、基盤等の準備は不要。
アクセス方法
- Cloud Console (GUI)
- bq コマンドラインツール
- 各種REST API
チュートリアル
Bigqueryの主な操作は以下の3種
- データの読み込みとエクスポート
- データのクエリと表示
- データの管理
Bigqueryで処理するためのデータは以下においておく必要がある。
- Bigquery ストレージ
- (外部データソース)Cloud Bigtable
- (外部データソース)Cloud Storage
- (外部データソース)Google ドライブ
- (外部データソース)Cloud SQL
また、Bigquery Data Transfer Serviceを利用することで、
外部のデータを定期的にBigqueryストレージへインポートすることができる。
注・あくまでもBigquery ストレージへ定期的にimportするサービスがData Transfer Service。
直接、外部ソースのデータを読み込めるようになるわけではない。
Bigquery Data Transfer Serviceで対応しているもの
種類 | サービス |
Google Software as a Service (SaaS)アプリケーション | キャンペーン マネージャー Cloud Storage Google アド マネージャー Google 広告 Google Merchant Center(ベータ版) Google Play 検索広告 360 (ベータ版) YouTube – チャンネル レポート YouTube – コンテンツ所有者レポート |
外部クラウド ストレージ プロバイダ | Amazon S3 |
データ ウェアハウス | Teradata Amazon Redshift |
Amazon S3といった、外部ストレージ上のデータは以下の形式である必要がある。
- カンマ区切り値(CSV)
- JSON(改行区切り)
- Avro
- Parquet
- ORC
データセット
データセットの作成


テーブルの作成


testdatasetに以下のフィールドをもつtable1を作成。
名前 | 型 |
value1 | STRING |
value2 | INTEGER |

直接クエリを実行することで、データを挿入することができる。
INSERT testdataset.table1 (value1, value2)
VALUES('top load washer', 10),
('front load washer', 20),
('dryer', 30),
('refrigerator', 10),
('microwave', 20),
('dishwasher', 30),
('oven', 5)

bqコマンドライン (表示)
データセットの一覧を表示
bq ls --filter labels.key:value \
--max_results integer \
--format=prettyjson \
--project_id project_id
デフォルトプロジェクトでよければ以下。
$ bq ls --format=pretty
+-------------+
| datasetId |
+-------------+
| testdataset |
+-------------+
テーブル一覧を表示
bq query --nouse_legacy_sql \
'SELECT
*
FROM
`bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
WHERE
table_name="commits"
AND column_name="author"
OR column_name="difference"'
bq query --nouse_legacy_sql \
'SELECT
*
FROM
testdataset.table1'
$ bq query --nouse_legacy_sql \
> 'SELECT
> *
> FROM
> testdataset.table1'
Waiting on bqjob_r575ec7251818e7a3_00000177a41c252e_1 ... (0s) Current status: DONE
+-------------------+--------+
| value1 | value2 |
+-------------------+--------+
| oven | 5 |
| refrigerator | 10 |
| top load washer | 10 |
| front load washer | 20 |
| microwave | 20 |
| dryer | 30 |
| dishwasher | 30 |
+-------------------+--------+
データセットのロケーション制約
BigQuery データセットと外部データソースを同じロケーションに配置する。
データを読み込むには、Cloud Storage バケットを同じリージョンに配置する
データをエクスポートするには Cloud Storage バケットを同じリージョンに配置する
コメント