BigQuery
について書きます。
いわずと知れた、GCPを代表するDWHですね。
Quick start
https://cloud.google.com/bigquery/docs/quickstarts
コンソール、bqコマンド、GoやJavaやPython用のクライアントライブラリから操作できる
コンソール以外の場合はサービスアカウントが必要。
How-to
https://cloud.google.com/bigquery/docs/how-to
- データセットがBigQueryのテーブルやビューの作成に必要となる
- データセットのロケーションは作成時のみに設定できる
- テーブルをコピーするときには姉妹が同じロケーションになる
- データセットの作成、アップデート、削除自体では課金されない
- GCSのような外部データソースにクエリする場合は同じロケーションに置く
- 基本的にはデータセットレベルでアクセスコントロールする
- テーブルやパーティションは揮発する時間を設定できる
- データをロードするときに、スキーマを自動で設定したり、指定したりできる
-
bq
コマンドならJSONファイルで指定できる
-
- ネストされたカラムやリピートカラムのほうが正規化するよりも効率がいい
- IAMに基づいてテーブルレベルのACLを設定できる
- 削除したテーブルは7日以内なら復元できる
- パーティションを作ることができる
- Ingestion time, date/timestamp/datetime, integer range
- ビューを作成してアクセス権を与えることで、クエリ結果をシェアすることができる
- マテリアライズドビュー: 定期的にクエリ結果をキャッシュして、頻繁にアクセスするデータを高速に見れるようにする
- クエリ結果は一時的なキャッシュとして扱える。キャッシュは24時間存在する。
- 外部データとして、次のデータをクエリできる
- GCS
- Cloud SQL
- Bigtable
- Google Drive
- 利用できるクオータを設定してコストを管理できる
- AEADをつかえば、テーブル内の値を個別に暗号化できる
- クライアントサイド暗号化ができるが、その場合鍵や暗号化処理はユーザー側が実装する
- Cloud Data Loss Prevention を使ってデータ喪失に備えることができる
Customer Managed Encryption Key
https://cloud.google.com/bigquery/docs/customer-managed-encryption
- BigQueryのデータはデフォルトで暗号化される
- Key Encryption Keyにユーザーが管理するものを使える
BI Engine
https://cloud.google.com/bi-engine/docs
- BigQueryのインメモリ分析サービス。
- Data Studioでの可視化に対応している。それ以外は...
BigQuery ML
https://cloud.google.com/bigquery-ml/docs
- BigQuery上で機械学習ができるサービス
- 対応モデル
- 線形回帰
- ロジスティック回帰
- K-means
- Matrix Factorization
- 時系列予測
- XGBoost
- DNN
- AutoML Tables
- TensorFlowモデル
- 過学習を防ぐためにアーリーストッピングや正則化ができる
- Cloud KMSをつかって、ユーザーが管理する暗号化カギを利用できる
BigQuery Giographic Information System
https://cloud.google.com/bigquery/docs/gis-intro
- 地理データに基づいて分析や可視化ができる
- 標準SQLのGeographyタイプのデータを読み込める
以上です。
GCPの主力サービスだけあって、ドキュメントも豊富でした。