こんにちは。インプリムのhmineです。
ふだんはOSSのノーコード・ローコードツール「プリザンター」に機能追加をしています。
PostgreSQL Conference Japan 2024に参加しました。
2024/12/6(金)にオフライン開催された「PostgreSQL Conference Japan 2024」。
インプリムはシルバースポンサー(展示あり)として参加しました。
私は展示ブースのメンバーとして参加しつつ、カンファレンスを現地で聴講しました。
大変楽しい一日でした!
講演を聴講しました。
■基調講演1 PostgreSQL 17とPostgreSQL開発最前線
PostgreSQL17が2024/9/26にリリースされた。
・https://www.postgresql.org/docs/17/release-17.html
Vacuum機能の改善、論理レプリケーション機能の改善や、増分バックアップ機能の追加といったニュースを、開発者自らが解説。
■基調講演2 AWS and the PostgreSQL community
PostgreSQLの開発コミュニティの体制について。
・全世界における開発者(発表者調べ):
コア:7名/コミッター:30名/
コントリビュータ(本体開発、周辺機能の開発、レビュー、翻訳 含む):450名超
セキュリティ:17名/インフラ:6名 ←これはコミュニティ活動専用システムの部隊。
・他にAdvocacy(支援者)が多数。
AWSの社員の一部には、PostgreSQLの開発専任者がいる。(基調講演者のAWS社員2名もそれに該当)
コードベースの開発規模は年々増加傾向にある。コミュニティでレビュアーを育成することが今後の課題。
■MySQL 8.0 から PostgreSQL 16 への移行と RLS 導入までの道のりと学び
機密性の高い情報を扱うSaaSを運営している、スタートアップ企業の事例。(運用のベースはAWS)
アプリケーションは人力で設計・実装されるものであるためミスが多い → DBの仕組みによる情報漏洩防止策が必要だった。
MySQLからPostgreSQLに移行したのは、MySQLでは漏洩を防ぐ仕組みが脆弱と判断したためである。
移行に併せてPostgreSQLのRow Level Security機能を導入した。
事前調査に力を入れていたことや、移行計画に余裕を持たせていたことが幸いし、スムーズに移行をすることができた。
■PostgreSQL でインデックスはどう使われるのか
SQL文の読取りから内部の実行処理まで流れを確認。
・パーサ → リライタ → プランナ → エグゼキュータ
処理の流れに着目し「なぜインデックスを追加したのに、SELECT文を高速化できないのか?」よくある原因を解説。
もし「遅いクエリ」を検知した際には、プランナーの実行計画を確認し、「インデックスが使われていないのではないか?」という可能性も疑ってみる。
■基礎から学ぶ PostgreSQL のバックアップ ―基本機能と運用設計
バックアップの手法について、単純なものから解説。
・オフライン物理バックアップ → DB停止後、OS上でファイルをコピーする。
・オンライン論理バックアップ → pg_dumpコマンド、pg_dumpallコマンドでSQL文を取得する。
・オンライン物理バックアップ → PostgreSQLの主力機能。WAL(先行書き込みログ)の理解がカギ。
バックアップとは、それを利用してリストア→リカバリできることが前提であり、リストア・リカバリの方式を併せて理解することが重要である。
感想
PostgreSQLの機能、AWS等のクラウドサービスが提供する機能の理解…と、やることは、いくらでも、たくさんあると思いました。
ふだん開発に関わっている「プリザンター」がPostgreSQLも使用できる(※)関係上、私の周りには、Windows版やLinux版のPostgreSQL、Dockerイメージ、クラウドサービスのPostgreSQLに触れる環境が整っています。
※:GitHubで配布しているモジュールを利用する場合、PostgreSQL・MySQL・SQLServerの中から、使用するDBを選択します。
※:なおプリザンターのSaaS版(Pleasanter.net)ではAzure SQL Database固定です。
公式ドキュメントはじめ、様々な事例で紹介されているPostgreSQLの機能をこれからも試していきたいと思います。