Submit Search
PostgreSQL 9.5 新機能紹介
52 likes
42,944 views
N
NTT DATA OSS Professional Services
■Java Küeche 勉強会 「RDB最前線」 in 沖縄 講演資料 『PostgreSQL 9.5 新機能紹介』 NTT DATA 澤田 雅彦 @sawada_masahiko
Technology
Read more
1 of 60
Download now
Downloaded 120 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
More Related Content
What's hot
(20)
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
PDF
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
PDF
10大ニュースで振り返るPGCon2015
NTT DATA OSS Professional Services
PDF
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
ODP
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
PDF
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
Insight Technology, Inc.
PDF
外部データラッパによる PostgreSQL の拡張
Shigeru Hanada
PDF
KOF2015 PostgreSQL 9.5
Toshi Harada
PDF
PostgreSQLでスケールアウト
Masahiko Sawada
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
PDF
使ってみませんか?pg hint_plan
Masao Fujii
PDF
perfを使ったPostgreSQLの解析(前編)
Daichi Egawa
PDF
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
PDF
PostgreSQLコミュニティに飛び込もう
NTT DATA OSS Professional Services
PDF
Application of postgre sql to large social infrastructure jp
NTT DATA OSS Professional Services
PDF
PostgreSQL10徹底解説
Masahiko Sawada
PDF
GresCubeで快適PostgreSQLライフ
NTT DATA OSS Professional Services
PDF
9.3で進化した外部テーブル
Shigeru Hanada
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
PDF
今秋リリース予定のPostgreSQL11を徹底解説
Masahiko Sawada
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
10大ニュースで振り返るPGCon2015
NTT DATA OSS Professional Services
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
Insight Technology, Inc.
外部データラッパによる PostgreSQL の拡張
Shigeru Hanada
KOF2015 PostgreSQL 9.5
Toshi Harada
PostgreSQLでスケールアウト
Masahiko Sawada
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
使ってみませんか?pg hint_plan
Masao Fujii
perfを使ったPostgreSQLの解析(前編)
Daichi Egawa
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
PostgreSQLコミュニティに飛び込もう
NTT DATA OSS Professional Services
Application of postgre sql to large social infrastructure jp
NTT DATA OSS Professional Services
PostgreSQL10徹底解説
Masahiko Sawada
GresCubeで快適PostgreSQLライフ
NTT DATA OSS Professional Services
9.3で進化した外部テーブル
Shigeru Hanada
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
今秋リリース予定のPostgreSQL11を徹底解説
Masahiko Sawada
Similar to PostgreSQL 9.5 新機能紹介
(20)
PDF
JSONBはPostgreSQL9.5でいかに改善されたのか
NTT DATA OSS Professional Services
PDF
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
Satoshi Nagayasu
PDF
PostgreSQL 12の話
Masahiko Sawada
PDF
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
PDF
PostgreSQL 9.5 の新機能
Shigetaka Yachi
PDF
20150530 pgunconf-pgbench-semi-structured-benchmark
Toshi Harada
PDF
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
PDF
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
PDF
20190119 aws-study-pg-extension
Toshi Harada
PDF
Pgunconf 20121212-postgeres fdw
Toshi Harada
PDF
Chugokudb study-20150131
Toshi Harada
PDF
PGCon.jp 2014 jsonb-datatype-20141205
Toshi Harada
PDF
知って得するWebで便利なpostgre sqlの3つの機能
Soudai Sone
PDF
20181110 fok2018-pg-extension
Toshi Harada
PDF
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Ryuichiro Munechika
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
PDF
pg_trgmと全文検索
NTT DATA OSS Professional Services
PDF
オープンソース・データベースの最新事情
Meiji Kimura
PDF
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
Meiji Kimura
JSONBはPostgreSQL9.5でいかに改善されたのか
NTT DATA OSS Professional Services
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
Satoshi Nagayasu
PostgreSQL 12の話
Masahiko Sawada
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
PostgreSQL 9.5 の新機能
Shigetaka Yachi
20150530 pgunconf-pgbench-semi-structured-benchmark
Toshi Harada
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
20190119 aws-study-pg-extension
Toshi Harada
Pgunconf 20121212-postgeres fdw
Toshi Harada
Chugokudb study-20150131
Toshi Harada
PGCon.jp 2014 jsonb-datatype-20141205
Toshi Harada
知って得するWebで便利なpostgre sqlの3つの機能
Soudai Sone
20181110 fok2018-pg-extension
Toshi Harada
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Ryuichiro Munechika
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
pg_trgmと全文検索
NTT DATA OSS Professional Services
オープンソース・データベースの最新事情
Meiji Kimura
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
Meiji Kimura
Ad
More from NTT DATA OSS Professional Services
(20)
PDF
Global Top 5 を目指す NTT DATA の確かで意外な技術力
NTT DATA OSS Professional Services
PDF
Spark SQL - The internal -
NTT DATA OSS Professional Services
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
PDF
Hadoopエコシステムのデータストア振り返り
NTT DATA OSS Professional Services
PDF
HDFS Router-based federation
NTT DATA OSS Professional Services
PDF
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
PDF
Apache Hadoopの新機能Ozoneの現状
NTT DATA OSS Professional Services
PDF
Distributed data stores in Hadoop ecosystem
NTT DATA OSS Professional Services
PDF
Structured Streaming - The Internal -
NTT DATA OSS Professional Services
PDF
Apache Hadoopの未来 3系になって何が変わるのか?
NTT DATA OSS Professional Services
PDF
Apache Hadoop and YARN, current development status
NTT DATA OSS Professional Services
PDF
HDFS basics from API perspective
NTT DATA OSS Professional Services
PDF
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
PDF
20170303 java9 hadoop
NTT DATA OSS Professional Services
PPTX
ブロックチェーンの仕組みと動向(入門編)
NTT DATA OSS Professional Services
PDF
Application of postgre sql to large social infrastructure
NTT DATA OSS Professional Services
PDF
Apache Hadoop 2.8.0 の新機能 (抜粋)
NTT DATA OSS Professional Services
PDF
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
NTT DATA OSS Professional Services
PDF
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
PPTX
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
NTT DATA OSS Professional Services
Global Top 5 を目指す NTT DATA の確かで意外な技術力
NTT DATA OSS Professional Services
Spark SQL - The internal -
NTT DATA OSS Professional Services
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
Hadoopエコシステムのデータストア振り返り
NTT DATA OSS Professional Services
HDFS Router-based federation
NTT DATA OSS Professional Services
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
Apache Hadoopの新機能Ozoneの現状
NTT DATA OSS Professional Services
Distributed data stores in Hadoop ecosystem
NTT DATA OSS Professional Services
Structured Streaming - The Internal -
NTT DATA OSS Professional Services
Apache Hadoopの未来 3系になって何が変わるのか?
NTT DATA OSS Professional Services
Apache Hadoop and YARN, current development status
NTT DATA OSS Professional Services
HDFS basics from API perspective
NTT DATA OSS Professional Services
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
20170303 java9 hadoop
NTT DATA OSS Professional Services
ブロックチェーンの仕組みと動向(入門編)
NTT DATA OSS Professional Services
Application of postgre sql to large social infrastructure
NTT DATA OSS Professional Services
Apache Hadoop 2.8.0 の新機能 (抜粋)
NTT DATA OSS Professional Services
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
NTT DATA OSS Professional Services
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
NTT DATA OSS Professional Services
Ad
Recently uploaded
(9)
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
2023年版Web3技術の理想と現実
Syuhei Hiya
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
PostgreSQL 9.5 新機能紹介
1.
Copyright © 2015
NTT DATA Corporation 2015年9月12日 株式会社 NTTデータ PostgreSQL 9.5 新機能紹介 Java Küeche 勉強会 「RDB最前線」 in 沖縄
2.
2Copyright © 2015
NTT DATA Corporation 本日は PostgreSQL9.5の新機能を紹介します 8/6にAlpha 2 リリース!
3.
3Copyright © 2015
NTT DATA Corporation PostgreSQL 開発者@ NTT データ 社内 PostgreSQL 営業・技術支援 GresCube 開発・サポート PostgreSQL のコア機能を開発 レプリケーション運用性向上 REINDEX SCHEMA / VERBOSE pgbench(ベンチマークツール)の改善 pg_bigm(全文検索モジュール) コア機能へのパッチレビューア 澤田 雅彦 @sawada_masahiko
4.
4Copyright © 2015
NTT DATA Corporation Thanks to • Postgres 9.5 feature highlight (Michael Paquier) • http://michael.otacoo.com/ • Waiting for 9.5 (Hubert Lubaczewski) • http://www.depesz.com/ • 9.5 COMING TO YOU LIVE (Keith Fiske) • http://slides.keithf4.com/pg95live/#/ • PostgreSQL Deep Dive (Satoshi Nagayasu) • http://pgsqldeepdive.blogspot.jp/ • 日々の記録 別館(nuko_yokohama) • http://d.hatena.ne.jp/nuko_yokohama/
5.
5Copyright © 2015
NTT DATA Corporation INDEX PostgreSQLの進化の歴史 PostgreSQL 9.5 新機能紹介 性能向上系機能 開発に役に立つ機能 運用に役に立つ機能 9.6ではこんな機能が入るかも?
6.
Copyright © 2015
NTT DATA Corporation 6 PostgreSQLの進化の歴史
7.
7Copyright © 2015
NTT DATA Corporation 進化の歴史 カリフォルニア大学のPostgresプロジェクト(1985~1993)が母体。 近年はエンタープライズ向けの機能・性能改善を重視している。 最新版は、9.4.4(2015年6月リリース) 2003 2004 2005 2006 2007 2008 2009 2000 2011 2010 7.3 8.0 • Windows対応 • セーブポイント • メディア故障対応(PITR) • テーブルスペース 2012 2013 2014 7.4 8.2 • CPUスケール • オンライン索引作成 • GIN: 汎用転置索引 8.4 • Window関数・再帰クエリ • VACUUM用メモリ自動管理 • 他DBMS互換性向上 9.0 • レプリケーション • 列 / 条件付きトリガ • Windows 64bit対応 9.1 • 同期レプリケーション • パーティショニング強化 • 一時テーブル強化 9.2 • カスケードレプリケーション • スケーラビリティ向上 • Index検索の強化 9.3 • 切替え時間短縮 • Viewの改良 • DB間連携強化、等 8.1 • パーティショニング • 2相コミット • バッファ管理改良 9.4 • レプリケーションの 運用性向上 • NoSQL対応強化 • 大容量メモリ対応 8.3 • HOT: 更新性能向上 • VACUUM自動化 • 全文テキスト検索
8.
Copyright © 2015
NTT DATA Corporation 8 PostgreSQL 9.5 とは?
9.
9Copyright © 2015
NTT DATA Corporation Q1. 特徴は? A1. 大規模、特にDWH的な用途に強くなった! Q2. いつリリース? A2. 年内にはリリース予定 (8月にAlpha2がリリース)
10.
10Copyright © 2015
NTT DATA Corporation 本日紹介する PostgreSQL 9.5 新機能 性能改善系 • BRIN INDEX • WAL圧縮 運用に役立つ系 • pg_rewind • Row Level Security(RLS) 開発に役立つ系 • UPSERT (INSERT ON CONFLICT) • 外部テーブルの継承 • IMPORT FOREIGN SCHEMA • GROUPING SETS, CUBE, ROLLUP • JSONB型の演算子、関数の追加 • TABLESAMPLE句 3カテゴリ、10機能を紹介
11.
Copyright © 2015
NTT DATA Corporation 11 性能改善系 新機能
12.
12Copyright © 2015
NTT DATA Corporation BRIN INDEX (Block Range INdex) Block Range(min/max) 1 - 128 1 ~ 1000 129 - 256 1001 ~ 2000 : : インデックス作成 CREATE INDEX hoge_brin ON hoge USING brin(col); 近接している ブロックの束に対して 列の最小値/最大値 をインデックスに記録 : テーブル BRINインデックス 128 ブロック 128 ブロック 128 ブロック 128 ブロック ブロック 凡例
13.
13Copyright © 2015
NTT DATA Corporation BRIN INDEX (Block Range INdex) Block Range(min/max) 1 - 128 1 ~ 1000 129 - 256 1001 ~ 2000 : : 検索する範囲を 絞り高速に検索 : テーブル BRINインデックス 検索 SELECT * FROM hoge WHERE col BETWEEN 1500 AND 1700; ブロック 凡例
14.
14Copyright © 2015
NTT DATA Corporation BRIN INDEX (Block Range INdex)のFAQ Q. BRIN INDEXの特徴は? A. DWH用途向けのインデックス。 他のインデックスに比べ、インデックスサイズが小さい。(ブロック束の粒度は調整可能) Q. 使いどころは? A. 巨大なテーブルにて、ある特定の範囲を検索するときに有用 。(例えば、8月分の売り上 げを検索するなど) さらに、カラムのデータとテーブル内の物理的な順序が相関しているとより効果的。 Q. 使用上の注意点は? A. Btreeの代替となるインデックスではないことに注意。 静的で大規模なデータ(まさにDWH系)の検索に向いています。
15.
15Copyright © 2015
NTT DATA Corporation WAL圧縮 Full Page Writes(FPW)を圧縮することでWALサイズを縮小 性能改善、ディスク領域削減、レプリケーションに有用 wal_compression = off(デフォルト) / on FPW FPW FPW FPW Compressed FPW OFF ON WALサイズを 縮小 Compressed FPW Compressed FPW Compressed FPW
16.
16Copyright © 2015
NTT DATA Corporation WAL圧縮(2) pgbenchを使って圧縮効果を測定 ※pgbench -c 5 -t 10000で測定 ※②ではfiller列にランダム文字列を設定 約70% 約30% 1,200 MB 1,000 MB 800 MB 600 MB 400 MB 200 MB 0 100MB 70MB 60MB 50MB 40MB 30MB 20MB 10MB 0MB
17.
17Copyright © 2015
NTT DATA Corporation 性能向上系まとめ ・ BRIN INDEX ・ WAL圧縮
18.
Copyright © 2015
NTT DATA Corporation 18 開発に役立つ系新機能
19.
19Copyright © 2015
NTT DATA Corporation UPSERT INSERT INTO emp VALUES (3, '鈴木', '開発') ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name, role = EXCLUDED.role; 行がなければINSERT、あればUPDATEを実行 id name role 1 斉藤 開発 2 田中 営業 3 鈴木 開発 4 山下 経理 5 佐藤 営業 id=3の行がなければ INSERT INTO emp VALUES (3, '鈴木', '開発'); id=3の行があれば UPDATE emp SET name = '鈴木', role = '開発' WHERE id = 3;
20.
20Copyright © 2015
NTT DATA Corporation UPSERT(2) • ON CONFLICT句では列名、制約名が指定可能 • ON CONFLICT (列名) • ON CONFLICT 制約名 • 衝突時(CONFLICT)の動作はDO UPDATE/NOTHINGが指定可能 • DO UPDATE SET col1 = EXCLUDED.col1 WHERE col1 = ‘hoge’ • DO NOTHING • EXCLUDED句を使うことで、VALUES句内のデータを使うことが可能 INSERT INTO emp VALUES (3, '鈴木', '開発') ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name, role = EXCLUDED.role;
21.
21Copyright © 2015
NTT DATA Corporation FDW強化 PostgreSQL独自機能である Foreign Data Wrapper (FDW)が 大幅に強化されました! FDWの主な9.5新機能 • Foreign Table Inheritance • IMPORT FOREIGN SCHEMA
22.
22Copyright © 2015
NTT DATA Corporation FDW(Foreign Data Wrapper)とは? ID NAME 1 沖縄 2 新潟 … ID NAME 1 沖縄 2 新潟 … 外部テーブル テーブル 外部のデータをPostgreSQLのテーブルとして扱う機能 1,沖縄 2,新潟 … CSVファイル PostgreSQL Oracle read() SELECT SELECT oracle_fdw file_fdw
23.
23Copyright © 2015
NTT DATA Corporation FDW強化 - IMPORT FOREIGN SCHEMA - bar スキーマ リモート先リモート元 CREATE FOREIGN TABLE … CREATE FOREIGN TABLE … CREATE FOREIGN TABLE … これまではリモート元、リモート先それぞれでテーブル定義を実行する必要があった fdw スキーマ CREATE TABLE … CREATE TABLE … CREATE TABLE … 凡例 実テーブル 外部テーブル
24.
24Copyright © 2015
NTT DATA Corporation FDW強化 - IMPORT FOREIGN SCHEMA - bar スキーマ リモート先からテーブル、ビュー、マテビューの定義をインポートできる fdw スキーマ CREATE TABLE … CREATE TABLE … CREATE TABLE … スキーマ内の テーブル、ビュー、マテビュー 定義をインポート IMPORT FOREIGN SCHEMA bar INTO fdw; 凡例 実テーブル 外部テーブル リモート先リモート元
25.
25Copyright © 2015
NTT DATA Corporation FDW強化 - Foreign Table Inheritance - 外部テーブルで継承(INHERITS)が使用可能 =# CREATE FOREIGN TABLE hoge_2015_10 (date timestamp, value text) INHERITS (hoge_parent) SERVER pg_server OPTIONS(table_name ‘hoge_2015_10’);
26.
26Copyright © 2015
NTT DATA Corporation FDW強化 - Foreign Table Inheritance - 外部テーブルも含んだパーティショニングが可能に Partitioning + FDW SQL 子 子 子 子 子 凡例 実テーブル 外部テーブル 親 外部サーバとの通信など 子 CSV postgres_fdw file_fdwpostgres_fdw
27.
27Copyright © 2015
NTT DATA Corporation GROUPING SETS, CUBE, ROLLUP SQLの新しい構文が追加 • 1回のクエリで複数の異なる条件のGROUP処理が簡単・速く brand | size | sum -------+------+----- Foo | | 30 Bar | | 20 | L | 15 | M | 35 | | 50 (5 rows) SELECT brand, size, sum(sales) FROM items_sold GROUP BY GROUPING SETS ((brand), (size), ()); ブランドごとの集計 サイズごとの集計 全ての集計 <基本となるGRUPPING SETS>
28.
28Copyright © 2015
NTT DATA Corporation GROUPING SETS, CUBE, ROLLUP GRUPPING SET (), (d1), (d2), (d3), (d1,d2), (d1 ,d3), ( d2,d3), (d1,d2,d3) GROUP BY CUBE (d1, d2, d3); 列挙された要素について、 全ての組み合わせごとに集計 いずれもGROUPING SETをさらに便利にする構文 GRUPPING SET (), (d1), (d1,d2), (d1,d2,d3) 列挙された要素について、 左側から絞り込んだ組み合わせごとに集計 GROUP BY CUBE (d1, d2, d3); GROUP BY ROLLUP (d1, d2, d3);
29.
29Copyright © 2015
NTT DATA Corporation PostgreSQLにおけるJSONの歴史 v9.2 (2012年) v9.3 (2013年) v9.4 (2014年) v9.5 TEXT型 + 構文チェッカ 利用可能な関数と演算子 はわずか 演算子4個追加 要素抽出の演算子(->) 関数10個追加 JSONから行への変換 バイナリ形式 + 構文チェッカ GINインデックス対応 JSON型 サポート JSONB型 サポート !? 関数と演算子の 充実化
30.
30Copyright © 2015
NTT DATA Corporation JSONB型に追加された新しい関数・演算子 関数 演算子 -、-# 削除 || 追加 jsonb_concat() 追加 jsonb_delete() 削除 jsonb_set() 更新 jsonb_pretty() JSONB型を見やすく整形 NEW! NEW! NEW! NEW! NEW! NEW! ※JSONB型でのみ使用できる関数・演算子です
31.
31Copyright © 2015
NTT DATA Corporation JSONB型に追加された新しい関数・演算子 - 追加 - ※同様のことがjsonb_concat関数で可能です jsonb=# SELECT '{ "key1" : 1, "key2" : 2 }'::jsonb || '{"key3" : 3}'::jsonb ; ?column? ----------------------------------- {"key1": 1, "key2": 2, "key3": 3} jsonb=# SELECT '{ "key1" : 1, "key2" : 2 }'::jsonb || '{"key1" : 999}'::jsonb ; ?column? -------------------------- {"key1": 999, "key2": 2}
32.
32Copyright © 2015
NTT DATA Corporation JSONB型に追加された新しい関数・演算子 - 削除 - ※同様のことがjsonb_delete関数で可能です jsonb=# SELECT '{ "key1" : 1, "key2" : 2 }'::jsonb - 'key1'; ?column? ------------- {"key2": 2} jsonb=# SELECT '{ "key1" : { "key11" : 11 }, "key2" : 2 }'::jsonb #- '{key1, key11}'; ?column? ------------------------- {"key1": {}, "key2": 2} jsonb=# SELECT '[ "hoge", "bar", "foo" ]'::jsonb - 1; ?column? ----------------- ["hoge", "foo"]
33.
33Copyright © 2015
NTT DATA Corporation JSONB型に追加された新しい関数・演算子 - 追加・置換 - jsonb=# SELECT jsonb_set('{ "key1" : 1, "key2" : 2 }'::jsonb, '{"key1"}', '999'); jsonb_set -------------------------- {"key1": 999, "key2": 2} jsonb=# SELECT jsonb_set('{ "key1" : 1, "key2" : 2 }'::jsonb, '{"key999"}', '999'); jsonb_set --------------------------------------- {"key1": 1, "key2": 2, "key999": 999}
34.
34Copyright © 2015
NTT DATA Corporation JSONB型に追加された新しい関数・演算子 - 追加・置換 - jsonb=# SELECT jsonb_set('{ "key1" : { "key:array" : [1,2,3] } , "key2" : 2 }'::jsonb, '{"key1", "key:array"}', '999'); jsonb_set ----------------------------------------- {"key1": {"key:array": 999}, "key2": 2} jsonb=# SELECT jsonb_set('{ "key1" : { "key:array" : [1,2,3] } , "key2" : 2 }'::jsonb, '{"key1", "key:array", 1}', '999'); jsonb_set ------------------------------------------------- {"key1": {"key:array": [1, 999, 3]}, "key2": 2}
35.
35Copyright © 2015
NTT DATA Corporation JSONB型に追加された新しい関数・演算子 - 整形 - postgres=# SELECT jsonb_pretty( '{ "key1" : { "nest-key1" : [1, 2], "nest-key2" : { "nest-nest-key3" : "value" }}}‘ ); jsonb_pretty --------------------------------------- { + "key1": { + "nest-key1": [ + 1, + 2 + ], + "nest-key2": { + "nest-nest-key3": "value“ + } + } + } (1 row)
36.
36Copyright © 2015
NTT DATA Corporation TABLESAMPLE句 • サンプリングメソッドをBERNOULLI、SYSTEMの2つから選択 • 取得する割合をパーセント(%)で指定 • REPEATABLEオプションを使うことでサンプルを選択することが可能 • TABLESAMPLE SYSTEM(10) REPEATABLE(4); hoge テーブル 結果セット SELECT * FROM hoge TABLESAMPLE SYSTEM(10); Sample Scan テーブル内の行を サンプリング して結果を取得
37.
37Copyright © 2015
NTT DATA Corporation TABLESAMPLE句(2) タプル単位でランダムに選択 • シーケンシャルI/O • SYSTEMより遅い タプル1 タプル2 タプル7 タプル8 タプル4 タプル5 タプル13 タプル9 タプル10 タプル12 タプル3 タプル11 BERNOULLIを指定 タプル1 タプル2 タプル7 タプル8 タプル4 タプル5 タプル13 タプル9 タプル10 タプル12 タプル3 タプル11 SYSTEMを指定 テーブル テーブル ブロック 選択されたタプル 選択されないタプル サンプリング方法は、BERNOULLI(ベルヌーイ)、SYSTEMから選択可能 ブロック単位でランダムに選択 • ランダムI/O • BERNOULLIより早い
38.
38Copyright © 2015
NTT DATA Corporation TABLESAMPLE句(3) • BERNOULLI、SYSTEM共にページまたはタプル毎に指定された確率で選択される • 1000行のテーブルで10%を指定してもちょうど100行とは限らない • 選択されるタプルはデッドタプルも含む • 確実に見える行のみをサンプリング対象としたい場合は、事前にVACUUMまたはVACUUM FULLが必要 • WHERE句と併用した場合は、「サンプリング」→「WHERE句の評価」の順 • サンプリングをしてテーブルを結合する場合は注意が必要 • サンプリングの影響でテーブルの一貫性がないように見えてしまうことも • 結合したテーブルに対してサンプリングしたい場合はマテビューを使う
39.
39Copyright © 2015
NTT DATA Corporation TABLESAMPLE句についてのFAQ Q. SYSTEM、BERNOULLIの使い分けは? A. 遅くてもより正確な行数を取得したい→BERNOULI 多少取得行数はずれるが、速くサンプリングしたい→SYSTEM Q. TABLESAMPLEの使いどころは? A. 例えば、 • テーブルの中身全部をちゃんと見なくてもいい検索の時(傾向分析等) • 総量計算の見積もり • 「10%サンプリングして結果を10倍」 > 「全件カウント」 • SELECT item, count(*) * 10 FROM item_table TABLESAMPLE BERNOULLI(10) WHERE item = ‘xxx’ GROUP BY item; など
40.
40Copyright © 2015
NTT DATA Corporation 開発に役立つ系新機能まとめ ・ UPSERT (INSERT ON CONFLICT) ・ FDW強化(Foreign table inheritance, IMPORT FOREIGN SCHEMA) ・ GROUPING SETS, CUBE, ROLLUP ・ JSONB型の演算子、関数の追加 ・ TABLESAMPLE句
41.
Copyright © 2015
NTT DATA Corporation 41 運用に役立つ系新機能
42.
Copyright © 2015
NTT DATA Corporation 42 バージョンアップ時の非互換に注意 ちょっとその前に。
43.
43Copyright © 2015
NTT DATA Corporation 演算子の優先度が変わりました 9.4以前の優先度 . :: [ ] + - ^ * / % + - IS ISNULL NOTNULL (any other operator) IN BETWEEN OVERLAPS LIKE ILIKE SIMILAR < > = NOT AND OR 9.5の優先度 . :: [ ] + - ^ * / % + - (any other operator) OVERLAPS BETWEEN IN LIKE ILIKE SIMILAR < > = <= >= <> IS ISNULL NOTNULL NOT AND OR 例えば、 IS, IS NULL,IS NOT NULLが同じ優先度に 「<,>,=…」と「IS,IS NULL…」の優先度が逆転 よりSQL標準に合った、演算子の優先度になりました
44.
44Copyright © 2015
NTT DATA Corporation 演算子の優先度が変わりました ※ 優先度は「IS」 > 「>」なので、「3 IS true」が先に評価される ※優先度は「IS」 < 「>」 SELECT 4 > 3 IS true; (9.4以前) ERROR: argument of IS TRUE must be type boolean, not type integer (9.5) ?column? ---------- t
45.
45Copyright © 2015
NTT DATA Corporation 演算子の優先度が変わりました ただ、優先度が変わるケースがわかりづらい。。 9.5にバージョンアップ時に優先度の変更に気づくためには? operator_precedence_warning = on (9.5) =# SET operator_precedence_warning to on; SET =# SELECT 4 > 3 IS true; WARNING: operator precedence change: IS is now lower precedence than > LINE 1: SELECT 4 > 3 IS true; ^ ?column? ---------- t (1 row) バージョンアップ時は、 このパラメータをON にして、WARNING が出たSQLを直せば OK!
46.
Copyright © 2015
NTT DATA Corporation 46 運用に役立つ系新機能
47.
47Copyright © 2015
NTT DATA Corporation ROW LEVEL SECURITY (RLS) id name age role 1 斉藤 27 開発 2 田中 53 営業 3 鈴木 45 開発 4 山下 39 経理 5 佐藤 31 営業 role = ‘開発’ が見れるユーザ ユーザが閲覧・操作できる行を指定できる機能 GRANTによるアクセス制御 role = ‘営業’ が見れるユーザ テーブルへの アクセス権が ないユーザ スーパーユーザー または テーブルの所有者 RSLによるアクセス制御
48.
48Copyright © 2015
NTT DATA Corporation ROW LEVEL SECURITY (RLS) id name age role 1 斉藤 27 開発 2 田中 53 営業 3 鈴木 45 開発 4 山下 39 経理 5 佐藤 31 営業 ユーザfoo empテーブル 例) 開発者の情報のみをユーザfooに閲覧許可したい ① CREATE POLICY emp_foo_policy ON emp FOR SELECT TO foo USING (role = '開発'); ② ALTER TABLE emp ENABLE ROW LEVEL SECURITY; SELECT * FROM tmp;
49.
49Copyright © 2015
NTT DATA Corporation pg_rewind これまではフェイルバック時にはフルバックアップの転送が必須 レプリケー ション マスタ スタン バイ 停止 マスタ マスタスタン バイ レプリケー ション 停止 マスタ 両系稼働 マスタ単独稼働 両系稼働 フルバックアップ転送 マスタ故障により フェイルオーバ 旧マスタの再組込み (フェイルバック) 面倒!大変!時間かかりすぎ! 9.4 フル バック アップ
50.
50Copyright © 2015
NTT DATA Corporation pg_rewind フェイルバック時にDBデータを差分バックアップ転送できる機能 レプリケー ション マスタ スタン バイ 停止 マスタ マスタスタン バイ レプリケー ション 停止 マスタ 差分 バック アップ 両系稼働 マスタ単独稼働 両系稼働 差分バックアップ転送 マスタ故障により フェイルオーバ 旧マスタの再組込み (フェイルバック) pg_rewind フェイルバック時間を大幅短縮! 9.5
51.
51Copyright © 2015
NTT DATA Corporation 運用に役立つ機能まとめ • Row Level Security • pg_rewind
52.
Copyright © 2015
NTT DATA Corporation 52 9.6には、こんな機能が入るかも?
53.
53Copyright © 2015
NTT DATA Corporation 9.6提案中の機能 PG PG PG backend 凡例 実テーブル 外部テーブル Parallel Query worker worker worker Join Pushdown SQL VACUUM 強化
54.
54Copyright © 2015
NTT DATA Corporation マルチ同期レプリケーション(quorum commit) マスタ スタンバイ 例えば、 スタンバイのうち2台から応答があったら 同期レプリケーションは完了と判断したい! 同期レプリケーションのより柔軟な構成を可能にする機能
55.
55Copyright © 2015
NTT DATA Corporation さいごに PostgreSQL 9.5 使ってみませんか? ソースコードはこちら http://www.postgresql.org/ftp/source/v9.5alpha2/ バグ報告はこちら http://www.postgresql.org/support/submitbug/
56.
Copyright © 2011
NTT DATA Corporation Copyright © 2015 NTT DATA Corporation ご清聴ありがとうございました
57.
Copyright © 2015
NTT DATA Corporation 57 参考資料
58.
58Copyright © 2015
NTT DATA Corporation 参照スケーラビリティ向上 9.4に比べ、参照スケーラビリティが大きく向上 Scalability and Performance Improvements in PostgreSQL by Amit Kapila https://www.pgcon.org/2015/schedule/attachments/378_postgresql-95-scalability-perf-improvements.pdf DBデータが全てShared Bufferに収まるケース DBデータが全てメモリに収まるケース LWLock を改善 バッファ置換、 バッファ管理方法 を改善
59.
59Copyright © 2015
NTT DATA Corporation id … 10 20 … 30 … 40 … 50 … SKIP LOCKED句 SELECT * FROM hoge WHERE id > 20 FOR UPDATE NOWAIT; SELECT * FROM hoge WHERE id > 20 FOR UPDATE SKIP LOCKED; 行ロックが取れる行だけロックして結果を取得 30 … 50 … ② 行ロックが取れる行のみ (id = 30と50) 結果を返す ② 行ロックが一つでも 取れなかったら ERROR終了 ① 他処理によって 既に行ロックされてる
60.
60Copyright © 2015
NTT DATA Corporation スタンバイWALアーカイブ スタンバイサーバでのWALアーカイブが可能に! archive_modeにalwaysが追加 レプリケー ション マスタ スタン バイ スタン バイ スタン バイ WAL アーカイブ archive_mode = off WAL アーカイブ archive_mode = always archive_mode = always
Download