BigQuery メモ

GCP

はじめに

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を作成。

名前
value1STRING
value2INTEGER

直接クエリを実行することで、データを挿入することができる。

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 バケットを同じリージョンに配置する

コメント

タイトルとURLをコピーしました