BigQuery
多くの強力な機能
マニュアル・バッチ・ストリーミングでのデータインポートの機能
データを格納するストレージとしての機能
クエリを実行して分析を行う機能
RDB と同様にスキーマを持つテーブルという概念があり、SQL でクエリを記述する 標準 SQL とレガシー SQL の 2 種類の SQL がある
RDB との違い
カラム型ストレージ : 必要なカラムのみにアクセスできるので、データ走査を最小化
ツリーアーキテクチャ : クエリをツリー構造の処理に分解して分散処理できる
NoSQL のようにパフォーマンス向上のためにデータを非正規化できる
nobuoka.icon あんまりピンときてない
用語
データセット : テーブルやビューの集合
テーブル : データを格納した行と列の集合
ジョブ : クエリやインポート、エクスポート、データのコピーといった処理の単位
利用する流れ
データを準備する
データセットとテーブルを作成し、テーブルにデータを挿入する
クエリを実行する
よく使われる機能
クエリエディタ : クエリを入力して実行できる機能
クエリ結果ビュー
料金
ストレージ料金とオペレーション料金の合計
ストレージ料金は安い : 東京リージョンで 1GB あたり $0.023 → 1 TB でも 1 か月あたり $23
ベストプラクティス (コスト抑制)
パーティションを指定してクエリを実行 (クエリが参照したデータサイズを抑えられる)
パーティションの指定がないクエリを実行できないようにすることも可能 (大きなサイズのテーブルだと、1 クエリで数千円かかったりもする……)
SELECT 句に指定するカラムを必要最低限にする (クエリ結果に含まれるデータサイズを抑えられる)
キャッシュについて意識 (テーブル更新がなく前回のクエリから 24 時間以内であればキャッシュが効く)
クエリ実行前にドライランを行う