3.3K Views
May 31, 25
スライド概要
PostgreSQL17の話題を中心に
日本PostgreSQLユーザ会
PostgreSQL 最新情報 Open Source Conference 2025 Nagoya 2025-05-31 10:00 - 10:45 第3会議室 (1) (4F) 日本 PostgreSQL ユーザ会 名古屋支部 福島克輝 1
本日の話題: ● WSL で PostgreSQL を使う TIPS ● PostgreSQL 16 までのおさらい ● PostgreSQL 17 新機能 ● Etc. 講演者: ● 福島克輝(ふくしまかつあき) ● 日本 PostgreSQL ユーザ会名古屋支部 ● 株式会社セイノー情報サービスにて仕事は主に技術支援 2
WSL で PostgreSQL を使う ● Windows には WSL があるけどちょっと使いづらい!? ● PostgreSQL を自動起動させたい! /etc/wsl.conf に [boot] systemd=true を指定して systemd が有 効化できるので systemctl が使える! ● コンソール抜けると止まっちゃうぞ!? タスクスケジューラに wsl --distribution < 好きなの > --exec bash -c "sleep infinity" をシステム起動時をトリガーに登録 ● 外部からもアクセスしたい! \Users\< 自分のユーザ >\.wslconfig の [wsl2] に networkmirrored を追加 3
PostgreSQL とは ● 多機能、高性能、かつオープンソースの リレーショナルデータベース管理システム (DBMS) – INGRES('70),POSTGRES('80) 由来の歴史 – BSD タイプのライセンス – 特定オーナー企業が無い ある種の OSS 開発体制 企業 企業 企業 PostgreSQL 製品 開発者 企業 PostgreSQL 開発体制 4
最新のバージョン 2025/5/8 に以下のバージョンをリリース – 17.5 、 16.9 、 15.13 、 14.18 、 13.21 ● 13 のサポートは 2025/11/13 まで ● PostgreSQL のサポート期間はイニシャルリリース 日から 5 年間です ● 2025/5/8 に PostgreSQL 18 Beta 1 リリース ● 5
近年 16 までの機能拡張 ● 運用管理強化 ● ● ● ● ● ロジカルレプリケーションとその強化 (10 - 16) 進捗モニタリング pg_stat_progress_* (10 – 15) 大規模対応 ● パラレルクエリ対応と強化( 9.6 - 16) ● テーブルパーティショニング対応と強化 (10 – 16) 基礎機能強化 ● 拡張統計情報 (12 - 15) ● Btree インデックスの重複除去、肥大化防止 (13 – 15) SQL 構文追加 ● MERGE 文 (14) 6
多 年 2016 CPU 年 ロック改善 WAL 書込改善 改善 2012 環境 :2x Xeon E52699v4 (44 cores / 88 Threads) 64G RAM NVMe SSD Debian 12.7 ext4 gcc 12.2.0 出典 : Performance Archaeology PostgreSQL Conference Europe 2024 https://www.postgresql.eu/events/pgconfeu2024/sessions/session/5585-performance-archaeology/ 7
PostgreSQL 17 の新機能 新機能は多岐に渡るので、ここでは以下 4 点につ いて代表的なものを紹介します。 ● ロジカルレプリケーションの拡張 ● SQL 機能の拡張 ● サーバ性能向上 ● 運用管理 8
17 ロジカルレプリケーションの拡張 ● フェイルオーバーに対応 ストリーミングレプリケーションを行っている環境でフェ イルオーバーが発生した場合に対応 ● pg_upgrade によるメジャーバージョンアップ対応 ロジカルレプリケーションの設定を引き継いでバージョ ンアップが可能(ただし旧バージョンが 17 以上が前提 ) ● pg_createsubscriber コマンド追加 ストリーミングレプリケーションのスタンバイサーバを元 にしてのロジカルレプリケーションサブスクライバの作 成に対応 9
17 SQL 機能の拡張 ● SQL 標準に基づく JSON 標準実装の強化 JSON データを処理する関数及び jsonpath メソッドの追 加(他の DB との互換性向上 ) ● MERGE 文の拡張 MERGE で RETURNING 句の指定が可能になり、影響を 受けた行が返る ● COPY FROM に ON_ERROR オプション追加 ON_ERROR オプションに ignore を指定することで、エ ラーがあっても正常行のみ取り込み可能に 10
17 サーバ性能向上 ● VACUUM 処理の高速化 新しいメモリ構造を採用することで、メモリ使用量を低減化 し処理時間も高速化、 WAL の出力量も軽減 ● WAL 排他処理の改善 WAL 書き出しの排他制御が効率化され、多数の書き込 みトランザクション同時実行時の処理性能の改善が期 待できる ● 各種プランナの改善 CTE プラン、相関 IN 句サブクエリ、 GROUP BY などの 最適化が図られ、クエリ実行時間の向上が期待できる 11
17 運用管理 ● 定義済 pg_maintain ロール、 MAINTAIN 権限追加 メンテナンスユーザにスーパーユーザー権限を与える 必要がなくなり、セキュリティの向上が図れる ● インクリメンタルバックアップ対応 増分バックアップが利用できるようになり、前回取得した ベースバックアップからの差分のみを取得することがで きるようになった 12
PostgreSQL 17 新機能の詳細について SRA OSS さんが Tech Blog にて「 PostgreSQL 17 検証報 告」をアップされていますので、こちらを参照してみてくださ い。 ● https://www.sraoss.co.jp/tech-blog/pgsql/pg17report/ 日本ヒューレット・パッカードの篠田さんが篠田の虎の巻 「 PostgreSQL 17 新機能検証結果 (GA) 」をアップされてい ます。こちらも大変参考になります。 ● https://github.com/nori-shinoda/documents/blob/main/p ostgresql17_ga_new_features_ja_20240930-1.pdf 13
PostgreSQL のレプリケーション DB サーバ DB サーバ DB テーブル単位 論理レプリケーション 行限定、列限定 など機能拡張 14 10 から から インスタンス単位 WAL ストリームによる 物理レプリケーション 9.0 サーバ DB シングルプライマリ マルチスタンバイ から サーバ DB サーバ pg_rewind 9.5 同期スタンバイ を指定可能 9.1 論理・物理連携 17 から DB から クォーラム指定 (内何台に 書込したら) 10 から サーバ DB から カスケード 可能 サーバ 9.2 から 14
PostgreSQL クラスタ構成 ● ● HA クラスタ ● Pacemaker 等の各種 HA クラスタソフトで対応 ● k8s と k8s オペレータ MPP クラスタ(シャーディング - データ分割格納) ● ● Citus (Azure Hyperscale) ● Postgres-XL ● GreenPlum 本体機能でも 外部テーブル+パーティショニングで 相当程度シャーディングが可能 PostgreSQL ロードバランサ ● Pgpool-II (制限あるが参照用に L3 汎用ロードバランサも有) 15
PostgreSQL の運用監視 pg_statsinfo ● pg_monz (Zabbix) ● pg_badger ● DataDog Makerel ● 、 より https://www.postgresql.jp/sites/default/files/2017-01/ B1_PGCON_JP_kondo_nttoss.pdf り https://www.sraoss.co.jp/technology/zabbix/introduction/pg_monz.php よ 16
PostgreSQL のクライアントツール https://www.pgadmin.org/screenshots より ● pgAdmin 4 ● 各種商用製品 PostgreSQL 対応 ● ● Navicat for PostgreSQL ● SI Object Browser for Postgres A5:SQL Mk-2 17
PostgreSQL でやや困難なケース ● データ投入性能の限界 ● ● インスタンス分割で対応。 OLTP 性能の限界 ● ● ● IOT 方面/投入量要件と構成によっては専用製品に – WAL に直列的に書く設計であるため → 改善は続いている。 大メモリや多 CPU コアを活かしきれない場合 – 遅いストレージ格納を前提とした基本設計に起因 改善は続いている。 現状で不足なら負荷を 他に逃がす対応で。 スケールアウトが難しい → HA クラスタにおける高度要件 ● 障害復旧時間の最小化要件 – 10 秒以内の切替など → トレードオフを許容すれば 実現不可ではない 18
PostgreSQL クラウド / コンテナ ● クラウドサービス ● Azure Database / Azure Cosmos DB ● AWS RDS / Aurora ● GCP Cloud SQL / ● K8s オペレータ ● KubeDB ● CrunchyData/ postgres-operator ● AlloyDB ● Zalando/postgresoperator Cloud Native PostgreSQL (EDB) 19
PostgreSQL 互換 / PostgreSQL ベース ● PostgreSQL 互換 DB ● ● PostgreSQL ベース DB 製品 GCP AlloyDB, ● EnterpriseDB (EDB) Spanner ● Enterprise Postgres (Fujitsu) AWS Aurora, Redshift ● ● Yugabyte ● CockroachDB ● 劔 ● PowerGres Plus (SRAOSS) ● GreenPlum 20
コミュニティと商用サポート ● ● ● 開発コミュニティ (Mailing List, Git, Slack) (PostgreSQL Global Development Group) 国内のコミュニティ活動 – 日本 PostgreSQL ユーザ会 (JPUG) – PostgreSQL エンタープライズ・コンソーシアム ( PGECons ) 国内の商用サポート – 提供会社いくつかあり、取り扱い会社多数 21
ユーザ動向 ● JPUG による利用調査 2022 年版 22
ユーザ動向 ● JPUG による利用調査 2022 年版 現在お使いの、あるいは、導入しようとして いるデータベースシステムが稼動する環境 は?(複数回答) 現業務でデータベースソフトウェアを使 う際の OS を教えてください(複数回 答) 23
ユーザ動向 24
JPUG の活動 ● イベント ● ● ● ● ● ● ● ● PostgreSQL アンカンファレンス - オンラインで毎月開催 PostgreSQL カンファレンス - オンサイト開催を続けました PostgreSQL 勉強会 - 各地支部で年1回~数回 合宿 OSC など各種イベントに出展(通年) 文書翻訳 https://github.com/pgsql-jp/jpug-doc ML 運営 [email protected], [email protected] ● 最近は Slack postgresql-jp が中心 Web サイト ( www.postgresql.jp 、 lets.postgresql.jp ) 25
ご清聴ありがとうございました m(_'_)m 26