1. ホーム >
  2. ブログ ~人材育成最前線~ >
  3. 【いま求められる人材】講師、野口が語る今さら聞けないPostgreSQLの秘密

【いま求められる人材】講師、野口が語る今さら聞けないPostgreSQLの秘密

[2014年3月27日]

 ブログをご覧の皆さん、こんにちは、富士通ラーニングメディアの野口です。

今回は、多くの企業が注目しているOSS(オープンソースソフトウエア)をテーマに、その製品の1つであるPostgreSQLを中心に語っていきたいと思います。
OSSに注目が集まるのは、商用の製品に程近い機能を有していながら、安価に導入できるというのが一番の理由です。

そんなOSSの中でも私が愛するPostgreSQLをいろんな方へ広めたく、今回筆を取らせて頂きました。「名前だけは聞いたことがある」という方は、どんな製品なのかを知るきっかけになれば幸いです。

 

野口講師

ちなみに私はこんな人

第二ラーニングサービス部:野口 耕佑

Linux系コースで講師デビューを果たし、OSS絡みでPostgreSQLと出会い、
データベースの世界へ足を踏み入れる。
Linuxのマスコット(ペンギン)とお腹周りが似てきたと先輩講師に揶揄されて、週末に妻とジムへ通う。

 

<OSSってそもそもナンダ!?>

OSS(オープンソースソフトウェア)はソースコードがインターネット上に公開され、ある条件を満たせば自由に改良や再配布が認められているソフトウェアです。世界中にいる有志の技術者たちが、メーリングリストなどでやりとりをしながら、機能拡張やバグ修正を行ってくれています。
今、この瞬間にも進化を遂げているかもしれません。故に、商用の製品を凌駕する可能性を秘めているとも言える、期待に満ちた存在なのです。

 

<PostgreSQLってナンダ!?>

PostgreSQL(ポストグレエスキューエル)は、OSSのデータベース製品です。よく「ポスグレ」と略されます。UNIX/Linux や Windows などさまざまなOSで動作し、基本的なSQLは他の製品と同じように使えます。
PostgreSQLは無償で使えますが、企業向けに、ベンダー独自の機能やサポートサービスを追加した商用のPostgreSQLもあります。

近年では、大規模なクラウド環境に用意するデータベースとして、PostgreSQL の採用事例が増えています。

 

<どうして近年PostgreSQLが採用されるのか>

コストを理由に採用されるケースが多いようです。
商用のPostgreSQLは多少費用がかかりますが、機能やサービスも充実してきており、他の商用データベース製品よりもずっと安価です。

商用のデータベース製品としてシェアの大きい「Oracle Database」は、高い性能・信頼性・拡張性のある製品ですが、その反面、ライセンス費用が高いという特徴があります。
クラウド環境上に何百台とデータベースサーバを構築しようとすると、それだけライセンス費用が積みあがってしまいます。(それはもう、何千万、何億という世界に。。。)

クラウドほどの大規模環境でなくとも、コスト削減が一層求められる昨今、システムの要件によっては、「PostgreSQLの持つ機能で十分」という場合もあり、一昔前に比べると、性能改善や機能拡張もされているため、さまざまな企業の業務システムへの採用事例も増えています。

 

<PostgreSQLはどれくらいお得?>

では、どの程度のコスト削減が見込めるのでしょうか?
一概には言えませんが、事例はいくつか公開されています。たとえば、EnterpriseDB社が販売している「Postgres Plus Advanced Server」は、商用の製品でありながら Oracle Database よりも安価に導入し、運用することができます。同社のWebサイトでは、80%以上のコスト削減が実現できるという試算を見ることができます。

http://www.enterprisedb.co.jp/solutions/oracle-postgresql-business-case

商用の製品には、SRA OSS社と富士通が開発した「PowerGres Plus」もあります。コストの比較について明確な情報はありませんが、それでもかなりお安いです。

 http://powergres.sraoss.co.jp/s/ja/product/product.php

 

<PostgreSQL と Oracle Database>

この2つの製品の比較は、講習会でよく要望として挙がるのですが、類似している点の1つとして、プロセスの構造があります。
たとえば、両製品ともクライアントの接続要求を受け付けて子プロセスを生成する親プロセスがあり、PostgreSQL では postmaster、Oracle Database ではリスナープロセスと呼びます。そしてクライアントのSQLは、子プロセスが処理します。その他、メモリ上のテーブルデータや更新後ログの書き込み、更新後ログファイルのコピー(アーカイブログの取得)を行うバックグラウンドプロセスも、似たものが存在しています。

イメージ図

このような特徴から、Oracle Database を知っている人は、PostgreSQL を習得しやすいという特徴があります。
さらに、コスト削減などの理由から、Oracle Database → PostgreSQL への移行を考えている企業も増えています。
そういった背景もあり、PostgreSQLの講習会では Oracle Database の経験者の方が多いです。

とはいえ、当然製品による違いも存在します。
たとえば、データベースなどのオブジェクトは「スキーマ」という単位で管理されますが、PostgreSQL と Oracle Database とでは管理の仕方が少し異なります。

PostgreSQL は、デフォルトで public スキーマというものが存在し、
ユーザが作成するオブジェクトは1つのスキーマに格納されます。それに対して Oracle Database では、ユーザを作成するとユーザ独自のスキーマが割り当てられ、ユーザが作成するオブジェクトはそれぞれのスキーマに格納されます。
(PostgreSQL のsearch_path というパラメータを変更すると、ユーザ独自のスキーマに格納することも可能です)
この点は、講習会でもよくご質問を頂きますね。


<最近のPostgreSQLの動向>

現在 バージョン 9.3 がリリースされていますが、バージョン 9.2 から大幅な性能改善が行われ、1~2年前ぐらいにニュースになりました。たとえば、次のようなものが話題になりました。

 ・CPU64コアまでスケールアップ可能
 ・Index Only Scan の追加
 ・カスケードレプリケーションの追加 など

イメージ図

 

イメージ図

では、実際にどのぐらいの性能が出るのか、気になる方もいると思います。
そんな方は、「PostgreSQLエンタープライズ・コンソーシアム」という団体が公開している資料が参考になります。

 https://www.pgecons.org/

「PostgreSQLエンタープライズ・コンソーシアム」は、2012年に発足した、PostgreSQLの普及を推進する団体です。
富士通も理事企業として参画しています。定期的にセミナーも開催しています。

なお、ベンチマーク結果は「WG1 活動報告書」という形で公開されています。

 https://www.pgecons.org/download_main/

皆さんも参考にしてみてくださいね。
さて、色々な情報をこれまでお伝えしてきましたが、こうした知識を身に付けるのも一日にしてならずで、やはり苦労しました・・・・そこで、どうやって勉強したか実はコツがあるんです。驚く方もいらっしゃるかもしれませんがこんなことやってました・・・

 

<PostgreSQLの勉強方法>

いろいろな書籍で勉強しましたが、なにより実機検証を何度も行いました。

自宅にあるノートPCにフリーの仮想化ソフトを入れて、その上にLinuxやPostgreSQLをインストールして、データべースサーバを構築していました。
(すべて無償なので、とてもお得な気分でした)

構築した後は、コンセントが使えるカフェを探し、カフェラテを飲みながらSQLを何度も打って勉強していました。また、仮想環境なので2台目のサーバもさっとコピーして、レプリケーションを試しクラスタ構成の勉強もしていました。(カフェにいる他のお客さんからすると、不思議なことをやっている人に見えたでしょう。。。)

最近だとVPSサービスを利用して、インターネット上にPostgreSQLサーバを立てたりしています。1日何十円で環境を借りられるサービスもあるので、かなりお安いです。

それでは、名物コーナーのオススメ書籍コーナーです。

【基礎を学びたい方へ】

PostgreSQL徹底入門 第3版
笠原 辰仁 (著), 北川 俊広 (著), 坂井 潔 (著), 坂本 昌彦 (著), 佐藤 友章 (著), 石井 達夫 (監修)
出版社: 翔泳社; 第3版 (2011/2/2)
言語: 日本語
ISBN-10: 4798123358
ISBN-13: 978-4798123356

【内部構造など詳細を学びたい方へ】

PostgreSQL全機能バイブル
鈴木 啓修 著
出版社: 技術評論社 (2012/11/16)
ISBN-10: 4774153923
ISBN-13: 978-4774153926

【その他】

インターネット上の日本語マニュアルが充実しています。
http://www.postgresql.jp/document/

 

<最後にPostgreSQLコースのご紹介>

最後に、私たち講師がご提供しているコースたちをご紹介します。

PostgreSQLのインストールから運用管理の基礎まで!学びたい方は
PostgreSQL導入トレーニング

データベース管理とパフォーマンスチューニングを実習で習得!したい方は
PostgreSQL運用管理トレーニング

受講者の皆さまとお会いできる日を楽しみにしております。

月別アーカイブ