「Linuxで10年かかっていた動きが今後5年でRDBMS市場においても起こる」
冒頭にLPI-Japan理事長の成井弦氏が登壇し、オープンソースソフトウェアの優位性を力強く主張した。ジャック・トラウトというアメリカのマーケティング戦略家の「Differentiate or Die」という書籍タイトルを紹介しながら、差別化の重要性を強調した。「業界標準のクローズドソースソフトウェア(商用のソフトウェア)の使用法で差別化できる時代は終わった。またコストではオフショア開発にかなわない。日本で日本語ができると言っていても独自性や優位性が持てないと同様に誰でも使用出来る業界標準ソフトの使用で差別化を持つのは難しい。個人にしても企業にしても、オープンソースソフトを利用することによる差別化こそが生き残る道である」と説いた。
オープンソースソフトウェアで代表的なのは言うまでもなくLinux。約10年でデファクトスタンダードとなり、今では組み込み機器やサーバーのOSとして定着した。成井氏は「Linuxで10年かかっていた動きが今後5年でRDBMS市場においても起こる。すでにGISの分野ではPostgreSQLがデファクトスタンダードとなっている」と指摘する。
確信の根拠としてあげられるのがデータベースにかかるライセンスだ。成井氏は「日本のIT予算で最大の出費を強いられるのがデータベースのライセンスと保守料である。今やPostgreSQLの機能、性能は商用データベースに劣らない」と話し、今後オープンソースデータベースを採用する企業が増えるのは必至だと見ている。
企業システムにオープンソースデータベースを導入するなら、当然ながら技術者が必要になる。日経コンピュータの調査によると、ユーザー企業のシステム部長が技術者に取得してほしい資格の1位がITIL、2位がXML、3位にOSS-DB技術者認定試験がランクインした(3位には同ポイントでISMS(審査員補)も)。成井氏は「OSS-DB認定は差別化された個人および企業の証である」と強調した。
PostgreSQL 9.3の新機能、目玉は「マテビュー」こと、マテリアライズドビュー
基調講演ではPostgreSQLの最新状況が解説された。9月9日には最新版となるPostgreSQL 9.3がリリースされたところだ。PostgreSQLに携わり9年、国内外のPostgreSQLカンファレンスへ参加し、PostgreSQLの研修講師も務めるNTTソフトウェアの勝俣智成氏が、PostgreSQL 9.3のポイントを解説した。
PostgreSQL 9.3では150もの新機能追加や機能改善がなされており、なかでも目を引くのがマテリアライズドビュー(通称「マテビュー」)と更新可能ビュー、レプリケーション改善となる高速フェールオーバーなどだ。
最大の目玉となるのがマテビュー。クエリの結果をキャッシュしたビューであり、頻繁にアクセスするのであれば結果がキャッシュされているので有効となる。またマテビューにはインデックスを定義することができるため、集計も高速化できる。
ただし元テーブルが更新されても自動的にマテビューを更新する機能はないため、ビューはキャッシュしたときのままである。「REFRESH MATERIALIZED VIEW」コマンドで更新する必要がある。またマテビューを更新するにしても、差分のみを更新するようにはなっていない。現段階ではほぼ最初から作り直すような仕様になっているので注意が必要だ。次バージョンの9.4では差分のみを更新するような高速化に向けて開発が始められているとのこと。
続いて更新可能ビュー。PostgreSQL 9.2まではビューは参照しかできなかったが、PostgreSQL 9.3から更新も可能となった。一定の条件を満たせば更新できるビューを定義することができる。ただし以下の条件にあてはまると更新可能とはできず、参照のみのビューとなる。例えば「FROM句の指定が1つのテーブルもしくは更新可能ビューになっていない」、「最上位レベルでWITH、DISTINCT、GROUP BY、HAVING、LIMIT、OFFSETが使われていない」、「最上位レベルで集合操作が使われていない」などである。
もし更新可能ビューを使用するのであれば「移行時に注意が必要です」と勝俣氏は注意を促す。9.3ではビューのデフォルトが更新可能ビューとなるため、9.2以前で参照用に使用していたビューがバージョンアップすることにより更新可能ビューになる可能性があるからだ。適切な権限設定を施すなど注意が必要だ。
それからレプリケーション改善として高速フェールオーバー機能が追加された。9.2までのフェールオーバー処理ではpromote、recovery、checkpointの処理が終了してから、ようやく更新可能な状態となっていた。9.3からはrecovery処理が終われば更新可能となる。checkpointは後で実行することができ、checkpoint処理を待つ時間がまるまる省かれるため高速化が見込まれる。
ただしこうした処理のありかたについてはコミュニティ内部でも賛否両論あるそうだ。そのため従来型(9.2と同じ)のフェールオーバーも9.3では併存となっている。ほかにもレプリケーション改善策として、9.3では故障検知を迅速化できる「wal_sender_timeout」(9.2では「replication_timeout」)や「wal_reciever_timeout」(新設)というパラメーターが提供されている。
少し気が早いものの、PostgreSQL 9.4についても少し言及があった(ただし9.4の開発は始まったばかりなので変更になる可能性もある)。9.3までのPostgreSQLでレプリケーションを行う場合は物理レプリケーション(同じデータベースクラスタ)となるためテーブル単位では行えないことになっている。そのため9.4以降では異なるデータベースクラスタ間でのレプリケーションやテーブル単位のレプリケーションも可能となりそうとのことだ。今後レプリケーションの選択肢が増えていきそうだ。
勝俣氏は最後に「今後PostgreSQLがエンタープライズの領域で利用されることを期待しています」と述べて結んだ。
気になるOSS-DB Gold試験対策は?
午後はOracle Database技術者向けのPostgreSQLの講演が続いた。Oracle DatabaseとPostgreSQLの親和性および違いの解説、ハイエンドサーバーにおける性能向上策やPosstgreSQLへの移行に関する解説などが語られた。
最後の時間帯はOSS-DB技術者認定試験対策をSilver向けとGold向けに開催した。Gold向けはGold取得者でもあるNTTソフトウェア 河原翔氏がポイントを解説した。河原氏は冒頭からOSS-DB Goldについて「簡単な試験ではありません」ときっぱりと断じた。理由としてまだ教材が少ないこと、それゆえに受験者が自分の到達度を把握しづらいということにもなるそうだ。しかし教材や資料は徐々に増えつつある。今後は河原氏もGold向けセミナー講師として活躍するとのこと。Gold試験対策教材の充実が期待されている。
さてGold試験対策である。Gold試験は対策本や認定教材さえあれば合格できるというものではない。最も確実な方法は、どの試験でも共通している通り認定校の研修受講や認定教材で学習することだ。とはいえ、認定校での研修は必須ではない。
自己学習も可能だ。ただし認定研修や認定教材ほど整備されていないため簡単ではない。教材となりうるものを強いて挙げるならば公式ドキュメント、および市販本になる。公式ドキュメントは紙で印刷すれば数千ページにもおよぶほど膨大な資料である。効率よく読み進めていく必要がある。ポイントとしては最新バージョンに対応したドキュメントを読むのがいいそうだ。同じ内容でも最新バージョンのドキュメントではページレイアウトの整備が進んであり読みやすい。また試験ではバージョンに依存するような問題はないとのことなので、最新版で読解を進めていくのが堅実だ。コツとしてはGoogleのサイト内検索を使うこと。公式ドキュメントはWebページで提供されるため、Google検索が有効だそうだ。
河原氏の講義ではログ先行書き込みに関して実機デモを交えながら解説された。最後には勉強に便利なコマンドが紹介されるなど、短時間で試験対策のポイントを押さえた内容となっていた。会場はどこも満席でOSS-DB技術者認定試験への関心の高さがうかがえるイベントとなった。益々PostgreSQLの普及が広がることは間違いなさそうだ。