【BigQuery基礎】viewを作成してクエリを簡略化する

BigQuery

BigQueryのview(ビュー)を活用することで繰り返し使用するクエリを簡略化することができます。

具体的な作成方法と使用方法を見ていきましょう。

BigQueryのviewとは

viewとは、テーブルのように実態はないが、仮想的なテーブル形式のデータを作り出せる機能になります。

テーブルと比較してviewを使うメリット

  • 作成したクエリの結果をコンソール上で簡単に保存できる。
  • 集計上、保存したviewはテーブルと同じように扱えるためクエリを書く労力が減る。
  • 実態はないため、ストレージの課金はされない。
  • データの定義変更する際、テーブル化している場合はデータの置き換えが必要だが、viewの定義はもととなるクエリを書き換えるだけで変更できる。

テーブルと比較してviewを使うデメリット

  • viewにアクセスする際は都度、viewの元になるクエリが走るため、重いクエリからなるviewの場合は処理に時間がかかる。
  • 同様に、都度クエリが走るためオンデマンドのクエリ料金がかかる。

初期はviewを作成して使用し、定義が落ち着いてきたら定期的にテーブル化する処理に切り替える、という運用がおすすめです。

viewの作成方法(Webコンソール経由)

実際に試しにviewを作成してみましょう。

今回は一般公開データの「usa_1919_2013」テーブルを、「test_dataset」というデータセットの下にコピーして使用します。

以下のクエリをWebコンソールで実行します。

SELECT
  name, gender,
  SUM(number) AS total
FROM
  `test_dataset.usa_1910_2013`
GROUP BY
  name, gender
ORDER BY
  total DESC
LIMIT
  10

以下のような実行結果になります。この実行結果をviewとして保存します。

「保存」を選択し、「ビューを保存」を選択します。

モーダルが立ち上がるので、任意のデータセット名と、テーブル名を入力して保存を選択します。

そうすると、入力したテーブル名でviewが作成されます。

viewのフィールド名は実行したクエリで出力したカラムが並んでいます。

以下のクエリで、作成したviewのデータすべてを出力します。

SELECT * FROM `test_dataset.test_view`

先程viewを作成する際に使用したクエリの結果と一致していることがわかります。

このようにviewを一度作成することで、仮想的にクエリをテーブルのように扱うことができ、クエリを簡略化することが可能です。

viewの更新方法

作成したviewの詳細タブの「クエリを編集」からクエリを変更することが可能です。

viewの料金

viewの料金は、viewを作成した際のもととなるクエリの料金分、実行のたびに料金がかかります。単価の高いクエリをviewとして登録すると想定以上に料金がかかることがあるので注意が必要です。

Materialized Viewとは

Materialized View(マテリアライズド ビュー)とは、キャッシュを備えたviewで、2020年4月にベータリリースされました。

利点は公式ドキュメントを参照すると以下になります。

・集計関数を含むクエリの実行時間の短縮とコストの低減。最大のメリットが得られるのは、クエリの計算コストが高く、返されるデータセットが小さい場合です。

・BigQuery による自動的かつ透過的な最適化。オプティマイザーは、可能であればマテリアライズド ビューを使用してクエリ実行プランを改善します。この最適化のおかげで、クエリを変更する必要はありません。

・BigQuery テーブルと同じ復元力と高可用性。

参照:マテリアライズドビューの概要

まとめ

こちらの記事ではBigQueryのviewについて、

  • viewの概要
  • viewの作成方法、更新方法

について解説しました。

viewは使いこなすとクエリの作成の手間が大幅に削減できます。是非活用してみてください!

コメント

タイトルとURLをコピーしました