TOP>企業情報>コラム>技術情報>イギリス版PostgreSQLカンファレンス「PGDay UK 2014」参加レポート(後編)

イギリス版PostgreSQLカンファレンス
「PGDay UK 2014」参加レポート(後編)

2014年4月にイギリスに住まいを移した筆者が、海外のデータベース事情第1弾として、去る2014年7月9日に開催された「PGDay UK 2014 」の様子をレポートします。

前編   ▼ 後編

「PGDay UK」はPostgreSQL Users Groups UK主催のイベントの1つで、日本での Japan PostgreSQL Users Group(JPUG)主催のPostgreSQLカンファレンスと同様のイベントにあたります。開発者による新機能紹介やユーザの導入事例など、PostgreSQLの最新情報を得る絶好の機会と言える様々なセッションの内容を前編、後編の2回に分けてご紹介します。

前編では、イベント前半の3セッション「MySQLからPostgreSQLへの移行事例」、「PostgreSQL新バージョン9.4の機能紹介」、「他データベースへアクセスする仕組み「Foreign Data Wrapper」」についてご紹介しました。後編となる今回は、残り3セッションについてご紹介します。

高瀬 洋子(Youko Takase)

株式会社アシスト データベース技術本部

アシスト入社後、Oracle Databaseのサポート業務を経て、2009年よりPostgreSQL、EDB Postgresのサービス立ち上げに参画。「PostgreSQLなら高瀬に聞こう」と社内外から言ってもらえる存在となることを目標に日々活動。2014年4月よりイギリスに拠点を移し、PostgreSQL、EDB Postgresの啓蒙活動と顧客対応の後方支援を担当。

高瀬の紹介記事はこちら

PostgreSQLに実装された多種多様なインデックス

セッション4 「Indexing Complex Datatypes」

スピーカー: Venuebook 社 Jonathan Katz 氏

Jonathan Katz 氏

オンライン・パーティ・プランニングサイトを運営するVenuebook のCTOであり、ニューヨークPostgreSQLユーザグループのメンバーであるJonathan Katz氏によるインデックスのお話です。

PostgreSQLにはRDBMSで広く利用されているB⁻Treeインデックスをはじめ様々なインデックスが実装されています。中でも主に全文検索を高速化するために利用されるGiST(汎用検索ツリー:generalized search tree)インデックスやGIN(汎用転置インデックス:generalized inverted index)インデックスがPostgreSQL特有のインデックスと言えます。

セッションでは、全文検索処理で両インデックスの性能とサイズの比較が紹介されました。全文検索処理ではGINインデックスを利用するほうが性能を確保でき、さらにGINインデックスの機能強化が組み込まれたPostgreSQL 9.4ではインデックスのサイズが40MBまで縮小されるため、結果として検索処理だけでなく更新処理性能も向上します。

 
検索にかかる所要時間 インデックスサイズ
GiSTインデックス 181ms 83MB
GINインデックス 15ms 71MB(9.3)
40MB(9.4β1)

  • インデックスを設定していない場合の検索時間:12,000ms


また、全文検索以外にGiSTインデックスが効果を発揮するケースは、9.2で実装された範囲データ型(Range Data Types)との組み合わせです。インデックスを設定していない場合に185msかかる検索処理がGiSTインデックスを作成することで0.168msまで高速化できたとのことです。また、地理空間情報を扱うPostGISは日本国内での利用も増加傾向にありますが、GiSTインデックスを組み合わせて高速な検索が実現できます。

GINインデックスはINTEGER配列でも利用することができます。通常のB-Treeインデックスでの検索処理が159msに対してGINインデックスを使うと0.045msまで高速化できたとのことです。

インデックスといえばB-Treeと思いがちですが、PostgreSQLに実装されたインデックスのそれぞれの特徴と用途を的確に理解し、アプリケーションに合った最適なインデックスを利用できるようになりたいものです。

Window関数を活用したビジネスインテリジェンスの実現

セッション5 「Business Intelligence with Window Functions」

スピーカー: Gianni Ciolli 氏

Gianni Ciolli 氏

Window関数はOLAPなど複雑な集計処理を効率よく行うための構文で、PostgreSQL 8.4で実装され、PostgreSQL 9.0以降も機能拡張が続けられています。

Window関数はGROUP BY句によく似ていますが、複数の行を1つにグルーピングし結果としてグループごとに1つの行が返されるGROUP BY句に対して、Window関数はパーティションとウィンドウフレームという概念でSELECTされた結果を区切って集計処理をするため、行数に変化はありません。セッションではパーティションとウィンドウフレームの関係とWindow関数の基本構文が紹介されました。

OLAP系の処理はランキングやパーセンタイル分割など検索対象のデータ範囲が広いうえ、結合やソートも多い統計処理がメインです。このような処理は一般的なSQL構文でも対応できますが、自己結合や相関サブクエリとなどの高コストを伴う演算が含まれることが多くSQL文そのものも複雑になりがちです。Window関数はこうした課題に対応するために導入された機能です。

この後もSimon Riggs氏によるBI処理における機能強化の話が続きますが、PostgreSQLが複雑なSQL処理にも対応していることを印象づけるセッションでした。

AXLEプロジェクトによるビジネスインテリジェンス新機能開発

セッション6 「New BI features from the AXLE Project」

スピーカー: 2ndQuadrant 社 Simon Riggs 氏

Simon Riggs 氏

最後のセッションは本カンファンレンスの事務局も務める2ndQuadrant社のSimon Riggs氏の登壇です。

AXLEプロジェクトは10TB以上のMixed Workload用途の大規模データベースで高速かつセキュアなBI処理の実現を目指してEU全体で活動しているプロジェクトで、PostgreSQL 9.5以降での実装に向けてさまざまな機能の開発が進められています。

ここでは性能向上に関する2つの機能を紹介します。

シーケンシャルスキャンの性能向上の機能として、PostgreSQL 9.5への実装が予定されている「MinMaxインデックス」があります。パーティショニングにより細かく分割され、各パーティションにはそこに含まれる行データの最小と最大の値を持つインデックスです。それらの値を元にシーケンシャルスキャンで読み込む必要のないパーティションをスキップします。2GBのテーブルにMinMaxインデックスとB-Treeインデックスを設定した場合のインデックス作成にかかる時間とサイズが紹介されました。

検索にかかる所要時間 インデックスサイズ
MinMaxインデックス 11s 24 KB
B-Treeインデックス 96s 1.1GB

インデックスを設定した状態でデータ挿入にかかる所要時間はインデックスを作成していない場合と比べて、B-Treeインデックスは2倍遅くなるのに対してMinMaxインデックスでは1.3倍程度の影響に抑えることができます。MinMaxインデックスはテーブルサイズの拡大に従ってオーバーヘッドも大きくなる点に注意が必要とのことですが、シーケンシャルスキャンでインデックスが利用できるようになればDHW用途でPostgreSQLを利用するケースも増えてくると思われます。

もう1つ性能向上のための機能にPostgreSQL 9.6で実装が予定されている「COAST」があります。PostgreSQLには1つのページに入りきらないデータを行単位で外部テーブルに分割して格納するTOASTと呼ばれる機能がありますが、COASTはこれを列単位で行うというものです。COASTによってデータ圧縮が簡単になり、検索対象の列のみにアクセスすることができるためオーバーヘッドを抑えることができます。DWH処理に特化した列指向型データベースと同等機能をPostgreSQL自体が持つことで、RDBMS選定でPostgreSQLが有力な選択肢の1つとなることは間違いありません。

終わりに

カンファレンス最後のライトニングトークには筆者を含めて7人が登壇しました。Dave Page氏によるpgAdminの次期バージョンの開発状況やデータモデリングなど多彩なトークが展開されました。筆者は海外のユーザに日本を知ってもらうため、日本PostgreSQLユーザ会(JPUG)やPostgreSQLエンタープライズ・コンソーシアム(PGECons)のワーキンググループやセミナーなど、日本でのPostgreSQLプロモーション活動を紹介しました。

PGDay UKに参加したことで、欧州では国単位での活動はもちろんですがEU全体でも活発に活動していることが新しい発見でした。今後も折を見て海外のデータベース事情をご紹介していきたいと思います。




以上が「PGDay UK 2014」の後半3セッションのご紹介となります。
前半3セッションについては、「PGDay UK 2014」参加レポート(前編)をご覧ください。


関連製品/サービス


Facebookで情報をお届けしています

Facebookでは、アシストの「今」を週3回のペースでお届けしています。「めげない、逃げない、あまり儲けない」を合言葉に日々頑張っておりますので、応援よろしくお願いします。



ページの先頭へ戻る