こんにちは。技術部の髙岡です。
11/22(金)に八重洲で開催された「PostgreSQL Conference Japan 2018」を聴講してきました。
各プログラムの概要や感想、今後の期待を書いてみたいと思います。
カンファレンスの説明と全般的な感想
PostgreSQL Conferenceは、日本PostgreSQLユーザ会が毎年開催している技術者向けの講演会で、私は今年初めて参加しました。
有償なのですが、PostgreSQLを積極的に活用している企業の有識者が、ノウハウや検証結果を共有してくれました。
運営スタッフや講演者は企業に属する方々ですが、営利を目的としたイベントで無いにも関わらず、
これだけの情報を提供してくれるのは、やはりOSSのコミュニティは素晴らしい組織だと思いました。
カンファレンスを受講して、PostgreSQLが完全に商用DBを代替することができる、と言い切ることができませんでした。
しかし、性能面や可用性についての機能が充実してきており、PostgreSQLを企業の基幹システムで使用しても商用DBと比べて見劣りしない機能が揃ってきたな、と今後に期待を感じさせるものでした。
OSSなのでライセンス費用はかからないのがとても魅力的ですが、相応のスキル、または何らかのサポートが無いと運用が難しいと思います。PostgreSQL技術者は、日本でも少ないのが現状だそうです。
プログラム一覧
【K1】【 基調講演 】 より速く・より大きく・より強く ~企業ユーザから見たPostgreSQLの歴史と展望 NTT OSS センタ 坂田 哲夫
【K2】【 プラチナスポンサー様講演 】 Open to more Microsoft Corporation 藤田 稜
【A1】 MySQL から PostgreSQL への移行と DB リファクタリング 株式会社オミカレ 高橋 一騎
【A2】 EDB Postgres はここまできた!パフォーマンス問題解決のヒント 株式会社アシスト 佐瀬 力
【B3】 Citus を使って PostgreSQL をスケールアウトしてみよう 日本ヒューレット・パッカード株式会社 篠田 典良
【B4】 PostgreSQLのパーティショニングはどのようにして大量のデータを扱うか?-パーティショニングの実力とこれから- 富士通株式会社 加藤 翔 今井 良一
各プログラムの概要とコメント
【K1】【 基調講演 】 より速く・より大きく・より強く
今回のカンファレンスで最も勉強になったプログラムでした。
PostgreSQLの開発の歴史とNTT内での活用、今後の課題についての話です。
バージョン7.4以降のPostgreSQLの開発の歴史の説明をしていたき、今聞いていみると、とてもじゃないが実運用に耐えることができないのでは?と思わせるような貧弱な実装であったことを知って、驚きました。
クラッシュリカバリから復旧する手段が無い、スケールしても性能出ないとか。。。
そこから、OSSコミュニティに関わる皆様の尽力により、上記を含めた問題が今では解決されており、
NTT内の基幹系に近いシステムでもPostgreSQLを活用しているとのことでした。
インターネット、IoTの発展に向けた今後のPostgreSQLの課題は、大規模データとクラウド対応とのことでした。
【K2】【 プラチナスポンサー様講演 】 Open to more
11/16(金)に私が聴講してきた北東アジアOSS推進フォーラムでも講演された藤田様が登壇されました。
藤田様の話は、いつもながら堅苦しくなく、冗談も交え、メリハリもあり、つい聞く者を引きつけてしまうような説明でした。私が発表するとメリハリが無いと言われることがあるので、話し方がとても勉強になりました。
マイクロソフト様は、今回のカンファレンスのプラチナスポンサーでもあり、PostgreSQLを始めとしたOSSの活用にとても力を入れていることがわかりました。
さて、説明の方は、Azureの使用できるマネージドDBの一つであるPostgreSQL関するものでした。
マネージドDBのPostgreSQLでは、導入からスケールアップ、スケールアウトまで、簡単なGUI操作で実現できてきることをデモを交えて説明してくださいました。
最後のQAでは、裏では何のOSが動いているのか?Windowsであれば性能に問題があるのでは?と質問された方がいました。
実は、私も気になっていたのですが、答えはWindowsベースのコンテナでした。
しかし、WinodwsベースのPostgreSQLは本当に性能が出ないのでしょうか?
最近では、性能面ではLinuxとほとんど差が無いという話を聞いたことがありますので、機会があれば検証してみたいと思います。
【A1】 MySQL から PostgreSQL への移行と DB リファクタリング
MySQL から PostgreSQL への移行事例の紹介です。
移行先としてPostgreSQLを選んだ理由は、トリガーの機能が優れているため、とのことでした。
【A2】 EDB Postgres はここまできた!パフォーマンス問題解決のヒント
題名にはEBDと書いてありますが、ほぼPostgrSQLの話と考えて差し支え有りません。
EDBに依存するのは、SQL文のHINT句を使えることくらいでした。
OracleDBからPostgreSQLへ移行した際の相談で、非互換や構築に次いで、性能に関する相談が多いとのことでした。
具体的な事例をいくつかご紹介してくださったので、今後の役に立ちそうです。
【B3】 Citus を使って PostgreSQL をスケールアウトしてみよう
商用DBでも提供している製品が限られているDBのスケールアウトについての話だったので、更新系への対応状況にとても期待しておりました。
Citusは、複数ノードにまたがったパラレルクエリーとパーティショニング機能に依存したOSSとのことです。
ただし、SELECT FOR UPDATEが使えない、ISOLATION LEVELがREAD COMMITED固定でハードコードされている、等々、様々な制約があるそうです。
実際に採用するには、これらの制約があっても問題ない、使いこなせると判断できるレベルのスキルが必要で、適用できるユースケースも限定されるのではと感じました。
Citusを使うよりは、スケールアップしたほうがいい、とも、講演者の篠田様がボソッと、コメントされていたくらいです。
講演資料は、以下にアップされております。
【B4】 PostgreSQLのパーティショニングはどのようにして大量のデータを扱うか?-パーティショニングの実力とこれから
PostgreSQLのパーティショニング機能の説明と、商用DBと比べたパーティショニングへの参照・更新性能を実機検証で比較してみた、という話でした。
PostgreSQLの10までは、実運用に耐えうるパーティション数が一桁台でしたが、11では数十、開発中の12では数千でも実運用の耐えうる性能が出たそうです。
PostgreSQLへの今後の課題と期待
最初の講演でNTT OSSセンタの坂田様が説明されていた通り、広い視点でいうと、大規模データへとクラウドへの対応がPostgreSOLの今後の課題なのではと思います。
狭い視点となりますが、個人的に最も期待しているのは、商用DBでも実装された製品が限られている更新系スケールアウトへの対応です。
先に触れましたCitusでは制約が多すぎるし、Postgres-XLは可用性に対応してません。決め手となる機能が未だ無いのです。
大規模データへの対応として、参照系はパーティションの機能が充実してきたので、次は更新系への対応に期待したいと思います。