2016年12月8日木曜日

PostgreSQLエコシステムの可視化・拡大への挑戦

これは Fujitsu extended Advent Calendar 2016 の 13日目の記事です。

すごい機能・性能、もうひとつな人気

コミュニティの長く懸命な努力のおかげで、PostgreSQLは既存の強い商用製品に匹敵するほどのすばらしいソフトウェアに進化し続けています。

では、オープンソースのデータベースとPostgreSQLがどれくらい人気か知っていますか?次の記事をご覧ください。

Open source threatens to eat the database market

ガートナーによると、オープンソースのデータベースは、データベース市場に影響を与えるほどに人気を獲得してきています。たとえば、プロプライエタリなRDBMSの市場は2014年に5.4%成長したのに対し、オープンソースのデータベース市場は31%伸びて5億6200万ドルに達したといいます。オープンソース・データベースは、リレーショナル・データベースの使用の25%を占めるそうです。

さまざまなデータベースの人気を集計しているDB-Engines.comというサイトによれば、PostgreSQLの人気は第4位です(2016年12月1日時点)。

DB-Engines Ranking

しかし、上位3つのデータベースであるOracleとMySQL、SQL Serverは、4~5倍もの人気があります。ちなみに、5位はMongoDBで、その人気点数はPostgreSQLとほぼ同じです。

問題は利用可能なアプリケーションの情報の少なさ

PostgreSQLの人気を高めるにはどうすればいいか?商用製品からオープンソースへの移行のトレンドを活かすには、PostgreSQLは商用データベースとともに使われる多くのソフトウェアと連携できる必要があります。

しかし、問題があります。PostgreSQLとともに使えるアプリケーションについてのまとまった情報が少ないのです。情報だけでなく、実際に利用可能なアプリケーションも、他の有力データベースに比べると少なそうです。PostgreSQLコミュニティのMLでこのことをたずねたところ、他のPostgreSQL開発者の中にも同様に感じている人たちがいました。たとえば、

  • わずか24のオープンソース・プロジェクトが、PostgreSQLを使用しているとして挙げられています。
    Open Source Projects Using PostgreSQL
  • 約120のソフトウェアが Software Catalog に登録されています(PostgreSQL専用のソフトウェアは除く)。しかし、同じファミリーの製品を1つと数えると、実際の数は100を下回るでしょう。また、古い情報を取り除いたりして今でも有用なソフトウェアに絞ると、実際の数はもっと少なくなるとみています。
  • EnterpriseDB社でさえ、わずか 12の認定アプリケーション・ベンダー を持つのみです。
  • PostgreSQLエンタープライズ・コンソーシアムは 約30ほどの製品 を一覧しています。
  • MySQLは 2000以上のISVやOEM、VAR を誇っています。

つまり、ユーザが商用データベースからPostgreSQLに移行したいとき、自分たちの資産をPostgreSQLで使い続けられるかについて不安を抱いたり、実際に移行を断念するのではないかと考えられます。多くのアプリケーションがJDBCやODBCのような標準インタフェースを通じて使えるかもしれませんが、ユーザは実際のところがすぐにはわかりません。

課題はエコシステム

1つの課題は、エコシステムの可視化と拡大だと考えました。そこで、PostgreSQLとともに使えるソフトウェアやクラウドサービスの登録簿を、PostgreSQLのWebサイトに作ることにしました。これはWikiで、だれでも自由に編集できます。

ここで、 そのWiki を少し説明します。Googleで"PostgreSQL ecosystem"で検索すると、検索結果の一番最初に出てきます。

トップページでは、ソフトウェアの分類が一覧されています。また、各ソフトウェアについての情報の見方(編集者にとっては記述形式)も記しています。

たとえば、この中で分散キャッシュを選びます。すると、PostgreSQLとともに使用できる分散キャッシュのソフトウェアの一覧が出てきます。そこでは、各ソフトウェアの作成者やWebサイト、ライセンス、連携できるPostgreSQLのバージョンといった基本属性と、追加情報へのリンクが見られます。

ただし、このWikiはまだ生まれたばかりであり、内容はまだまばらです。PostgreSQLと連携できる可能性の高い280ほどのソフトウェアを一覧しましたが、実際に連携できるかどうかを確認したのはまだ14のソフトウェアのみです。

情報を充実させるためのお願い

連携できることがわかったソフトウェアがあれば、ぜひここに情報を追加していただきたいです。PostgreSQLは特定のベンダに支配されていない、みんなのオープンソース・ソフトウェアです。情報を充実させるには、みなさんの力が必要です。ぜひ、ご協力をお願いいたします。

なお、PostgreSQLと連携させたいソフトウェアがあれば、アンケートを通じて私たちに教えてください。トップページにアンケートへのリンクがあります。同じ場所からリンクされているスプレッドシートで、アンケートの結果をリアルタイムに見られます。

おまけ: アンケートの仕組み

先述のオンライン・アンケートは、Googleフォームで作りました。回答者はまずソフトウェアのカテゴリを選び、次にそのカテゴリに含まれるソフトウェアを選択しの中から選びます。選びたいカテゴリまたはソフトウェアが選択肢になければ、「その他」を選んで、テキストボックスに新しい選択肢の名前を入力して追加できます。

でも、Googleフォームだけでは、このように動的に選択しを追加することはできません。簡単にタネあかしをすると、次のような感じです。

  • Googleフォームで、回答をGoogleスプレッドシートに記録するように設定。
  • 回答が記録されるスプレッドシートにトリガーを追加し、onFormSubmitイベントを処理。トリガーは以降のことを行う処理をGoogle Apps Scriptで記述。
  • このトリガーは、新しい回答からソフトウェアのカテゴリと名前を取り出す。
  • 指定されたカテゴリがすでにあるかどうかを、Categoryシートで探す。このとき、Categoryシートがまだなければ追加(最初の回答の場合)。
  • もし新規カテゴリなら、Categoryにそのカテゴリの行を追加するとともに、アンケート・フォームの選択肢にもカテゴリを追加。また、そのカテゴリ用のシートを作成。
  • 指定されたソフトウェアがすでにあるかどうかを、該当のカテゴリのシートで探す。
  • もし新規ソフトウェアなら、該当カテゴリのシートにそのソフトウェア用の行を追加するとともに、アンケート・フォームの選択肢にもソフトウェアを追加。シートで回答数をカウントアップ。

スクリプトは170行ほどです。このような拡張性のあるサービスを無料で利用できるのは、本当にすばらしいことです。

おまけ: PGConf.ASIAでLTしました

今年2016年は、PostgreSQL生誕20年の記念すべき年です。そのような年に、世界中のPostgreSQLのユーザと開発者が集うカンファレンス PGConf.ASIA が、秋葉原で盛大に催されました。

その最終日のLTセッションで、この記事で取り上げた話題をお話させていただきました。海外の方々もこられるので、LTの他の話し手もみな英語でしゃべるかと思い、私も懸命に英語で話す内容を覚えていきました。

しかし・・・他の人たちはみな日本語でやってました!がっくし。でも、よい経験をさせていただきました。主催者の方々には、貴重な機会を与えてくださったことに感謝いたします。

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿