【Google Cloudのお勉強】06.Google Cloud の データベースサービス について
はじめに・・
前回はGoogle Cloudのストレージサービスである GCS について学びました。コンソール画面、GUIツール、CLIなどと様々なデータ保存の方法を試して検証してみました。
今回はGoogle Cloudの各種データベースサービスについてのまとめとなります。
Google Cloud のデータベース関連サービス
Google Cloud では確認するといくつかのデータベースサービスがある。
No | 名前 | 概要 |
---|---|---|
1 | Cloud SQL | マネージドデータベースサービス(RDBMS) |
2 | Cloud Spanner | フルマネージドのグローバルRDBMS |
3 | BigQuery | 大規模なRDBMS構造のデータウェアハウス |
4 | Cloud Bigtable | NoSQLワイドカラムなデータベース |
5 | Firestore | NoSQLデータベースサービス |
AWS のDBサービスと比較してみる
名前だけ見ても理解ができなかったので、よく知っているAWSのサービスと比較してみた。
No | Google Cloud | AWS |
---|---|---|
1 | Cloud SQL | Amazon RDS |
2 | Cloud Spanner | Amazon Aurora |
3 | BigQuery | Amazon Redshift |
4 | Cloud Bigtable | Amazon DynamoDB |
5 | Firestore | Amazon SimpleDB(見ない) |
マネージドなデータベースサービス
オンプレミスのように、ハードウェアからDB層まで自ら設定するとなると、管理コストや求められる知識も多岐に渡る。しかしマネージドなサービスを用いると、ほとんどの事をクラウドプロバイダーに任せられるので管理が楽になる。
個人的に注目している Google CloudのDB関連サービス
Amazonや他のクラウドプロバイダーでもDBサービスは色々あるが、Google Cloudで注目しているDBサービスは以下の2つ。
- Cloud SQL
- BigQuery
特にBigQueryは今後重点的に勉強をした方が良いと思ってる。
Cloud SQL の概要
では注目しているDBサービスの1つ。Cloud SQLの概要について
- Cloud SQL はマネージドなRDBMS
- MySQL、PostgreSQL、SQL Serverを提供
- 様々なマシンタイプからインスタンス選びDB運用
- レプリケーションやバックアップなどがマネージド
- 簡単に高可用性な構成が作成できる
- IAM認証も利用可能
BigQuery の概要
- BigQuery は Google Cloud のデータウェアハウス
- 列指向アーキテクチャで分析業務に強い
- ストレージとコンピューティングリソースが別
- ストレージは複製と分散処理が行われている
- SPOFなしで大規模なデータ処理ができる
- コンピューティングは複数のサーバーで分散処理
- 自らインスタンス準備する必要がない
- 使った分の従量課金制
どうやって使い分ければよいのか?
様々なデータベースサービスがGoogle Cloudに存在することが判った。
ではどのように使い分ければよいのか?
簡単なダイアグラムを書いてみました
もっと詳細な要件の確認が必要になると思うが、判断として上記ざっと出来るはず。
BigQueryが気になる
Google Cloud のデータベースサービスの中でも一番気になっているのが BigQuery 。個人的にはBigQueryとマシンラーニング分野がGoogle Cloudの強みだと思う。
Google トレンドでもよくあるデータウェアハウスと BigQuery 比較してみると、関心の高さが伺い知れる。
ビッグデータとクラウドの親和性
パブリッククラウドサービスの台頭により、ビッグデータ分析界隈は非常に活気づいている。特に2000年頃のオンプレミスでは色々制限があってできなかったデータウェアハウスも、クラウドのおかげで簡単に利用できるようになった印象。
- クラウドで大量のデータが保存できるようになった
- データ収集もインターネットを介して分散できる
- 分析のコンピューティングリソースも増やしやすい
\\データ分析が昔よりしやすくなった//
BigQuery の立ち位置
そんな風にパブリッククラウドの台頭により、各ベンダーがこぞってデータウェアハウスを提供しているが、BigQueryの立ち位置としては、 サーバーレス が注目される。
Fivetranが提供している、ベンチマークレポートにて競合のデータウェアハウスとの数値差が垣間見えます。
やってみた
こういう座学系の勉強は、覚えるだけだと飽きるし何より楽しくない。頭に入ってくるためにはハンズオンが一番だと思うので実際にハンズオンをしてみた。
データセットの作成
コンソール画面でBigQueryを選択し、データ保存するためにデータセットを作成
作成されたデータセットへ、テーブル作成しデータを投入します。
作成したテーブルに実際のデータを投入するのですが、GCSでサンプルデータが提供されているのでそれを利用する。
GCSのデータをどこのテーブルに格納するか?
データセット内に作成したテーブルを指定する。
するとデータが保存される。
クエリの発行
GCS からインポートしたデータに対して、各種分析を行うのだが基本クエリの発行で処理ができる。
SQL文を知っている人なら違和感なく操作ができるはず。
select フィールド名 as 別名, count(*) as 別名 from データソース名.テーブル名 group by グループ化したいフィールド
ちなみにSQL実行前に、クエリが処理するデータ量も事前に通知してくれる。
このデータ量により、事前に見積ができる。
ちなみに1TB未満だと無料枠と知って一安心。勉強目的での操作なので課金額は少ない方が良い。
SQL実行してみると、画面にその結果が表示された。
コマンドラインツールのbqでもサクッとクエリ実行ができた。
ちなみにbqコマンドで事前にデータ量見積もるにはdry_runオプションを指定すれば良い。
bq query --dry_run SQL文
まとめ
- Google Cloudでは様々なデータベースサービスがある
- マネージドサービスをうまく活用することがポイント
- 特にBigQueryが注目だと思う(キラーコンテンツ)
- DHW御三家の中でもよりサーバーレス
- インスタンスとかまったく感じない
- GCSと連携してデータ分析も気軽にできる
Twitter Liveでのアウトプット内容
Discussion