はじめに
前回に続いて、2021年に公開された論文「Napa: Powering Scalable Data Warehousing with Robust Query Performance at Google」を元にして、Google社内で利用されている、Napaと呼ばれるデータウェアハウスシステムを紹介します。今回は、検索を含むさまざまな処理を高速化するための工夫、および、プロダクション環境における性能データを紹介します。
ユーザー定義ビューのアップデート
前々回の記事で少し触れたように、Napaは「ユーザー定義ビュー」をサポートしています。既存のテーブルから新しいテーブル(ビュー)を作るためのSQLを登録しておくと、テーブルのデータが更新されるごとに、ビューの内容もそれに応じて自動的に更新されるという仕組みです。Napaの場合は、前回説明したように、差分データのマージ処理が進むにつれて、検索可能な最新データのタイムスタンプ(QT)が更新されていきます。このため、QTを更新するタイミングで、対応するビューも同時にアップデートする必要があります。Napaが扱うテーブルのデータ量、および、新規データの追加速度を考えると、ビューのアップデートはかなり高速に行う必要があります。Napaが管理するテーブル、および、ビューのデータは、それぞれのキーによってソートされた状態で複数のノードに分散配置されており、この特徴を生かした実装がなされています。詳しい内容は論文に譲りますが、本質的には、複数のテーブルのデータをマージして再ソートするという処理になっており、論文内には「最先端(state-of-the-art)のソートライブラリーの開発に相当な労力をかけた」という記述があります。
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。