対象読者
- データ分析基盤を作ってみたいけど、分析基盤の作り方がわからない
- BigQueryって聞いたことあるけど、実際に使ったことがない。興味ある。
- BigQueryって使おうと思ってググってみたけどあんまりまとまった情報がない
そのような気持ちを持つ方が読者想定です。
自身もこの本に出会う前には、同じようなBigQuery童貞でした。
(結論)イイタイコト
BigQuery初心者や、これから導入考えてる人が、読むべき本を見つけました!!
Google Cloud Platform実践ビッグデータ分析基盤開発 ストーリーで学ぶGoogle BigQuery
です。
あまりBigQueryの本がなく、半信半疑で読みましたがBigQueryの全体像が捉えられる良書でした。
この本のイイところ
この本のイイところは3つあります。
- BigQueryの概要が難しすぎず、ちょうどかゆいところに手が届く適度な難度
- 実際にデータ基盤を入れるストーリーになっているので、具体的な導入イメージが湧く
- ストーリー仕立てて、サクッと読める(数時間で読めます)
ポイント独自まとめ
自分が読んでみてポイントに感じたところ。面白かったところかいつまんでまとめます。
- 最初は同期するデータ絞って、分析基盤回す
- 上限(Quota)を割り当てておく(1TB/日だと$5程度なので安心)
- 文字コードはUTF-8
- 読み込み形式は多数(json, avro, parquet, ORC, csv) => メジャーはcsv, パファーマンス改善が必要ならavro等検討
- データ加工: create table as selectクエリで、データ加工したものを別のテーブルとして保存する (実験のときはviewがオススメ)
- レガシーSQLと標準SQL => 標準SQL使おう
- google data studio (google データポータル)は素晴らしい可視化
Bigqueryのアーキテクチャ
- Dremelクエリエンジン: 1TBのテーブルスキャンを1秒以内にすることを目標として進められたエンジン(大規模分散処理)
- カラム指向ストレージ:selectする列数は絞ったほうがパフォーマンスが出やすい
特殊なテーブル指定
- パーティション分割テーブル: 日付or整数でテーブル内のパーティションを区切ることができる
- クラスター化テーブル: 指定したクラスタリングを行うことで、特定のクエリでスキャン幅を縮められる RDSのインデックスに近いイメージ、最大4つまで
DataWarehouseアーキテクチャは、ETLでなくELTにするのがポイント
E: Extract 抽出
L: Load データ取り込み
T: Transform データ加工
後ろに加工を持ってくることで、bigquery内で自由に扱える。(利便性やコスト面でgood!)
実運用方法
- まずは、既存テーブルを一括で持ってくる
- トランザクション系テーブルは、日時の分割テーブルとする
- マスター系は大きくないので、単に連携データを追加していく
まとめ・感想
BigQueryなんか使えそう、程度の軽い気持ちでしたが読んでみていい本でした。
1TBのテーブルスキャンを1秒以内にすることを目標とか、Googleさん流石化け物です。w
Emblukでもマスター系データは毎回全消しして入れ直す想定みたいで、、、それもまた大味だなと感動しました。
是非気になった方は本も手にとってみて下さい!
Google Cloud Platform実践ビッグデータ分析基盤開発 ストーリーで学ぶGoogle BigQuery
おまけ
開発データDBをEmbulkでBigQueryに入れて、Google Data Studioで可視化してみました!!
こんな感じで、データが常に可視化でき好きにカスタマイズできれば、ここから戦略に繋がりそうでいい感じです。