Successfully reported this slideshow.
Your SlideShare is downloading. ×

PostgresSQL UPDATE 2022

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 22 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to PostgresSQL UPDATE 2022 (20)

Advertisement

Recently uploaded (20)

PostgresSQL UPDATE 2022

  1. 1. 1 PostgreSQL Update 2022 オープンソースカンファレンス Online Spring 2022-03-12 16:00 - 16:45 (D 会場 ) 日本 PostgreSQL ユーザ会 理事 高塚 遥 ~ 今大体どうなっているの? ~
  2. 2. 2 TOC : ● 「 PostgreSQL は今ど うなっている?」を 45 分で解説 ● 「 PostgreSQL ってな んだったっけ?」という 人でも大丈夫 講演者 : ● 高塚 遥 ● 日本 PostgreSQL ユーザ会 理事 ● 仕事ではヘルプデスク、 コンサルティングなど、 PostgreSQL 支援業務
  3. 3. 3 PostgreSQL とは ● 多機能、高性能、かつオープンソースの リレーショナルデータベース管理システム – INGRES('70),POSTGRES('80) 由来の歴史 – BSD タイプのライセンス – 特定オーナー企業が無い 企業 製品 ある種の OSS 開発体制 開発者 PostgreSQL 企業 企業 企業 PostgreSQL 開発体制
  4. 4. 4 0 500,000 1,000,000 1,500,000 2,000,000 2,500,000 3,000,000 3,500,000 8.0 8.1 8.2 8.3 8.4 9.0 9.1 9.2 9.3 9.4 9.5 9.6 10 11 12 13 14 PostgreSQL リリース コード行数 ‘05.01 ‘05.11 ‘06.12 ‘08.02 ‘09.07 ‘10.09 ‘11.09 ‘12.09 ‘13.09 ‘14.12 ‘16.01 ‘16.09 ‘17.10 ‘18.10 ‘19.10 ‘20.09 PITR, MSVC 4core scale OLAP, CTE SSI, FDW MView, UView RLS, UPSERT logical Repli. Table AM I/F de- duplicate Btree Parallel query JIT compile JSONB many core scale hot Update bitmap scan Repli- cation ‘21.09
  5. 5. 5 近年のエンハンスメント ● ロジカルレプリケーションとその強化 (10 - 14) ● Table Access Method インタフェース (12) ● Btree インデックスの重複除去、肥大化防止 (13 - 14) ● パラレルクエリ対応と強化( 9.6 - 14) ● テーブルパーティショニング対応と強化 (10 - 14) ● 拡張統計情報 (12 - 14) ● SEARCH/CYCLE 構文 (14)
  6. 6. 6 バージョン 14 ● 2021 年 9 月リリース ● 性能向上 ● Btree Index 肥大化防止 ● 式の拡張統計情報 ● LZ4 によるデータ圧縮 ● postgres_fsw 改善 ● ロジカルレプリケーション改善 ● パラレルシーケンシャルスキャン性能改善 ● 多セッション時の性能改善
  7. 7. 7 バージョン 14 ● SQL 新機能 ● マルチ範囲型 ( '(1,10],(21,30])' など) ● SEARCH/CYCLE 構文 (再帰問い合わせむけ) ● 添え字構文の一般サポート ( jsoncol['aa'][5] など) ● 運用管理 ● セッション制御機能(長期アイドル切断、無効クライアント検知) ● pg_read_all / pg_write_all ロール ● 実行時統計ビューの拡張 ● pg_amcheck
  8. 8. 8 V15 追加候補新機能 (1) ● Index Skip Scan ● MySQL のルースインデックススキャン、 Oracle 同名機能に相当 ● スキーマ変数( LET 文) ● SQL Server 、 MySQL のセッション変数、 Oracle パッケージ変数に相当 ● CREATE MODULE ● Oracle のパッケージに相当 ● MERGE 文 ● Oracle の同名機能に相当 ● pgbench リトライ対応 ● シリアライザブルやリピータブルリードのテストに
  9. 9. 9 V15 追加候補新機能 (2) ● 今実行中の問い合わせのプランを取得 ● 展開された SQL を確認できる関数 pg_get_query_def() ● 情報取得用システムビュー ● pg_stat_buffers 、 pg_stat_toast 、 pg_stat_progress_checkpoint ● pg_permissions 、 pg_ownerships 、 ● サブトランザクション同時実行の性能改善 ● SubtransSLRULock 多発状況で ● 外部ソートのアルゴリズム変更 ● コマンドでなくモジュールで WAL アーカイブ ( committed ) ● SQL/JSON の関数、 JSON_TABLE のサポート ● ロジカルレプリケーションで行フィルタリング( committed )
  10. 10. 10 V15 追加候補新機能 (3) ● JSON 形式でログ出力(済) ● 接続に対するトリガ ● パラレルの INSERT INTO ... SELECT ● ARM64 Windows のサポート ● 実行時統計情報の共有メモリ化 ● これまではプロセス間通信 ● 非同期 I/O の利用拡大 ● hook によるカスタム認証 ● PROXY プロトコル対応
  11. 11. 11 現在の PostgreSQL と周辺 SQL 機能: ● SQL:2016 の大部分に対応 ● 各種のストアド言語 ● 地理情報対応 (PostGIS) ● JSON 対応 ● 豊富な拡張インタフェース クラスタ構成: ● Streaming Replication   ● Logical Replication   ● HA クラスタ (active/standby) ● MPP クラスタ (shared nothing) ● RAC 型 (shared disk) は不可 △ 性能: ● 参照更新で多コア性能スケール (ベンチマークベース) ● パーティション/パラレル対応 ● Just In Compile 対応 ● インメモリ対応 △ 運用: ● 各種運用監視ツール/サービス有 ● 各種クライアントツール有 ● 各種クラウド、 k8s 対応 ● 変更ストリーム対応
  12. 12. 12 CPU スケール(参照系) 2012 年度 PGECons WG1 成果資料より 9.2.x の段階で 参照はスケール コア数 = 同時実行数ピーク の結果
  13. 13. 13 CPU スケール(更新系) 2016 年度 PGECons WG1 成果資料より 9.6.x の段階で 更新スケール あくまでベンチマーク結果であることに注意!
  14. 14. 14 PostgreSQL のレプリケーション DB サーバ DB サーバ DB サーバ DB サーバ DB サーバ シングルマスタ マルチスレーブ カスケード 可能 DB サーバ 同期スタンバイ を指定可能 クォーラム指定 (内何台に     書込したら) インスタンス単位 WAL ストリームによる 物理レプリケーション 10 から 9.0 から DB サーバ 9.1 から 9.2 から テーブル単位 論理レプリケーション 10 から マルチマスタ テーブル単位論理 レプリケーションは サードパーティ製品で Postgres-BDR, etc
  15. 15. 15 PostgreSQL クラスタ構成 ● HA クラスタ ● Pacemaker 等の各種 HA クラスタソフトで対応 ● MPP クラスタ(シャーディング - データ分割格納) ● Greenplum ● Citus (Azure Hyperscale) ● Postgres-XL ● k8s オペレータ ● Pgpool-II
  16. 16. 16 PostgreSQL の運用監視 https://www.sraoss.co.jp/technology/zabbix/introduction/pg_monz.php より https://www.postgresql.jp/sites/default/files/2017-01/ B1_PGCON_JP_kondo_nttoss.pdf より ● pg_statsinfo ● pg_monz (Zabbix) ● pg_badger ● DataDog 、 Makerel
  17. 17. 17 PostgreSQL のクライアントツール ● pgAdmin 4 ● 各種商用製品 PostgreSQL 対応 ● Navicat for PostgreSQL ● SI Object Browser for Postgres ● A5:SQL Mk-2 https://www.pgadmin.org/screenshots より
  18. 18. 18 PostgreSQL でやや困難なケース ● データ投入性能の限界 ● IOT 方面/投入量要件と構成によっては専用製品に – WAL に直列的に書く設計であるため ● OLTP 性能の限界 ● 大メモリや多 CPU コアを活かしきれない場合 – 遅いストレージ格納を前提とした基本設計に起因 ● スケールアウトが難しい ● HA クラスタにおける高度要件 ● 障害復旧時間の最小化要件 – 10 秒以内の切替など → PosgreSQL から 負荷を逃がす対応で → トレードオフを 許容すれば可 → 分散させれば可、 それを集約する仕組み
  19. 19. 19 PostgreSQL クラウド / コンテナ ● クラウドサービス ● Azure Database ● AWS RDS / Aurora ● GCP Cloud SQL ● K8s オペレータ ● KubeDB ● CrunchyData/ postgres-operator ● Zalando/postgres- operator ● Cloud Native PostgreSQL (EDB)
  20. 20. 20 コミュニティと商用サポート ● 開発コミュニティ (Mailing List, Git, Slack) (PostgreSQL Global Development Group) ● 国内のコミュニティ活動 – 日本 PostgreSQL ユーザ会 (JPUG) – PostgreSQL エンタープライズ・コンソーシアム ( PGECons ) ● 国内の商用サポート – 提供会社いくつかあり、取り扱い会社多数 https://www.pgecons.org/postgresql-info/services/
  21. 21. 21 ユーザ動向 ● 「より大規模」「よりクリティカル」は一巡 ● 世界中どこで使われていても珍しくない ● Oracle Database からの移行が引き続き止まらない ● コンテナ化、クラウド化と合わせて ● JPUG による利用調査 ● PostgreSQL は 4大人気 DBMS の一角 Oracle SQLServer MySQL PostgreSQL Other DBs 2019 年 JPUG 調べ : 「近年業務で関わった DBMS 」 回答数(複数回答)
  22. 22. 22 JPUG の活動 ● イベント ● PostgreSQL アンカンファレンス - 最近はオンラインで毎月 ● PostgreSQL カンファレンス - 毎年秋に ● PostgreSQL 勉強会 - 各地支部で年1回~数回 ● 合宿 (最近は休止中) ● OSC など各種イベントに出展(通年) ● 文書翻訳  https://github.com/pgsql-jp/jpug-doc ● ML 運営 pgsql-jp@postgresql.jp, jpug-users@postgresql.jp ● 最近は Slack postgresql-jp が中心 ● Web 運営 ( www.postgresql.jp 、 lets.postgresql.jp )

×