イベント

OSS-DB最前線~2013秋~レポート PostgreSQL 9.3の新機能を解説

 OSS/Linux技術者認定機関の特定非営利活動法人エルピーアイジャパン(以下、LPI-Japan)は1日、2013年9月にリリースされた最新のPostgreSQL 9.3を紹介するイベント「OSS-DB最前線 ~2013秋~」を、都内にて開催した。

クローズドソフトウェアの“使用法”で差別化ができる時代は終わった

LPI Japan理事長の成井弦氏

 基調講演前に開会あいさつで登壇したLPI Japan理事長の成井弦氏は、「企業が生き残っていくためには、差別化が必要である。しかし業界標準クローズドソフトウェアの“使用法”で差別化ができる時代は終わった」と述べた。

 ここでいう業界標準クローズドソフトウェアとは、オープンソースソフトウェア(OSS)ではないソフトウェア全般を指している。1つのベンダーの技術に縛られたソフトウェアは、技術的な限界やコスト的な限界は、提供しているベンダーにしかコントロールできない。自分たちでソースコードを触ることのできないクローズドソフトウェアを“使用”するだけでは、企業が独自性や優位性を担保することは難しいと、成井氏は指摘しているのである。

 一方、OSSはいずれかのベンダーに技術がロックされることがなく、多くの企業、団体、あるいは個人が共に技術を推進する。これまでに成功したOSSとして、成井氏はLinuxを例に挙げ、「いまやミッションクリティカルなシステムの多くはOSにLinuxを選択しており、世界の証券取引所の7割がLinuxを採用している」と述べた。

 その上でOSSのDBMSであるPostgreSQLについても、「今後PostgreSQLは、さまざまな分野で業界標準となっていくだろう」とした。その背景として同氏は、すでにPostgreSQLがクローズドソフトウェアのDBMSと比較しても技術的に遜色(そんしょく)がないことや、ライセンス費用が無料であることなどを理由に挙げている。特にミドルウェアの分野において、最大の出費がDBMSの費用であることを指摘し、Linuxの世界で起きたこと(クローズドソフトウェアのOSを圧倒してシェアを獲得したこと)が、DBMSの世界でもっと短時間に起きるとした。

多くの機能が追加された最新のPostgreSQL 9.3

NTTソフトの勝俣智成氏

 基調講演ではNTTソフトウェア株式会社(NTTソフト) 勝俣智成氏が、「PostgreSQL 9.3の徹底解説」と題して、最新のPostgreSQL 9.3の新機能や注意事項、さらには今後のPostgreSQLについて解説を行った。

 PostgreSQL 9.3にはさまざまな機能追加が行われているが、その中でも勝俣氏は「マテリアライズドビュー」「更新可能ビュー」「高速フェイルオーバー」「Postgre FDW」が、今回のリリースでは大きな特徴であるとしている。

●マテリアライズドビュー

 マテリアライズドビューとは、クエリの結果をキャッシングしたビューであり、複雑で時間のかかるのクエリの高速化や頻繁なビューへのアクセスに効果的である。作成したマテリアライズドビューには、インデックスを定義することが可能であるため、集計結果の検索などを効率よく実行することができる。

 ただしマテリアライズドビューには「自動リフレッシュ機能」がないため、定期的にリフレッシュを実行する必要があります。また、元テーブルの更新差分のみの更新ができないため、マテリアライズドビューのリフレッシュ時には排他ロックが取得されることを意識する必要がある。

●更新可能ビュー

 PostgreSQL 9.2までのビューは参照のみが実行可能であったことから、ビューを更新可能にするためには、トリガやルールを定義する必要があった。しかしPostgreSQL 9.3からは、いくつかの制限はあるものの、ビューを作成するだけでビューに対する更新が可能になった。

 しかしPostgreSQL 9.3は作成するビューがデフォルトで更新可能になってしまうことから、ダンプ/リストアしてPostgreSQL 9.3にバージョンアップした際、以前は参照専用だったビューが更新可能になってしまう可能性がある。ビューが更新可能であるかどうかは、information schemaから確認することができる。

●高速フェイルオーバー

 レプリケーション環境(Streaming Replication)において、PostgreSQL 9.2よりもpromoteが高速になった。また、故障検知の迅速化や、タイムラインID(LTI)の引き継ぎ機能などレプリケーション関連ではさまざまな改善が行われている。

●Postgre_FDW

 外部データラッパ(FDW)を利用し、外部PostgreSQLのテーブルをローカルのPostgreSQLのテーブルのように扱うことができる。外部のPostgreSQLに対して、参照/挿入/更新/削除を実行することが可能で、トランザクション管理も可能である。

 ただし、結合、ソート、集約などはリモートで評価できないため、ローカルでの評価することになるため、外部テーブルから大量のデータを取得した場合には、予想よりも処理時間がかかってしまうこともある。

PostgreSQL 9.4に向けて

 ここ数年PostgreSQLは9月に新バージョンをリリースしていることから、PostgreSQL 9.4も2014年の9月にリリースされることが予想されている。

 勝俣氏は、次のPostgreSQL 9.4に追加される可能性が高い機能として、「マテリアライズドビューへの高速リフレッシュ機能」「論理レプリケーション」「パラレルクエリ対応」などを挙げている。その他にも多くの機能が実装に向けて議論されていることから、「今後もPostgreSQLがエンタープライズの領域で利用されることを期待している」と述べ、基調講演を締めくくった。

北原 静香