SlideShare a Scribd company logo
© 2023 NTT DATA Group Corporation
- 最新機能までを総ざらい!-
PostgreSQLの
注目機能を振り返る
2023/10/7
株式会社NTTデータグループ
小林 隆浩
© 2023 NTT DATA Group Corporation 3
アジェンダ
01. PostgreSQLリリースを振り返る(2021-2023)
02. PostgreSQL v14の注目機能
03. PostgreSQL v15の注目機能
04. PostgreSQL v16の注目機能
05. まとめ
(おまけ)各クラウドのバージョン対応状況
© 2023 NTT DATA Group Corporation 4
(セッションの注意事項)
⚫ PostgreSQL各バージョンの新機能全てを網羅した内容ではありません。
⚫ 全て知りたいという方は、以下を調べましょう。
⚫ 公式リリースノート
⚫ SRA OSS Tech Blog 「PostgreSQL 14/15/16 検証報告」
⚫ 篠田の虎の巻 「PostgreSQL 14/15/16 新機能検証結果」
各バージョンのリンクは、Let’s POSTGRESにまとまっています。
PostgreSQL14の新機能 | Let's POSTGRES
PostgreSQL15の新機能 | Let's POSTGRES
PostgreSQL16の新機能 | Let's POSTGRES
© 2023 NTT DATA Group Corporation 5
01.
PostgreSQLリリースを振り返る
(2021-2023)
5
© 2023 NTT DATA Group Corporation 6
サマリ:各バージョンの新機能
v15 (2022年) v16 (2023年)
①SQL
②ロジカル
レプリケーション
③性能改善
④バックアップ
⑤モニタリング
⑥ロール
• publicスキーマの権限変更
• MERGE
• REGEXP系
• 行/列フィルタ
• lsn指定の同期スキップ
• エラー時の無効化
• NOT INや外部ソート
• ¥copyの改善
• archive_module
• WAL/ pg_basebackup圧縮
• pg_stat_subscription_stats
• JSON形式のログ
• pg_checkpoint
• JSON関数、IS JSON
• ANY_VALUE
• libpq接続ロードバランシング
• スタンバイからレプリケーション
• パラレル適用
• 双方向
• パラレルクエリ、インクリメンタ
ルソートの拡張
• pg_dump圧縮(lz4/zstd)
• pg_stat_io
• pg_create_subscription
• pg_use_reserved_connections
v14 (2021年)
• SEARCH/CYCLE
• postgres_fdw
• ストリーム送信
• バイナリ転送
• Memoize
• Bottom-up Index
Deletion
• VACUUM改善
• pg_stat_wal
• pg_stat_progress_copy
• pg_read/write_all_data
© 2023 NTT DATA Group Corporation 7
02.
PostgreSQL v14の注目機能
7
© 2023 NTT DATA Group Corporation 8
紹介する新機能(PostgreSQL v14)
①新しいSQL(関数など)
②ロジカルレプリケーションの拡張
③性能改善
④WALやバックアップ関連の改善
⑤モニタリング関連
⑥ロールの追加等
v14
© 2023 NTT DATA Group Corporation 9
①新しいSQL(関数等)
⚫ SEARCH句とCYCLE句
✓ グラフのデータ構造に対して再帰的な問い合わせが
シンプルに書けるように。
✓ SEARCHで探索順序(幅優先/深さ優先)を
指定でき、CYCLEで循環参照の検出が可能。
⚫ パーティションデタッチ時のロック軽減
✓ ALTER TABLE … DETACH PARTITION CONCURRENTLY
✓ AccessExclusiveLockを取らなくなる。
v14
1
2
3
5
4
© 2023 NTT DATA Group Corporation 10
①新しいSQL(関数等) - postgres_fdw -
⚫ 外部テーブルのTRUNCATE
✓ truncatableオプションを指定可能、デフォルトはtrue
⚫ 外部テーブルの非同期スキャン
⚫ async_capableオプションで指定可能、デフォルトはfalse
⚫ Async Foreign Scanが同時並行で実行される。
⚫ 外部テーブルの一括コピー
✓ batch_sizeで指定可能、デフォルトは1
✓ 大量挿入時に1行ずつINSERT文が送信されていたが、これをまとめるように。
v14
© 2023 NTT DATA Group Corporation 11
②ロジカルレプリケーションの拡張 - streaming -
⚫ ストリーム送信
✓ 13以前はパブリッシャ側でファイルに書き込み、コミットで送信(大量変更時の性能↓)
✓ WITH (streaming = on)でコミットを待たずに順次変更を送信
v14
WALsender Apply Worker
デコード結果を保持 メモリの制限を超えると
デコードされた変更を
ストリーミングで送信
残りの変更を送信
適用した変更のCOMMIT
変更を一時ファイル(changes)
に書き込む
変更を読み取り適用
パブリッシャ サブスクライバ
© 2023 NTT DATA Group Corporation 12
②ロジカルレプリケーションの拡張 - その他 -
⚫ 初期同期時の更新を複数トランザクション化
✓ 13以前、「初期コピー」と「初期コピー中の他の更新」が単一トランザクション
⇒ロングトラン化する。更にエラーで全てロールバックされてしまい、やり直しが発生。
✓ 上記が分離され、初期コピー完了後にデータ参照可。その後、他の更新を同期。
⚫ バイナリ転送
✓ CREATE PUBLICATIONでWITH (binary = on)を指定して、バイナリ転送が可能に。
✓ timestamp型やbytea型など一部で性能改善が見込まれる。
v14
© 2023 NTT DATA Group Corporation 13
Memoizeの
キャッシュ
(バックエンドプロセス内)
③性能改善 - Memoize -
⚫ Nested Loopで一部のケースをキャッシュを使って、性能を改善する
✓ enable_memoizeで制御できる(デフォルトon)
例)以下で FROM Tbl1 JOIN ON Tbl2 Tbl1.key = Tbl2.key
Tbl1のkey1のカーディナリティが低く、Tbl2のkeyのカーディナリティは高いケースで有効。
Memoizeなしの場合、Tbl1の1行ごとにTbl2をIndex Scanして結合するが件数が増えるとオーバーヘッド大。
v14
Memoizeをもっと詳しく知りたい方は、第41回PGアンカンファレンスの「Memoizeの仕組み」 by 笠原さんを参照してください。
Tbl1
1
1
...
…
key1
2
…
2
…
Tbl2
1
2
...
…
3 …
4 …
1
2
...
…
key1
通常は初回にキャッシュ、
キャッシュされたレコードは
Tbl2を参照しない
© 2023 NTT DATA Group Corporation 14
③性能改善 - Bottom-up Index Deletion -
⚫ B-Treeインデックスの肥大化抑止
✓ インデックスのタプル削除+重複削除(v13)+Bottom-up Index Deletion
✓ インデックスのページ分割を防ぐ
(HOTは上記の対象外。肥大化を防ぐために、まずはHOTを考えよう。)
v14
Table1
Index1 Index2
X
Y
100
100
...
…
100
100
X
Y
①Index2の対象列を更新
※HOTではない
②’ こちらにも
タプルが追加される
② 新しいタプルが
追加される
③不要なインデックスタプルを
積極的に削除する
© 2023 NTT DATA Group Corporation 15
③性能改善
⚫ パラレルクエリの拡張
✓ REFRESH MATERIALIZED VIEW が並列問い合わせを実行可能に。
⚫ VACUUMコマンドの改善
✓ INDEX_CLEANUP=auto(デフォルト)で、処理が長くなる事の多いインデックスの
Vacuumが(必要に応じて)スキップされる。
✓ Failsafeモードが導入され、XID周回が近づいた際にFreeze以外の処理をスキップ。
v14
© 2023 NTT DATA Group Corporation 16
⑤モニタリング関連
⚫ pg_stat_wal
✓ WALの生成と書き込みに関する情報を表示
⚫ pg_stat_progress_copy
✓ COPYコマンドの進捗状況を確認
⚫ pg_stats_ext_expr
✓ 式を使った拡張統計の情報を表示
⚫ トランザクション周回の警告閾値が変更
⚫ log_autovacuum_min_durationにインデックスの詳細情報が出るように
v14
© 2023 NTT DATA Group Corporation 17
⑥ロールの追加等
⚫ 3つのロールが追加された。
v14
ロール名 概要
pg_database_owner データベース所有者で構成される
pg_read_all_data 全スキーマのテーブル、ビュー、シーケンスを参照できる。
スキーマのUSAGE権限、オブジェクトのSELECT権限に相当。
pg_write_all_data 全スキーマのテーブル、ビュー、シーケンスを参照できる。
スキーマのUSAGE権限、オブジェクトのINSERT、UPDATE、
DELETE権限に相当。
© 2023 NTT DATA Group Corporation 18
03.
PostgreSQL v15の注目機能
1
© 2023 NTT DATA Group Corporation 19
紹介する新機能(PostgreSQL v15)
①新しいSQL(関数など)
②ロジカルレプリケーションの拡張
③性能改善
④WALやバックアップ関連の改善
⑤モニタリング関連
⑥ロールの追加等
v15
© 2023 NTT DATA Group Corporation 20
①新しいSQL(関数等) - 注意すべき変更 -
⚫ publicスキーマに対するCREATE、USAGE権限を削除
✓ セキュリティ対応(CVE-2018-1058)
✓ 15からはpublicスキーマへのアクセスは、pg_database_ownerが必要
(基本的にスーパーユーザとデータベース所有者)
✓ 14以前からのデータベースをリストアした際にも適用される
⇒バージョンアップ時に注意
v15
© 2023 NTT DATA Group Corporation 21
①新しいSQL(関数等) - MERGE -
⚫ 条件に応じて、INSERT/UPDATE/DELETEを単一SQLで実行
✓ MERGE INTO テーブル名
USING 結合元テーブル
ON 結合条件
WHEN MATCHED 条件 THEN
UPDATE SET … / DELETE / DO NOTHING
WHEN NOT MATCHED
INSERT VALUES … / DO NOTHING
✓ 結合条件にマッチした場合 ⇒ UPDATE / DELETE / 何もしない
✓ 結合条件にマッチしなかった場合 ⇒ INSERT / 何もしない
v15
© 2023 NTT DATA Group Corporation 22
(補足)MERGEとそれまでのINSERT文の違い
⚫ 他のUPSERT方法である、INSERT … ON CONFLICTとの違い
✓ MERGEは、対象テーブルを外部結合し、結果行についてUPDATE/INSERT
✓ INSERT ... ON CONFLICTは、まずINSERTして重複で失敗したものについて
UPDATEを行う。
✓ INSERT INTO テーブル名 VALUES (…)
ON CONFLICT (制約名)
DO UPDATE SET c1 = EXCLUDED.c1 , c2 = EXCLUDED.c2;
✓ 実行時の性能特性も異なる。
v15
© 2023 NTT DATA Group Corporation 23
①新しいSQL(関数等) - その他 -
⚫ REGEXP_で始まる5つの関数の追加
関数 出力結果
REGEXP_COUNT パターンにマッチする個数
REGEXP_INSTR パターンにマッチする位置
(引数で開始位置/終了のどちらかを指定)
REGEXP_LIKE パターンにマッチすればtrue、そうでなければfalse
REGEXP_SUBSTR パターンにマッチした文字列
REGEXP_REPLACE パターンにマッチした部分を置換して返す
(15で対象範囲の指定を引数で可能になった)
⚫ 集約関数RANGE_AGGの追加
✓ 複数行の範囲型データ(int4range等)を多重範囲型に集約
v15
© 2023 NTT DATA Group Corporation 24
Schema1
②ロジカルレプリケーションの拡張
⚫ PUBLICATIONの対象をスキーマ単位で指定したり、列/行でフィルタ可能に。
⚫ サブスクライバでスキップ(LSN指定)したり、エラー時の無効化が可能に。
v15
Schema1
エラー発生時に該当更新の同期を
$ ALTER SUBSCRIPTION ... SKIP (LSN=‘lsnの値’)
でスキップが可能。
また、SUBSCRIPTIONに
disable_on_error=true
を指定して、エラー時に無効化する
設定が可能。
パブリッシャ サブスクライバ
Table1
1
Table2
Table1
Table2
PUBLICATION
で行を指定
PUBLICATION
で列を指定
スキーマ一括で
PUBLICATION指定も可
© 2023 NTT DATA Group Corporation 25
③性能改善
⚫ NOT IN句の改善
✓ 内部でハッシュテーブルを使うように変更された(実行計画は変化なし)
⚫ ソート性能の改善
✓ 外部ソート(Sort Method: external merge)のアルゴリズム変更
⚫ ウィンドウ関数の改善
✓ ROW_NUMBER、RANK、COUNTで一部の実行計画を改善
⚫ ¥copy fromの改善
✓ 1行単位のCopyDataメッセージをまとめることで改善
v15
© 2023 NTT DATA Group Corporation 26
④WALやバックアップ関連
⚫ WAL関連の改善
✓ モジュールによるアーカイブが可能に。
✓ archive_libraryでモジュール名を指定。
✓ archive_commandよりも柔軟性の高いアーカイブが可能になった。
✓ 15時点で優先度はarchive_library > archive_command
✓ WAL圧縮でzstd/lz4が指定可能に。
✓ configureで、--with-zstd/--with-lz4が必要。
✓ wal_compressionは、pglz/zstd/lz4/on(=pglz)/offを指定可能。
⚫ pg_basebackupの改善
✓ --compressオプションで圧縮が可能、形式(gzip/zstd/lz4)とレベルを指定。
✓ --targetオプションでバックアップの取得先をclientやserverで選べる。ちなみに
blackholeも指定でき、この場合バックアップは取られない。
v15
© 2023 NTT DATA Group Corporation 27
⑤モニタリング関連
⚫ pg_stat_subscription_statsの追加
✓ ロジカルレプリケーションの同期エラーを表示
✓ サブスクリプションごとに1行、初期同期と更新適用の失敗がカウントされる
⚫ pg_ident_file_mappingsの追加
✓ pg_ident.confの内容を表示
⚫ JSON形式でログ出力が可能に
✓ log_destinataion=jsonlogが指定可能になった
✓ 従来のstderr/csvlog/syslogは変わらず
⚫ log_checkpointのデフォルト値変更
✓ 14以前はデフォルトoff、15からデフォルトがonになった
v15
© 2023 NTT DATA Group Corporation 28
⑥ロールの追加等
⚫ 以下のロールが追加された。
ロール名 概要
pg_checkpoint CHECKPOINTのコマンドが実行可能
v15
© 2023 NTT DATA Group Corporation 29
04.
PostgreSQL v16の注目機能
2
© 2023 NTT DATA Group Corporation 30
紹介する新機能(PostgreSQL v16)
①新しいSQL(関数など)
②ロジカルレプリケーションの拡張
③性能改善
④WALやバックアップ関連の改善
⑤モニタリング関連
⑥ロールの追加等
v16
© 2023 NTT DATA Group Corporation 31
①新しいSQL(関数等) - JSON関連 -
⚫ JSON関連の機能追加
関数 変換元 変換先
JSON_OBJECT テキスト配列 JSONオブジェクト
JSON_OBJECTAGG 複数行のデータ(SELECT結果等) JSONオブジェクト
JSON_ARRAY スカラ値やJSONデータ JSON配列
JSON_ARRAYAGG 複数行のデータ JSON配列
述語 判定内容 (true/false)
IS JSON JSONとして解釈できるか
IS JSON ARRAY JSON配列として解釈できるか
IS JSON OBJECT JSONオブジェクトとして解釈できるか
IS JSON SCALAR JSONのスカラ値として解釈できるか
v16
© 2023 NTT DATA Group Corporation 32
①新しいSQL/構文 - その他 -
⚫ ANY_VALUE
✓ GROUP BYに含まれない列を集計関数を使わずに参照するとエラー。
✓ 解消方法:GROUP BYに列を含める、またはMIN/MAX/ANY_VALUE
⚫ 数値リテラル
✓ 2/8/16進数を表現することが可能に。
✓ (2進数)0b1001=9 (8進数)0o25=21 (16進数)0x32=50
⚫ ICUロケールの拡張
✓ 15以前はICUライブラリを照合順序で有効にするには、configure時に
--with-icuが必要。
✓ 16ではデフォルトで有効となり、除外する際に--without-icuが必要。
✓ これまでのconfigureが通らないケースも発生するので注意。
v16
© 2023 NTT DATA Group Corporation 33
①新しいSQL/構文 - libpqロードバランシング -
⚫ 複数ホストからランダムな接続が可能に
✓ 接続パラメータのload_balance_hosts=randomと、複数ホストのリストを指定。
✓ デフォルトだとload_balance_hosts=disableで、ラウンドロビンになる。
✓ psqlなどlibpqを使うアプリケーションで利用可能
v16
client
psql “host=aaa,bbb,ccc
load_balance_hosts=random”
host=aaa
host=bbb
host=ccc
接続先をランダムに選択、
エラー時は別の接続を試す
© 2023 NTT DATA Group Corporation 34
②ロジカルレプリケーションの拡張 - スタンバイからのレプリケーション -
⚫ ストリーミングレプリケーションのスタンバイを、パブリッシャーとして構成可能
プライマリ スタンバイ
パブリッシャ パブリッシャ サブスクライバ
ロジカル
レプリケーション
ストリーミング
レプリケーション
PUBLICATION SUBSCRIPTION
PUBLICATION
• PUBLICATIONはプライマリで作成
• pg_log_standby_snapshotでスタンバイへ
のレプリケーションのスロットを即時反映
v16
© 2023 NTT DATA Group Corporation 35
②ロジカルレプリケーションの拡張 - steaming = parallel -
⚫ 15以前でstreamingオプションはon/offだったが、parallelが追加
✓ CREATE SUBSCRIPTION sub_1
CONNECTION ‘port=5432 dbname=pub_db’ PUBLICATION pub
WITH (streaming = parallel);
v16
WALsender
Parallel
Apply Worker
Apply Worker
デコード結果を保持
メモリの制限を超えると
デコードされた変更を
ストリーミングで送信
(これはおそらくv14同等)
COMMIT時に全変更を
一度に送信 COMMITを指示
並列ワーカを
起動
変更を適用
メッセージ送信
max_parallel_apply_workers_per_subscriptionでワーカ数を指定
パブリッシャ サブスクライバ
© 2023 NTT DATA Group Corporation 36
テーブルA
テーブルA
②ロジカルレプリケーションの拡張 - 双方向レプリケーション -
⚫ 15までは双方向レプリケーションをすると循環してしまっていた。
⚫ 16から with (origin=none) が追加、双方向で更新が可能に。
✓ 同一キーでの挿入など、衝突が起きるケースがある。
✓ 衝突時は手動でスキップするなどの対応が必要。
v16
PUBLICATION SUBSCRIPTION
PUBLICATION
SUBSCRIPTION
origin=none
origin=none
パブリッシャにoriginを持たない変更のみの送信を要求
© 2023 NTT DATA Group Corporation 37
②ロジカルレプリケーションの拡張 - その他 -
⚫ 初期コピーでバイナリ形式が利用可に
✓ パブ/サブどちらも16以上 & サブスクリプションで with (binary = on)
✓ 初期データ移行もバイナリ形式で転送可 (15以前はテキスト形式のみ)
✓ 一部データ型が含まれる場合、所要時間が短縮されることがある。
⚫ Primary Key以外のインデックスが利用可に
✓ replica identity fullを指定した際、15以前ではフルスキャン。
✓ 16ではPrimary Key以外のインデックスを利用して、サブスクライバ側のデータ同期性
能が向上。
v16
© 2023 NTT DATA Group Corporation 38
③性能改善
⚫ パラレルクエリの拡張
✓ right outer join/full outer joinでパラレルクエリをサポート。
✓ 実行計画にParallel Hash Full Joinが登場するように 。
✓ string_arg、array_argで集約処理の一部をパラレルに実行、実行計画上はPartial
Aggregateが表示される。
⚫ インクリメンタルソートの拡張
✓ インクリメンタルソート自体は13で登場、インデックスを利用して一部のソートを高速化。
ディスクソートも避けられる。15まではSELECT DISTINCTは対象外。
✓ 16からSELECT DISTINCTでも、Incremental Sortが使われるように。
v16
© 2023 NTT DATA Group Corporation 39
④WALやバックアップ関連の改善
⚫ pg_dumpでlz4とzstdに対応
✓ -zまたは--compressで、gzip/lz4/zstdと圧縮レベルを指定可能(noneで非圧縮)
✓ 15以前はgzipのみ
⚫ archive_commandとarchive_libraryの同時指定不可
✓ 15で追加されたarchive_libraryパラメータ、15時点ではarchive_commandと同時
に指定可能(archive_libraryが優先される)
✓ 16では同時に追加できない、設定ファイルの書き方に注意
v16
© 2023 NTT DATA Group Corporation 40
⑤モニタリング関連
⚫ pg_stat_ioビューの追加
✓ PostgreSQLのIOに関連する統計情報を表示
✓ OSレベルでは調べるのが難しい、共有バッファ内のreadなども見れるように
✓ 今後、各種ツールでも対応が進むと思われる
v16
© 2023 NTT DATA Group Corporation 41
⑥ロールの追加等
⚫ 2つのロールが追加された。
ロール名 概要
pg_create_subscription スーパーユーザ以外でも、CREATE SUBSCRIPTIONが可能
pg_use_reserved_connections reserved_connectionsで予約した接続数を使って接続が可能。
なお、実際のコネクションは以下でカウントされるため、利用時に注
意が必要。
max_connections = superuser_reserved_connection
+ reserved_connection
+ その他一般ユーザ
pg_maintain (VACUUMやANALYZE等ができる権限だったがリバートされた)
v16
© 2023 NTT DATA Group Corporation 42
05.
まとめ
4
© 2023 NTT DATA Group Corporation 43
(再掲)サマリ:各バージョンの新機能
①SQL
②ロジカル
レプリケーション
③性能改善
④バックアップ
⑤モニタリング
⑥ロール
• publicスキーマの権限変更
• MERGE
• REGEXP系
• 行/列フィルタ
• lsn指定の同期スキップ
• エラー時の無効化
• NOT INや外部ソート
• ¥copyの改善
• archive_module
• WAL/ pg_basebackup圧縮
• pg_stat_subscription_stats
• JSON形式のログ
• pg_checkpoint
• SEARCH/CYCLE
• postgres_fdw
• ストリーム送信
• バイナリ転送
• Memoize
• Bottom-up Index
Deletion
• VACUUM改善
• pg_stat_wal
• pg_stat_progress_copy
• pg_read/write_all_data
• JSON関数、IS JSON
• ANY_VALUE
• libpq接続ロードバランシング
• スタンバイからレプリケーション
• パラレル適用
• 双方向
• パラレルクエリ、インクリメンタ
ルソートの拡張
• pg_dump圧縮(lz4/zstd)
• pg_stat_io
• pg_create_subscription
• pg_use_reserved_connections
開発者向け、使いたいSQLがあればどんどんバージョンアップを
ロジカルレプリケーションを使い倒したいなら、最新バージョンを使おう
地道な性能改善の取り込みを意識しよう
実行計画も新しくなるので、バージョンアップ後は知識のアップデートも必要
どちらかと言うとDB管理者向け、クラウド利用の場合はメリット少なめ
オンプレ/自前で大量DB管理するケースでバージョンアップのメリット大きい
v15 (2022年) v16 (2023年)
v14 (2021年)
© 2023 NTT DATA Group Corporation 44
さて、PostgreSQL v17はどうなる? ※あくまで予想です
v14 v15 v16 v17
• publicスキーマの権限
• MERGE
• REGEXP系
• 行/列フィルタ
• lsn指定の同期スキップ
• エラー時の無効化
• NOT INや外部ソート
• ¥copyの改善
• archive_module
• WAL/ pg_basebackup圧縮
• pg_stat_subscription_stats
• JSON形式のログ
• pg_checkpoint
• SEARCH/CYCLE
• postgres_fdw
• ストリーム送信
• バイナリ転送
• Memoize
• Bottom-up Index
Deletion
• VACUUM改善
• pg_stat_wal
• pg_stat_progress_copy
• pg_read/write_all_data
• JSON関数、IS JSON
• ANY_VALUE
• libpq接続ロードバランシング
• スタンバイから
• パラレル適用
• 双方向
• パラレルクエリ、
インクリメンタルソートの
拡張
• pg_dump圧縮(lz4/zstd)
• pg_stat_io
• pg_create_subscription
• pg_use_reserved_connections
①SQL
③性能改善
④バックアップ
⑤モニタリング
⑥ロール
②ロジカル
レプリケーション
• SQL/JSON関連
• 透過的カラム暗号化
• Table AMのAPI拡張
• DDLやSeqの対応
• Time-delayed
• Async IO
• ロックの改善
• 64bit XID(freeze削減)
• Incremental Backup
• WALサイズの削減
• 一部コマンドでsuperuser権限が
不要に
© 2023 NTT DATA Group Corporation 45
(おまけ)クラウドにおける対応状況
⚫ 2023/10時点の各社サービスのPostgreSQLバージョン対応状況
クラウド サービス名 PostgreSQL Ver. 備考
AWS
RDS for PostgreSQL 11 - 15 16はプレビュー
Aurora PostgreSQL 11 - 15 LTS 12.9/13.9/14.6
Azure
Azure Database for PostgreSQL 11 - 15
Cosmos DB for PostgreSQL 11 - 16
Google
Cloud
Cloud SQL for PostgreSQL 9.6 - 15 Enterprise Plusは14,15
Alloy DB for PostgreSQL 14互換
PostgreSQL interface for Spanner - 完全な互換性はない
OCI OCI Database for PostgreSQL 14.9 2023/12?

More Related Content

What's hot (20)

Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Vacuum徹底解説
Vacuum徹底解説
Masahiko Sawada
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
 

Similar to 最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料) (20)

PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
 
JTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontline
Haruka Takatsuka
 
Postgre sql update_20170310
Postgre sql update_20170310
Haruka Takatsuka
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
 
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
 
PostgreSQL15 新機能紹介
PostgreSQL15 新機能紹介
Satoshi Hirata
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
Toshi Harada
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
Satoshi Hirata
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
NTT DATA OSS Professional Services
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
 
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Ryuichiro Munechika
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
 
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
Toshi Harada
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
Shigeru Hanada
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
 
JTF2021w F3 postgresql frontline
JTF2021w F3 postgresql frontline
Haruka Takatsuka
 
Postgre sql update_20170310
Postgre sql update_20170310
Haruka Takatsuka
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
 
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
 
PostgreSQL15 新機能紹介
PostgreSQL15 新機能紹介
Satoshi Hirata
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
Toshi Harada
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
Satoshi Hirata
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
 
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Ryuichiro Munechika
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
 
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
Toshi Harada
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
Shigeru Hanada
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Ad

More from NTT DATA Technology & Innovation (20)

PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
 
2025年現在のNewSQL (最強DB講義 #36 発表資料)
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
 
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
 
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
Ad

最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)

  • 1. © 2023 NTT DATA Group Corporation - 最新機能までを総ざらい!- PostgreSQLの 注目機能を振り返る 2023/10/7 株式会社NTTデータグループ 小林 隆浩
  • 2. © 2023 NTT DATA Group Corporation 3 アジェンダ 01. PostgreSQLリリースを振り返る(2021-2023) 02. PostgreSQL v14の注目機能 03. PostgreSQL v15の注目機能 04. PostgreSQL v16の注目機能 05. まとめ (おまけ)各クラウドのバージョン対応状況
  • 3. © 2023 NTT DATA Group Corporation 4 (セッションの注意事項) ⚫ PostgreSQL各バージョンの新機能全てを網羅した内容ではありません。 ⚫ 全て知りたいという方は、以下を調べましょう。 ⚫ 公式リリースノート ⚫ SRA OSS Tech Blog 「PostgreSQL 14/15/16 検証報告」 ⚫ 篠田の虎の巻 「PostgreSQL 14/15/16 新機能検証結果」 各バージョンのリンクは、Let’s POSTGRESにまとまっています。 PostgreSQL14の新機能 | Let's POSTGRES PostgreSQL15の新機能 | Let's POSTGRES PostgreSQL16の新機能 | Let's POSTGRES
  • 4. © 2023 NTT DATA Group Corporation 5 01. PostgreSQLリリースを振り返る (2021-2023) 5
  • 5. © 2023 NTT DATA Group Corporation 6 サマリ:各バージョンの新機能 v15 (2022年) v16 (2023年) ①SQL ②ロジカル レプリケーション ③性能改善 ④バックアップ ⑤モニタリング ⑥ロール • publicスキーマの権限変更 • MERGE • REGEXP系 • 行/列フィルタ • lsn指定の同期スキップ • エラー時の無効化 • NOT INや外部ソート • ¥copyの改善 • archive_module • WAL/ pg_basebackup圧縮 • pg_stat_subscription_stats • JSON形式のログ • pg_checkpoint • JSON関数、IS JSON • ANY_VALUE • libpq接続ロードバランシング • スタンバイからレプリケーション • パラレル適用 • 双方向 • パラレルクエリ、インクリメンタ ルソートの拡張 • pg_dump圧縮(lz4/zstd) • pg_stat_io • pg_create_subscription • pg_use_reserved_connections v14 (2021年) • SEARCH/CYCLE • postgres_fdw • ストリーム送信 • バイナリ転送 • Memoize • Bottom-up Index Deletion • VACUUM改善 • pg_stat_wal • pg_stat_progress_copy • pg_read/write_all_data
  • 6. © 2023 NTT DATA Group Corporation 7 02. PostgreSQL v14の注目機能 7
  • 7. © 2023 NTT DATA Group Corporation 8 紹介する新機能(PostgreSQL v14) ①新しいSQL(関数など) ②ロジカルレプリケーションの拡張 ③性能改善 ④WALやバックアップ関連の改善 ⑤モニタリング関連 ⑥ロールの追加等 v14
  • 8. © 2023 NTT DATA Group Corporation 9 ①新しいSQL(関数等) ⚫ SEARCH句とCYCLE句 ✓ グラフのデータ構造に対して再帰的な問い合わせが シンプルに書けるように。 ✓ SEARCHで探索順序(幅優先/深さ優先)を 指定でき、CYCLEで循環参照の検出が可能。 ⚫ パーティションデタッチ時のロック軽減 ✓ ALTER TABLE … DETACH PARTITION CONCURRENTLY ✓ AccessExclusiveLockを取らなくなる。 v14 1 2 3 5 4
  • 9. © 2023 NTT DATA Group Corporation 10 ①新しいSQL(関数等) - postgres_fdw - ⚫ 外部テーブルのTRUNCATE ✓ truncatableオプションを指定可能、デフォルトはtrue ⚫ 外部テーブルの非同期スキャン ⚫ async_capableオプションで指定可能、デフォルトはfalse ⚫ Async Foreign Scanが同時並行で実行される。 ⚫ 外部テーブルの一括コピー ✓ batch_sizeで指定可能、デフォルトは1 ✓ 大量挿入時に1行ずつINSERT文が送信されていたが、これをまとめるように。 v14
  • 10. © 2023 NTT DATA Group Corporation 11 ②ロジカルレプリケーションの拡張 - streaming - ⚫ ストリーム送信 ✓ 13以前はパブリッシャ側でファイルに書き込み、コミットで送信(大量変更時の性能↓) ✓ WITH (streaming = on)でコミットを待たずに順次変更を送信 v14 WALsender Apply Worker デコード結果を保持 メモリの制限を超えると デコードされた変更を ストリーミングで送信 残りの変更を送信 適用した変更のCOMMIT 変更を一時ファイル(changes) に書き込む 変更を読み取り適用 パブリッシャ サブスクライバ
  • 11. © 2023 NTT DATA Group Corporation 12 ②ロジカルレプリケーションの拡張 - その他 - ⚫ 初期同期時の更新を複数トランザクション化 ✓ 13以前、「初期コピー」と「初期コピー中の他の更新」が単一トランザクション ⇒ロングトラン化する。更にエラーで全てロールバックされてしまい、やり直しが発生。 ✓ 上記が分離され、初期コピー完了後にデータ参照可。その後、他の更新を同期。 ⚫ バイナリ転送 ✓ CREATE PUBLICATIONでWITH (binary = on)を指定して、バイナリ転送が可能に。 ✓ timestamp型やbytea型など一部で性能改善が見込まれる。 v14
  • 12. © 2023 NTT DATA Group Corporation 13 Memoizeの キャッシュ (バックエンドプロセス内) ③性能改善 - Memoize - ⚫ Nested Loopで一部のケースをキャッシュを使って、性能を改善する ✓ enable_memoizeで制御できる(デフォルトon) 例)以下で FROM Tbl1 JOIN ON Tbl2 Tbl1.key = Tbl2.key Tbl1のkey1のカーディナリティが低く、Tbl2のkeyのカーディナリティは高いケースで有効。 Memoizeなしの場合、Tbl1の1行ごとにTbl2をIndex Scanして結合するが件数が増えるとオーバーヘッド大。 v14 Memoizeをもっと詳しく知りたい方は、第41回PGアンカンファレンスの「Memoizeの仕組み」 by 笠原さんを参照してください。 Tbl1 1 1 ... … key1 2 … 2 … Tbl2 1 2 ... … 3 … 4 … 1 2 ... … key1 通常は初回にキャッシュ、 キャッシュされたレコードは Tbl2を参照しない
  • 13. © 2023 NTT DATA Group Corporation 14 ③性能改善 - Bottom-up Index Deletion - ⚫ B-Treeインデックスの肥大化抑止 ✓ インデックスのタプル削除+重複削除(v13)+Bottom-up Index Deletion ✓ インデックスのページ分割を防ぐ (HOTは上記の対象外。肥大化を防ぐために、まずはHOTを考えよう。) v14 Table1 Index1 Index2 X Y 100 100 ... … 100 100 X Y ①Index2の対象列を更新 ※HOTではない ②’ こちらにも タプルが追加される ② 新しいタプルが 追加される ③不要なインデックスタプルを 積極的に削除する
  • 14. © 2023 NTT DATA Group Corporation 15 ③性能改善 ⚫ パラレルクエリの拡張 ✓ REFRESH MATERIALIZED VIEW が並列問い合わせを実行可能に。 ⚫ VACUUMコマンドの改善 ✓ INDEX_CLEANUP=auto(デフォルト)で、処理が長くなる事の多いインデックスの Vacuumが(必要に応じて)スキップされる。 ✓ Failsafeモードが導入され、XID周回が近づいた際にFreeze以外の処理をスキップ。 v14
  • 15. © 2023 NTT DATA Group Corporation 16 ⑤モニタリング関連 ⚫ pg_stat_wal ✓ WALの生成と書き込みに関する情報を表示 ⚫ pg_stat_progress_copy ✓ COPYコマンドの進捗状況を確認 ⚫ pg_stats_ext_expr ✓ 式を使った拡張統計の情報を表示 ⚫ トランザクション周回の警告閾値が変更 ⚫ log_autovacuum_min_durationにインデックスの詳細情報が出るように v14
  • 16. © 2023 NTT DATA Group Corporation 17 ⑥ロールの追加等 ⚫ 3つのロールが追加された。 v14 ロール名 概要 pg_database_owner データベース所有者で構成される pg_read_all_data 全スキーマのテーブル、ビュー、シーケンスを参照できる。 スキーマのUSAGE権限、オブジェクトのSELECT権限に相当。 pg_write_all_data 全スキーマのテーブル、ビュー、シーケンスを参照できる。 スキーマのUSAGE権限、オブジェクトのINSERT、UPDATE、 DELETE権限に相当。
  • 17. © 2023 NTT DATA Group Corporation 18 03. PostgreSQL v15の注目機能 1
  • 18. © 2023 NTT DATA Group Corporation 19 紹介する新機能(PostgreSQL v15) ①新しいSQL(関数など) ②ロジカルレプリケーションの拡張 ③性能改善 ④WALやバックアップ関連の改善 ⑤モニタリング関連 ⑥ロールの追加等 v15
  • 19. © 2023 NTT DATA Group Corporation 20 ①新しいSQL(関数等) - 注意すべき変更 - ⚫ publicスキーマに対するCREATE、USAGE権限を削除 ✓ セキュリティ対応(CVE-2018-1058) ✓ 15からはpublicスキーマへのアクセスは、pg_database_ownerが必要 (基本的にスーパーユーザとデータベース所有者) ✓ 14以前からのデータベースをリストアした際にも適用される ⇒バージョンアップ時に注意 v15
  • 20. © 2023 NTT DATA Group Corporation 21 ①新しいSQL(関数等) - MERGE - ⚫ 条件に応じて、INSERT/UPDATE/DELETEを単一SQLで実行 ✓ MERGE INTO テーブル名 USING 結合元テーブル ON 結合条件 WHEN MATCHED 条件 THEN UPDATE SET … / DELETE / DO NOTHING WHEN NOT MATCHED INSERT VALUES … / DO NOTHING ✓ 結合条件にマッチした場合 ⇒ UPDATE / DELETE / 何もしない ✓ 結合条件にマッチしなかった場合 ⇒ INSERT / 何もしない v15
  • 21. © 2023 NTT DATA Group Corporation 22 (補足)MERGEとそれまでのINSERT文の違い ⚫ 他のUPSERT方法である、INSERT … ON CONFLICTとの違い ✓ MERGEは、対象テーブルを外部結合し、結果行についてUPDATE/INSERT ✓ INSERT ... ON CONFLICTは、まずINSERTして重複で失敗したものについて UPDATEを行う。 ✓ INSERT INTO テーブル名 VALUES (…) ON CONFLICT (制約名) DO UPDATE SET c1 = EXCLUDED.c1 , c2 = EXCLUDED.c2; ✓ 実行時の性能特性も異なる。 v15
  • 22. © 2023 NTT DATA Group Corporation 23 ①新しいSQL(関数等) - その他 - ⚫ REGEXP_で始まる5つの関数の追加 関数 出力結果 REGEXP_COUNT パターンにマッチする個数 REGEXP_INSTR パターンにマッチする位置 (引数で開始位置/終了のどちらかを指定) REGEXP_LIKE パターンにマッチすればtrue、そうでなければfalse REGEXP_SUBSTR パターンにマッチした文字列 REGEXP_REPLACE パターンにマッチした部分を置換して返す (15で対象範囲の指定を引数で可能になった) ⚫ 集約関数RANGE_AGGの追加 ✓ 複数行の範囲型データ(int4range等)を多重範囲型に集約 v15
  • 23. © 2023 NTT DATA Group Corporation 24 Schema1 ②ロジカルレプリケーションの拡張 ⚫ PUBLICATIONの対象をスキーマ単位で指定したり、列/行でフィルタ可能に。 ⚫ サブスクライバでスキップ(LSN指定)したり、エラー時の無効化が可能に。 v15 Schema1 エラー発生時に該当更新の同期を $ ALTER SUBSCRIPTION ... SKIP (LSN=‘lsnの値’) でスキップが可能。 また、SUBSCRIPTIONに disable_on_error=true を指定して、エラー時に無効化する 設定が可能。 パブリッシャ サブスクライバ Table1 1 Table2 Table1 Table2 PUBLICATION で行を指定 PUBLICATION で列を指定 スキーマ一括で PUBLICATION指定も可
  • 24. © 2023 NTT DATA Group Corporation 25 ③性能改善 ⚫ NOT IN句の改善 ✓ 内部でハッシュテーブルを使うように変更された(実行計画は変化なし) ⚫ ソート性能の改善 ✓ 外部ソート(Sort Method: external merge)のアルゴリズム変更 ⚫ ウィンドウ関数の改善 ✓ ROW_NUMBER、RANK、COUNTで一部の実行計画を改善 ⚫ ¥copy fromの改善 ✓ 1行単位のCopyDataメッセージをまとめることで改善 v15
  • 25. © 2023 NTT DATA Group Corporation 26 ④WALやバックアップ関連 ⚫ WAL関連の改善 ✓ モジュールによるアーカイブが可能に。 ✓ archive_libraryでモジュール名を指定。 ✓ archive_commandよりも柔軟性の高いアーカイブが可能になった。 ✓ 15時点で優先度はarchive_library > archive_command ✓ WAL圧縮でzstd/lz4が指定可能に。 ✓ configureで、--with-zstd/--with-lz4が必要。 ✓ wal_compressionは、pglz/zstd/lz4/on(=pglz)/offを指定可能。 ⚫ pg_basebackupの改善 ✓ --compressオプションで圧縮が可能、形式(gzip/zstd/lz4)とレベルを指定。 ✓ --targetオプションでバックアップの取得先をclientやserverで選べる。ちなみに blackholeも指定でき、この場合バックアップは取られない。 v15
  • 26. © 2023 NTT DATA Group Corporation 27 ⑤モニタリング関連 ⚫ pg_stat_subscription_statsの追加 ✓ ロジカルレプリケーションの同期エラーを表示 ✓ サブスクリプションごとに1行、初期同期と更新適用の失敗がカウントされる ⚫ pg_ident_file_mappingsの追加 ✓ pg_ident.confの内容を表示 ⚫ JSON形式でログ出力が可能に ✓ log_destinataion=jsonlogが指定可能になった ✓ 従来のstderr/csvlog/syslogは変わらず ⚫ log_checkpointのデフォルト値変更 ✓ 14以前はデフォルトoff、15からデフォルトがonになった v15
  • 27. © 2023 NTT DATA Group Corporation 28 ⑥ロールの追加等 ⚫ 以下のロールが追加された。 ロール名 概要 pg_checkpoint CHECKPOINTのコマンドが実行可能 v15
  • 28. © 2023 NTT DATA Group Corporation 29 04. PostgreSQL v16の注目機能 2
  • 29. © 2023 NTT DATA Group Corporation 30 紹介する新機能(PostgreSQL v16) ①新しいSQL(関数など) ②ロジカルレプリケーションの拡張 ③性能改善 ④WALやバックアップ関連の改善 ⑤モニタリング関連 ⑥ロールの追加等 v16
  • 30. © 2023 NTT DATA Group Corporation 31 ①新しいSQL(関数等) - JSON関連 - ⚫ JSON関連の機能追加 関数 変換元 変換先 JSON_OBJECT テキスト配列 JSONオブジェクト JSON_OBJECTAGG 複数行のデータ(SELECT結果等) JSONオブジェクト JSON_ARRAY スカラ値やJSONデータ JSON配列 JSON_ARRAYAGG 複数行のデータ JSON配列 述語 判定内容 (true/false) IS JSON JSONとして解釈できるか IS JSON ARRAY JSON配列として解釈できるか IS JSON OBJECT JSONオブジェクトとして解釈できるか IS JSON SCALAR JSONのスカラ値として解釈できるか v16
  • 31. © 2023 NTT DATA Group Corporation 32 ①新しいSQL/構文 - その他 - ⚫ ANY_VALUE ✓ GROUP BYに含まれない列を集計関数を使わずに参照するとエラー。 ✓ 解消方法:GROUP BYに列を含める、またはMIN/MAX/ANY_VALUE ⚫ 数値リテラル ✓ 2/8/16進数を表現することが可能に。 ✓ (2進数)0b1001=9 (8進数)0o25=21 (16進数)0x32=50 ⚫ ICUロケールの拡張 ✓ 15以前はICUライブラリを照合順序で有効にするには、configure時に --with-icuが必要。 ✓ 16ではデフォルトで有効となり、除外する際に--without-icuが必要。 ✓ これまでのconfigureが通らないケースも発生するので注意。 v16
  • 32. © 2023 NTT DATA Group Corporation 33 ①新しいSQL/構文 - libpqロードバランシング - ⚫ 複数ホストからランダムな接続が可能に ✓ 接続パラメータのload_balance_hosts=randomと、複数ホストのリストを指定。 ✓ デフォルトだとload_balance_hosts=disableで、ラウンドロビンになる。 ✓ psqlなどlibpqを使うアプリケーションで利用可能 v16 client psql “host=aaa,bbb,ccc load_balance_hosts=random” host=aaa host=bbb host=ccc 接続先をランダムに選択、 エラー時は別の接続を試す
  • 33. © 2023 NTT DATA Group Corporation 34 ②ロジカルレプリケーションの拡張 - スタンバイからのレプリケーション - ⚫ ストリーミングレプリケーションのスタンバイを、パブリッシャーとして構成可能 プライマリ スタンバイ パブリッシャ パブリッシャ サブスクライバ ロジカル レプリケーション ストリーミング レプリケーション PUBLICATION SUBSCRIPTION PUBLICATION • PUBLICATIONはプライマリで作成 • pg_log_standby_snapshotでスタンバイへ のレプリケーションのスロットを即時反映 v16
  • 34. © 2023 NTT DATA Group Corporation 35 ②ロジカルレプリケーションの拡張 - steaming = parallel - ⚫ 15以前でstreamingオプションはon/offだったが、parallelが追加 ✓ CREATE SUBSCRIPTION sub_1 CONNECTION ‘port=5432 dbname=pub_db’ PUBLICATION pub WITH (streaming = parallel); v16 WALsender Parallel Apply Worker Apply Worker デコード結果を保持 メモリの制限を超えると デコードされた変更を ストリーミングで送信 (これはおそらくv14同等) COMMIT時に全変更を 一度に送信 COMMITを指示 並列ワーカを 起動 変更を適用 メッセージ送信 max_parallel_apply_workers_per_subscriptionでワーカ数を指定 パブリッシャ サブスクライバ
  • 35. © 2023 NTT DATA Group Corporation 36 テーブルA テーブルA ②ロジカルレプリケーションの拡張 - 双方向レプリケーション - ⚫ 15までは双方向レプリケーションをすると循環してしまっていた。 ⚫ 16から with (origin=none) が追加、双方向で更新が可能に。 ✓ 同一キーでの挿入など、衝突が起きるケースがある。 ✓ 衝突時は手動でスキップするなどの対応が必要。 v16 PUBLICATION SUBSCRIPTION PUBLICATION SUBSCRIPTION origin=none origin=none パブリッシャにoriginを持たない変更のみの送信を要求
  • 36. © 2023 NTT DATA Group Corporation 37 ②ロジカルレプリケーションの拡張 - その他 - ⚫ 初期コピーでバイナリ形式が利用可に ✓ パブ/サブどちらも16以上 & サブスクリプションで with (binary = on) ✓ 初期データ移行もバイナリ形式で転送可 (15以前はテキスト形式のみ) ✓ 一部データ型が含まれる場合、所要時間が短縮されることがある。 ⚫ Primary Key以外のインデックスが利用可に ✓ replica identity fullを指定した際、15以前ではフルスキャン。 ✓ 16ではPrimary Key以外のインデックスを利用して、サブスクライバ側のデータ同期性 能が向上。 v16
  • 37. © 2023 NTT DATA Group Corporation 38 ③性能改善 ⚫ パラレルクエリの拡張 ✓ right outer join/full outer joinでパラレルクエリをサポート。 ✓ 実行計画にParallel Hash Full Joinが登場するように 。 ✓ string_arg、array_argで集約処理の一部をパラレルに実行、実行計画上はPartial Aggregateが表示される。 ⚫ インクリメンタルソートの拡張 ✓ インクリメンタルソート自体は13で登場、インデックスを利用して一部のソートを高速化。 ディスクソートも避けられる。15まではSELECT DISTINCTは対象外。 ✓ 16からSELECT DISTINCTでも、Incremental Sortが使われるように。 v16
  • 38. © 2023 NTT DATA Group Corporation 39 ④WALやバックアップ関連の改善 ⚫ pg_dumpでlz4とzstdに対応 ✓ -zまたは--compressで、gzip/lz4/zstdと圧縮レベルを指定可能(noneで非圧縮) ✓ 15以前はgzipのみ ⚫ archive_commandとarchive_libraryの同時指定不可 ✓ 15で追加されたarchive_libraryパラメータ、15時点ではarchive_commandと同時 に指定可能(archive_libraryが優先される) ✓ 16では同時に追加できない、設定ファイルの書き方に注意 v16
  • 39. © 2023 NTT DATA Group Corporation 40 ⑤モニタリング関連 ⚫ pg_stat_ioビューの追加 ✓ PostgreSQLのIOに関連する統計情報を表示 ✓ OSレベルでは調べるのが難しい、共有バッファ内のreadなども見れるように ✓ 今後、各種ツールでも対応が進むと思われる v16
  • 40. © 2023 NTT DATA Group Corporation 41 ⑥ロールの追加等 ⚫ 2つのロールが追加された。 ロール名 概要 pg_create_subscription スーパーユーザ以外でも、CREATE SUBSCRIPTIONが可能 pg_use_reserved_connections reserved_connectionsで予約した接続数を使って接続が可能。 なお、実際のコネクションは以下でカウントされるため、利用時に注 意が必要。 max_connections = superuser_reserved_connection + reserved_connection + その他一般ユーザ pg_maintain (VACUUMやANALYZE等ができる権限だったがリバートされた) v16
  • 41. © 2023 NTT DATA Group Corporation 42 05. まとめ 4
  • 42. © 2023 NTT DATA Group Corporation 43 (再掲)サマリ:各バージョンの新機能 ①SQL ②ロジカル レプリケーション ③性能改善 ④バックアップ ⑤モニタリング ⑥ロール • publicスキーマの権限変更 • MERGE • REGEXP系 • 行/列フィルタ • lsn指定の同期スキップ • エラー時の無効化 • NOT INや外部ソート • ¥copyの改善 • archive_module • WAL/ pg_basebackup圧縮 • pg_stat_subscription_stats • JSON形式のログ • pg_checkpoint • SEARCH/CYCLE • postgres_fdw • ストリーム送信 • バイナリ転送 • Memoize • Bottom-up Index Deletion • VACUUM改善 • pg_stat_wal • pg_stat_progress_copy • pg_read/write_all_data • JSON関数、IS JSON • ANY_VALUE • libpq接続ロードバランシング • スタンバイからレプリケーション • パラレル適用 • 双方向 • パラレルクエリ、インクリメンタ ルソートの拡張 • pg_dump圧縮(lz4/zstd) • pg_stat_io • pg_create_subscription • pg_use_reserved_connections 開発者向け、使いたいSQLがあればどんどんバージョンアップを ロジカルレプリケーションを使い倒したいなら、最新バージョンを使おう 地道な性能改善の取り込みを意識しよう 実行計画も新しくなるので、バージョンアップ後は知識のアップデートも必要 どちらかと言うとDB管理者向け、クラウド利用の場合はメリット少なめ オンプレ/自前で大量DB管理するケースでバージョンアップのメリット大きい v15 (2022年) v16 (2023年) v14 (2021年)
  • 43. © 2023 NTT DATA Group Corporation 44 さて、PostgreSQL v17はどうなる? ※あくまで予想です v14 v15 v16 v17 • publicスキーマの権限 • MERGE • REGEXP系 • 行/列フィルタ • lsn指定の同期スキップ • エラー時の無効化 • NOT INや外部ソート • ¥copyの改善 • archive_module • WAL/ pg_basebackup圧縮 • pg_stat_subscription_stats • JSON形式のログ • pg_checkpoint • SEARCH/CYCLE • postgres_fdw • ストリーム送信 • バイナリ転送 • Memoize • Bottom-up Index Deletion • VACUUM改善 • pg_stat_wal • pg_stat_progress_copy • pg_read/write_all_data • JSON関数、IS JSON • ANY_VALUE • libpq接続ロードバランシング • スタンバイから • パラレル適用 • 双方向 • パラレルクエリ、 インクリメンタルソートの 拡張 • pg_dump圧縮(lz4/zstd) • pg_stat_io • pg_create_subscription • pg_use_reserved_connections ①SQL ③性能改善 ④バックアップ ⑤モニタリング ⑥ロール ②ロジカル レプリケーション • SQL/JSON関連 • 透過的カラム暗号化 • Table AMのAPI拡張 • DDLやSeqの対応 • Time-delayed • Async IO • ロックの改善 • 64bit XID(freeze削減) • Incremental Backup • WALサイズの削減 • 一部コマンドでsuperuser権限が 不要に
  • 44. © 2023 NTT DATA Group Corporation 45 (おまけ)クラウドにおける対応状況 ⚫ 2023/10時点の各社サービスのPostgreSQLバージョン対応状況 クラウド サービス名 PostgreSQL Ver. 備考 AWS RDS for PostgreSQL 11 - 15 16はプレビュー Aurora PostgreSQL 11 - 15 LTS 12.9/13.9/14.6 Azure Azure Database for PostgreSQL 11 - 15 Cosmos DB for PostgreSQL 11 - 16 Google Cloud Cloud SQL for PostgreSQL 9.6 - 15 Enterprise Plusは14,15 Alloy DB for PostgreSQL 14互換 PostgreSQL interface for Spanner - 完全な互換性はない OCI OCI Database for PostgreSQL 14.9 2023/12?