BigQueryでマテリアライズドビューが提供開始、プレビューとして。複雑なクエリをより高速に実行可能

2020年4月16日

Google Cloudのデータウエアハウス向けデータベースであるBigQueryに「マテリアライズドビュー」機能がプレリリース版として追加されました

一般にリレーショナルデータベースにおける「ビュー」とは、仮想的なテーブルのようなものとされます。これによって、BIツールを使ってデータベースへ検索を実行する際などに、複雑なテーブル構成を隠蔽して分かりやすい構成のビューだけを見せたり、特定のユーザーにアクセスを許すビューだけを見せる、といったことが可能になります。

通常のビューは仮想的な存在であり実体を持たないため、ビューに対するクエリは実際にはビューを構成するテーブルに対するクエリに分解され、実行され、結果が返されます。

一方、マテリアライズドビューはテーブルのように実体を持つビューとされています。実体を持つため、マテリアライズドビューに対するクエリは実際にマテリアライズドビューの実体に対して実行され、結果を返すため、非常に高速に結果が得られます。

特に複雑なクエリが何度もアクセスされるケースでは、マテリアライズドビューのメリットが活かされるでしょう。

ただし、マテリアライズドビューは実体を持つために、その分、ストレージ容量を必要とし、またつねに元になるテーブル(ベーステーブル)のデータと一貫性を保つために、ベーステーブルのデータの変更に追随してマテリアライズドビュー自身も変更されなければならず、その都度実行コストなどがかかる、といった面があります。

BigQueryが提供するマテリアライズドビューも基本的にこの一般的なマテリアライズドビューの機能およびメリット、デメリットを備えています。

マテリアライズドビューが作成されると、ベーステーブルが更新されても自動的にそれに対応してマテリアライズドビューも更新され、つねに最新の状態に保たれます。そのため、特にマテリアライズドビューのメンテナンスに気を遣う必要はありません。

また、マテリアライズドビューを定義するためのベーステーブルに対するクエリは、自動的に最適化されて実行されます。

これにより、複雑なクエリであってもマテリアライズドビューをあらかじめ構成しておくことで、マテリアライズドビューに対するシンプルなクエリによって高速に結果を得ることが可能になります。

GoogleもBigQueryにおけるマテリアライズドビューのユースケースとして、OLAPのような複雑なクエリを高速に実行するケースや、ストリーミングデータのような大量のデータ追加を高速に集約する処理などを挙げています。

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本