BigQueryでマテリアライズドビューが提供開始、プレビューとして。複雑なクエリをより高速に実行可能
Google Cloudのデータウエアハウス向けデータベースであるBigQueryに「マテリアライズドビュー」機能がプレリリース版として追加されました。
一般にリレーショナルデータベースにおける「ビュー」とは、仮想的なテーブルのようなものとされます。これによって、BIツールを使ってデータベースへ検索を実行する際などに、複雑なテーブル構成を隠蔽して分かりやすい構成のビューだけを見せたり、特定のユーザーにアクセスを許すビューだけを見せる、といったことが可能になります。
通常のビューは仮想的な存在であり実体を持たないため、ビューに対するクエリは実際にはビューを構成するテーブルに対するクエリに分解され、実行され、結果が返されます。
一方、マテリアライズドビューはテーブルのように実体を持つビューとされています。実体を持つため、マテリアライズドビューに対するクエリは実際にマテリアライズドビューの実体に対して実行され、結果を返すため、非常に高速に結果が得られます。
特に複雑なクエリが何度もアクセスされるケースでは、マテリアライズドビューのメリットが活かされるでしょう。
ただし、マテリアライズドビューは実体を持つために、その分、ストレージ容量を必要とし、またつねに元になるテーブル(ベーステーブル)のデータと一貫性を保つために、ベーステーブルのデータの変更に追随してマテリアライズドビュー自身も変更されなければならず、その都度実行コストなどがかかる、といった面があります。
BigQueryが提供するマテリアライズドビューも基本的にこの一般的なマテリアライズドビューの機能およびメリット、デメリットを備えています。
マテリアライズドビューが作成されると、ベーステーブルが更新されても自動的にそれに対応してマテリアライズドビューも更新され、つねに最新の状態に保たれます。そのため、特にマテリアライズドビューのメンテナンスに気を遣う必要はありません。
また、マテリアライズドビューを定義するためのベーステーブルに対するクエリは、自動的に最適化されて実行されます。
これにより、複雑なクエリであってもマテリアライズドビューをあらかじめ構成しておくことで、マテリアライズドビューに対するシンプルなクエリによって高速に結果を得ることが可能になります。
GoogleもBigQueryにおけるマテリアライズドビューのユースケースとして、OLAPのような複雑なクエリを高速に実行するケースや、ストリーミングデータのような大量のデータ追加を高速に集約する処理などを挙げています。
あわせて読みたい
GitHub、npmの買収完了を発表。npmレジストリ基盤とプラットフォームへの投資など強化
≪前の記事
GitHub、チームでの利用も無料に。プライベートリポジトリ数も制限なく、チームディスカッション、ActionsによるCI/CDも可能