仕事でBigQueryを使う機会が多く、この休み期間を使って復習を兼ねて改めてBigQueryについて勉強してみた。
BigQueryとは
Google Cloud Platformが提供しているフルマネージドで、ペタバイト処理が可能なデータウェアハウス。
BigQueryのアーキテクチャ
BigQueryは2つのサービスが一体化されたもので、この組み合わせによって非常に高速なテーブルスキャンを実現している。特に重要なのはカラム型ストレージとツリーアーキテクチャを使って高速化の実現を行っていること。
【出典:https://www.slideshare.net/GoogleCloudPlatformJP/cloud-onair-bigquery-201896-113180907/GoogleCloudPlatformJP/cloud-onair-bigquery-201896-113180907】
Colossue File System(分散ストレージ)
分散ファイルシステムのこと。大きなサイズのデータを分割し、別々の物理ディスクに複製して保存をしている。また、BIgQueryは列指向のデータ配置を撮っている。
【出典:https://www.slideshare.net/GoogleCloudPlatformJP/cloud-onair-bigquery-201896-113180907/GoogleCloudPlatformJP/cloud-onair-bigquery-201896-113180907】
Dremelクエリエンジン(高可用性クラスタコンピュート)
並列処理によってSQLクエリをスケールアウトさせるGoogleのソリューションの1つ。Dremelエンジンでは、SQLクエリを最初に受け取ったルートサーバーが処理を分割し、大量のリーフサーバーに分割したクエリを渡して処理させています。
【出典:https://www.slideshare.net/GoogleCloudPlatformJP/cloud-onair-bigquery-201896-113180907/GoogleCloudPlatformJP/cloud-onair-bigquery-201896-113180907】
BigQueryの料金
BigQueryは使えば使う分費用がかかる。そのため、使う前には必ず以下の公式サイトから費用を確認することをおすすめする。主にBigqueryを使っていてかかる費用はクエリのスキャン料金と、合計ストレージサイズの2つをおさえておけば個人的には良いと考えている。
https://cloud.google.com/bigquery/pricing
クエリ(オンデマンド)
東京リージョンで使用した場合、毎月1TBは無料になる。ただし次の1TB読み込むごとに6ドルが課金される。
ストレージ
東京リージョンで使用した場合、毎月10GBまでは無料になる。ただし、10GB以降は1GBあたり、0.023ドルが課金される。
BigQueryを使ってみる
クエリを実行してみる
1.BIgQueryのコンソール画面を開く
2.一般公開のデータセットから公開データを選択する。
※Googleが公開データを保存しており利用者はすぐにデータ分析ができるようになっている。
3.公開データ対するクエリ実行
実行したSQL
SELECT block_id FROM bigquery-public-data.bitcoin_blockchain.blocks
LIMIT 1000
単純に使う分には以上です。SQLも使えるため、RDBに慣れた人であっても簡単に操作できそうです。
クエリ結果やコンソールから読み取れる情報
①スキャン対象データ量(予測値)
ここはクエリを実行する前に必ず確認しましょう。クエリエディタに書かれているSQLがどれくらいのデータ量をスキャンするのかを親切に教えてくれます。また、SQLにエラーがあると、ここの表示はエラーと表示されるため、実行前に間違いを確認することができます。
②クエリ結果
ここには処理にかかった処理時間や、実績値としてスキャンされたデータ量が表示されます。
③クエリ結果の保存
クエリ結界をファイルに保存したり、BigQueryテーブルに保存することができます。保存先には以下のような選択肢があります。
- BigQueryテーブル
- Googleスプレッドシート
- Googleドライブ(CSVファイル・JSONファイル)
- ローカルにダウンロード(CSVファイル・JSONファイル)
- クリップボードにコピー
※保存先をBigqueryテーブルを選択する場合、データセットはスキャンしたデータが存在するリージョンと同じリージョンにデータセットを作っておく必要があるため、注意してください。
まとめ
今回はBigQuery の入門1回目ということでBigQuery の概要や簡単な使い方をおさらいしました。次回以降はデータロードの方法など少し掘り下げて使っていきたいと思います。