SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
PostgreSQL10 徹底解説
澤田 雅彦
日本 PostgreSQL ユーザ会 北海道支部
2017/07/15
@ オープンソースカンファレンス Hokkaido 2017
自己紹介
• 澤田 雅彦
• @sawada_masahiko
• NTT OSS センタ勤務
• PostgreSQL Contributor
• pg_repack Maintainer
• pg_bigm Maintainer
目次
• 約7年ぶりの大型アップデート
• 新機能紹介
• 大規模データ
• レプリケーション
• 非互換に注意!
• まとめ
• PostgreSQL の未来
• 機能の概要、使い所を紹介します
•
• まだ Beta 版なので、正式リリースまでに動作が変わっている可能
性があります
はじめに
約7年ぶりの大型アップデート!
• 約 200 個の改善点
• 大きい機能を多く導入
• バージョン番号が2桁に変更 (9.6.0 → 10.0)
• わかりやすさ・使いやすさ向上のために、一部後方互換性をなくして
改善
9.09.0 9.19.1 9.29.2 9.39.3 9.49.4 9.59.5 9.69.6 10.010.0
2010 年リリース 2017 年リリース
PostgreSQL のバージョンリリース
• 約1年かけて新バージョンを開発
• 毎年9月頃に新メジャーバージョンをリリース
• 2 、 3 ヵ月毎にマイナーバージョンをリリース
• 大きな機能は、複数バージョンを跨いで少しずつ開発される
ことが多い
• 新機能を使う時はその制約も把握することが大切
新機能紹介
• 大規模データ処理
• ネイティブ・パーティショニング
• パラレルクエリ強化
• FDW を使った並列分散 DB 化
• レプリケーション
• ロジカルレプリケーション
• Quorum 同期レプリケーション
ネイティブ・
パーティショニング
(Amit Langote)
ネイティブ・パーティショニング
• ” ネイティブ”・パーティショニング
• これまでもパーティショニング機能はあった
• しかし、複数機能 (CHECK 制約、テーブル継承、トリガ ) を組み合わせ
た「なんちゃってパーティショニング」
• 性能面、運用面で多くの課題があった
• なにが良くなった?
• パーティショニング専用の DDL が追加
• 性能向上
• プランナがパーティショニング情報を考慮して
• 動くようになった
親
子 子子
パーティショニングの DDL
-- 親テーブルの作成
=# CREATE TABLE parent (c1 int, c2 int) PARTITION BY RANGE;
-- 子テーブルの作成
=# CREATE TABLE child1 PARTITION OF parent FOR VALUES FROM (0) TO (100);
=# CREATE TABLE child2 PARTITION OF parent FOR VALUES FROM (100) TO (200);
-- 子テーブルの取り外し
=# ALTER TABLE parent DETACH PARTITION child2;
-- 子テーブルの取り付け
=# ALTER TABLE parent ATTACH PARTITION child2 FOR VALUES (100) TO (500);
INSERT 性能が向上
INSERT 時間
0
10
20
30
40
50
60
70
80
90
83
7
従来のトリガ方式 PostgreSQL 10
単純な INSERT 性能を従来のトリガ方式、 PostgreSQL10 方式で比較
日付をキーに分割し
た複数の子テーブル
にデータを 864,000
件 INSERT
ネイティブ・パーティショニング
できること
• レンジ、リスト・パーティショニン
グ
• パーティションテーブルの追加、
削除、取り付け (Attach) 、取り
外し (Detach)
• 複数階層のパーティショニング
• マルチカラム・パーティショニン
グ
できないこと
• グローバルインデックス
• パーティションを跨いだ
UPDATE
• ハッシュ・パーティショニング
• パーティションテーブルのリバラ
ンシング
パラレルクエリ改善
(Robert Haas, Amit Kapila, Rahila
Syed, Rafia Sabih, Dilip Mumar)
パラレルクエリとは?
• 1つの SQL を複数の CPU を活用して並列に処理する機能
• 特に大きなデータを処理するような分析系クエリで大活躍
• PostgreSQL 9.6 から導入された機能
テーブルテーブルプロセスプロセス
プロセスプロセス
プロセスプロセス
テーブルテーブル
1プロセスでの処理 複数プロセスでのパラレル処理
パラレルクエリが更に強化
• Scan
• Sequential Scan
• Bitmap Heap Scan
• Index Scan
• Index Only Scan
• Join
• Nested Loop Join
• Hash Join
• Merge Join
• PostgreSQL 10 でさらにパラレルクエリが使える場面が増えた
• ただし、 UPDATE/DELETE, DDL は未対応
QUERY PLAN
----------------------------------------------------------------
Finalize Aggregate
-> Gather
Workers Planned: 2
-> Partial Aggregate
-> Parallel Index Only Scan using a_idx on a
Index Cond: ((c >= 100) AND (c <= 300000))
(6 rows)
QUERY PLAN
----------------------------------------------------------------
Finalize Aggregate
-> Gather
Workers Planned: 2
-> Partial Aggregate
-> Parallel Index Only Scan using a_idx on a
Index Cond: ((c >= 100) AND (c <= 300000))
(6 rows)
https://www.pgcon.org/2017/schedule/attachments/445_Next-Generation%20Parallel%20Query%20-%20PGCon.pdf
https://www.pgcon.org/2017/schedule/attachments/445_Next-Generation%20Parallel%20Query%20-%20PGCon.pdf
https://www.pgcon.org/2017/schedule/attachments/445_Next-Generation%20Parallel%20Query%20-%20PGCon.pdf
FDW 改善・並列分散 DB 化
(Etsuro Fujita, Jeevan Chalke,
Ashutosh Bapat)
Foreign Data Wrapper(FDW) とは?
OracleOracle
PostgreSQLPostgreSQL
CSV ファイルCSV ファイル
SELECT * FROM
oracle_tbl WHERE
amount < 100;
PostgreSQL を”ハブ”のようにして、外部データ ( 他の DBMS 、 NoSQL 、ファイ
ル、 Web サービス等 ) と連携できる機能
oracle_tbl
pg_tbl
file_tbl
oracle_fdw
postgres_fdwpostgres_fdw
fle_fdw
fle_fdw
FDW 、 postgres_fdw の機能が強化された
• Join 、 Sort に加え Aggregation (集約)が push down 対応した
• より外部サーバのリソースを使って処理できるようになった
QUERY PLAN
------------------------------------------------------------
Aggregate
Output: sum(col)
-> Foreign Scan on public.s1
Output: col
Remote SQL: SELECT col FROM public.s1
QUERY PLAN
------------------------------------------------------------
Aggregate
Output: sum(col)
-> Foreign Scan on public.s1
Output: col
Remote SQL: SELECT col FROM public.s1
QUERY PLAN
----------------------------------------------------------------
Foreign Scan
Output: (sum(col))
Relations: Aggregate on (public.s1)
Remote SQL: SELECT sum(col) FROM public.s1
QUERY PLAN
----------------------------------------------------------------
Foreign Scan
Output: (sum(col))
Relations: Aggregate on (public.s1)
Remote SQL: SELECT sum(col) FROM public.s1
■ 9.6 以前 ■ 10 以降
② ローカルでスキャン結果を
集計
① リモートのデータをスキャン
① リモートでスキャン・集計
を両方実行
SELECT sum(col)
FROM s1; ?
FDW を使って並列分散処理
• “PostgreSQL と PostgreSQL と連携させる”というアイディア
• さらに、パーティショニングを組み合わせて分散処理させる
User ID
100 ~ 200
User ID
200 ~ 300
User ID
300 ~ 400
postgres_fdw
postgres_fdw
postgres_fdwpostgres_fdw
postgres_fdw
postgres_fdw
user_tbl
child_1
child_2
child_3
SELECT count(*) FROM
user_tbl WHERE
user_id = 300;
ここまでのまとめ
• パーティショニング
→専用 DDL が用意されたことにより運用が楽になった
→INSERT 性能が大幅に向上
• パラレルクエリ強化
→IndexScan 、 IndexOnlyScan 、 BitmapHeapScan 、 Parallel Merge に
対応した
→UPDATE/DELETE, DDL の対応はまだ
• FDW を使った並列分散 DB 化
→集約関数が PushDown されたことにより、並列分散 DB 化がより現実的に
→ただし注意点はまだまだあるので、使うときは気をつける
ロジカル・
レプリケーション
(Petr Jelinek)
レプリケーション
• フィジカル ( 物理 ) レプリケーション
• バイナリ情報 ( トランザクションログなど ) をスタンバイへ送信する
• DB まるごと複製 ( バックアップなど ) するときに良く利用される
• PostgreSQL では 9.0(2008 年 ) から導入された
• ロジカル ( 論理 ) レプリケーション
• 論理的な変更情報 (SQL など ) をスタンバイへ送信する
• テーブル単位、 DB 単位等の細かい粒度が指定可能
• PostgreSQL では 10.0(2017 年 ) から導入
PostgreSQL のロジカルレプリケーションは Pub/Sub モデル
• Publication( 上流 ) と Subscription( 下流 ) を設定
• Publication は複数テーブルを指定可能
• Subscription は複数 Publication を指定可能
• UPDATE/DELETE を複製するためにはプライマリキーまたは、 NOT NULL UNIQUE
キーが必要
TABLE
A
TABLE
B
TABLE
C
TABLE
D
sub_hoge
sub_bar
TABLE
A
TABLE
B
TABLE
C
TABLE
D
TABLE
C
TABLE
D
Publisher 側 Subscriber 側
設定例( Publication の作成)
-- Publication 作成
=# CREATE PUBLICATION test_pub FOR TABLE t1, t2 WITH (publish = ‘insert, delete’);
-- Publication 確認
=# dRp+
Publication hoge_pub
All tables | Inserts | Updates | Deletes
-------------+----------+-------------+---------
f | t | f | t
Tables:
"public.t1“
"public.t2"
• 複数テーブル、または DB 全体を複製対象として設定可能
• Subscription 毎に複製する操作を指定可能
•
設定例( Subscription の作成)
-- Subscription 作成
=# CREATE SUBSCRIPTION hoge_sub CONNECTION ‘port= ... ‘ PUBLICATION hoge_pub;
-- Subscription 確認
=# dRs+
List of subscriptions
Name | Owner | Enabled | Publication | Synchronous commit | Conninfo
---------- --+--------------+------------+----------------+----------------------------+---------------------------------------
hoge_sub | masahiko | t | {hoge_pub} | off | dbname=postgres port=5550
(1 row)
• Subscription を作成した時点からレプリケーションが開始される
• レプリケーション開始時に初期データのコピーを実行される
モニタリング
-- Publisher 側
=# SELECT application_name, state,
write_lag, flush_lag, replay_lag, sync_state
FROM pg_stat_replication ;
-[ RECORD 1 ]-----+----------------
application_name | hoge_sub
state | streaming
write_lag | 00:00:00.003926
flush_lag | 00:00:00.003926
replay_lag | 00:00:00.003926
sync_state | sync
-- Subscriber 側
=# SELECT * FROM pg_stat_subscription ;
-[ RECORD 1 ]------------+------------------------------
subid | 16388
subname | hoge_sub
pid | 15796
relid |
received_lsn | 0/1693EC8
last_msg_send_time | 2017-07-10 12:30:17.383905-07
last_msg_receipt_time | 2017-07-10 12:30:17.383994-07
latest_end_lsn | 0/1693EC8
latest_end_time | 2017-07-10 12:30:17.383905-07
-- Subscriber 側
=# SELECT * FROM pg_stat_subscription ;
-[ RECORD 1 ]------------+------------------------------
subid | 16388
subname | hoge_sub
pid | 15796
relid |
received_lsn | 0/1693EC8
last_msg_send_time | 2017-07-10 12:30:17.383905-07
last_msg_receipt_time | 2017-07-10 12:30:17.383994-07
latest_end_lsn | 0/1693EC8
latest_end_time | 2017-07-10 12:30:17.383905-07
仕組み
• PostgreSQL のロジカルレプリケーションで送信しているのは
SQL” ではない”
• MySQL の Row-based Replication 相当
TABLE
WAL
wal
sender
wal
sender
apply
worker
apply
worker
TABLE
WAL
backendbackend
①
Write
②
Read
③
Decode ④
Send
⑤
Write
⑤
Write
①
Write
ロジカルレプリケーション
できること
• テーブル、 DB 単位でのレプリケ
ーション
• 初期データの転送
• コンフリクトの解消(手動)
できないこと
• DDL レプリケーション
• テーブル、
• Publication 、 Subscription 単
位での同期レプリケーション
• 双方向レプリケーション(マルチマ
スター)
• テーブル以外のレプリケーション
(シーケンスなど)
Quorum-based
同期レプリケーション
(Masahiko Sawada)
Quorum ベース同期レプリケーション
• Quorum( 定足数 ) ベースとは ?
• “quorum とは分散システムにおいて、分散トランザクションが処理を実行するため
に必要な最低限の票の数である。” (Wikipedia より )
• 5 台の内、 3 台から応答が返ってきたら COMMIT とする、と言った感じ
• 9.6 までは応答を待つスタンバイは”固定”だった
マスタ
スタンバイ A
スタンバイ B
スタンバイ C
マスタ
スタンバイ A
スタンバイ B
スタンバイ C
スタンバイ A,B から応答
が返ってくるまで待つよ
3 台の内どれか 2 台
から応答が返ってくれ
ばいいよ
応答
停止中・・・
9.6 までの方式 Quorum ベース
設定方法
• FIRST 、 ANY で同期方法を選択
• N で台数を指定
• 例
• FIRST 2 (node1, node2, node3)
• node1, node2 の 2 台からの返答を待つ
• ANY 2 (node1, node2, node3)
• node1, node2, node3 の内 2 台からの返答を待つ
synchronous_standby_names = [ ANY | FIRST ] N (node1, node2, ... )synchronous_standby_names = [ ANY | FIRST ] N (node1, node2, ... )
使い所・注意点
• N 台の中から K 台に同期的にデータを複製するという所は
同じ
• 選び方の違いがあるだけ
• 性能面では ANY の方が優位
• 遅いスタンバイに性能が引っ張られないため
• ANY では今どれが同期スタンバイかは状況によって異なる
• レプリケーション状況は pg_stat_replication で確認
ここまでのまとめ
• ロジカルレプリケーション
→テーブル単位でのレプリケーションが可能に
→Pub/Sub モデル
→ただし、 DDL はレプリケートされないので注意
•
•
• Quorum 同期レプリケーション
→“5 個の中からどれでもいいので 2 個同期にする”みたいな使い方
→性能が遅いスタンバイに引きずられないので、性能的に優位になるケ
ースが多い
全 22 個の非互換箇所
• Hash インデックスは再作成する必要がある (pg_upgrade を使用し
た場合 )
• “xlog” が” wal” に変更
• pg_xlog ディレクトリ、 XXX_xlog() 関数など、全ての xlog が wal に名称変
更
• pg_clog ディレクトリが pg_xact ディレクトリに名称変更
• “lsn” が” location” に変更
• 主に XXX_location() 関数が XXX_lsn() に称変更
• デフォルトで localhost からのレプリケーション接続が有効になった
• pg_ctl がデフォルトで”待つ”動作になった
:
ここまでのまとめ
• PostgreSQL 10 では非互換箇所が多い!
• 運用ツールに影響があるもの、セキュリティ的に影響があるものなの
で、バージョンアップの際は必ず確認することを推奨します
• 一覧はリリースノートでチェック
まとめ
• PostgreSQL 10 は現在 Beta2

日本人開発者も多く参画している
• リリースは 9 月頃を予定
• 正式リリースを待ってもよし
• リリース前に使ってみるのもよし
• 不具合を見つけたらバグレポください!
• 英語が・・・というかたは日本 PostgreSQL ユーザ会の slack でも OK
• もしくは、 @sawada_masahiko に連絡ください
PostgreSQL の進化が止まらない!
•さらなる機能拡充

並列分散 DB 化

パラレル DDL

JIT コンパイル

セキュリティ機能の拡充
•
•PostgreSQL の適用領域拡大へ
PostgreSQL Conference Japan 2017
PGConf.ASIA 2017
参考資料
• Next-Generation Parallel Query
• https://www.pgcon.org/2017/schedule/attachments/445_Next-
Generation%20Parallel%20Query%20-%20PGCon.pdf
• 次期バージョン PostgreSQL 10 の新機能とその後の方向性
• https://www.sraoss.co.jp/event_seminar/2017/db_tech_show_cas
e_oss_2017.pdf
• PostgreSQL 10 がやってくる!
• https://www.slideshare.net/toshiharada/jpug-studypostgre-
sql10pub
Thank you!!
twitter : @sawada_masahiko
mail : sawada_masahiko_f7@lab.ntt.co.jp
その他たくさん新機能があります
• HASH インデックスの WAL 対応
• 拡張統計情報( Multi Column Correlation)
• JSON 型の全文検索サポート
• ICU サポート
• SCRAM 認証

Contenu connexe

Tendances

PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)NTT DATA Technology & Innovation
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみpg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみMasahiko Sawada
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 

Tendances (20)

PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
PostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もうPostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もう
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみpg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 

Similaire à PostgreSQL10徹底解説

[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...Insight Technology, Inc.
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationNoriyoshi Shinoda
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Toshi Harada
 
Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubChugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubToshi Harada
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoShigeru Hanada
 
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Ryota Watabe
 
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Toshi Harada
 
Postgre sql update_20170310
Postgre sql update_20170310Postgre sql update_20170310
Postgre sql update_20170310Haruka Takatsuka
 
KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5Toshi Harada
 
T sql 振り返り
T sql 振り返りT sql 振り返り
T sql 振り返りOda Shinsuke
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会Mikiya Okuno
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubJpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubToshi Harada
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012Shigeru Hanada
 
とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)Kazuhiro Yoshikawa
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Masayuki Ozawa
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告Amazon Web Services Japan
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Toshi Harada
 
Kubernetes on Alibaba Cloud
Kubernetes on Alibaba CloudKubernetes on Alibaba Cloud
Kubernetes on Alibaba Cloud真吾 吉田
 

Similaire à PostgreSQL10徹底解説 (20)

[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
 
Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pubChugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pub
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
 
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
 
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10
 
Postgre sql update_20170310
Postgre sql update_20170310Postgre sql update_20170310
Postgre sql update_20170310
 
KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5KOF2015 PostgreSQL 9.5
KOF2015 PostgreSQL 9.5
 
T sql 振り返り
T sql 振り返りT sql 振り返り
T sql 振り返り
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pubJpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
 
とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)とあるDBAの黒い画面(ターミナル)
とあるDBAの黒い画面(ターミナル)
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
 
Kubernetes on Alibaba Cloud
Kubernetes on Alibaba CloudKubernetes on Alibaba Cloud
Kubernetes on Alibaba Cloud
 

Plus de Masahiko Sawada

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...Masahiko Sawada
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLMasahiko Sawada
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -Masahiko Sawada
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Masahiko Sawada
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLMasahiko Sawada
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Masahiko Sawada
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説Masahiko Sawada
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than everMasahiko Sawada
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~Masahiko Sawada
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and FutureMasahiko Sawada
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorMasahiko Sawada
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介Masahiko Sawada
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索Masahiko Sawada
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことMasahiko Sawada
 
Introduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundIntroduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundMasahiko Sawada
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題Masahiko Sawada
 

Plus de Masahiko Sawada (20)

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQL
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQL
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than ever
 
Vacuumとzheap
VacuumとzheapVacuumとzheap
Vacuumとzheap
 
Parallel Vacuum
Parallel VacuumParallel Vacuum
Parallel Vacuum
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributor
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいこと
 
Introduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundIntroduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparound
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題
 

Dernier

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Dernier (9)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

PostgreSQL10徹底解説

  • 1. PostgreSQL10 徹底解説 澤田 雅彦 日本 PostgreSQL ユーザ会 北海道支部 2017/07/15 @ オープンソースカンファレンス Hokkaido 2017
  • 2. 自己紹介 • 澤田 雅彦 • @sawada_masahiko • NTT OSS センタ勤務 • PostgreSQL Contributor • pg_repack Maintainer • pg_bigm Maintainer
  • 3. 目次 • 約7年ぶりの大型アップデート • 新機能紹介 • 大規模データ • レプリケーション • 非互換に注意! • まとめ • PostgreSQL の未来
  • 4. • 機能の概要、使い所を紹介します • • まだ Beta 版なので、正式リリースまでに動作が変わっている可能 性があります はじめに
  • 5. 約7年ぶりの大型アップデート! • 約 200 個の改善点 • 大きい機能を多く導入 • バージョン番号が2桁に変更 (9.6.0 → 10.0) • わかりやすさ・使いやすさ向上のために、一部後方互換性をなくして 改善 9.09.0 9.19.1 9.29.2 9.39.3 9.49.4 9.59.5 9.69.6 10.010.0 2010 年リリース 2017 年リリース
  • 6. PostgreSQL のバージョンリリース • 約1年かけて新バージョンを開発 • 毎年9月頃に新メジャーバージョンをリリース • 2 、 3 ヵ月毎にマイナーバージョンをリリース • 大きな機能は、複数バージョンを跨いで少しずつ開発される ことが多い • 新機能を使う時はその制約も把握することが大切
  • 7. 新機能紹介 • 大規模データ処理 • ネイティブ・パーティショニング • パラレルクエリ強化 • FDW を使った並列分散 DB 化 • レプリケーション • ロジカルレプリケーション • Quorum 同期レプリケーション
  • 9. ネイティブ・パーティショニング • ” ネイティブ”・パーティショニング • これまでもパーティショニング機能はあった • しかし、複数機能 (CHECK 制約、テーブル継承、トリガ ) を組み合わせ た「なんちゃってパーティショニング」 • 性能面、運用面で多くの課題があった • なにが良くなった? • パーティショニング専用の DDL が追加 • 性能向上 • プランナがパーティショニング情報を考慮して • 動くようになった 親 子 子子
  • 10. パーティショニングの DDL -- 親テーブルの作成 =# CREATE TABLE parent (c1 int, c2 int) PARTITION BY RANGE; -- 子テーブルの作成 =# CREATE TABLE child1 PARTITION OF parent FOR VALUES FROM (0) TO (100); =# CREATE TABLE child2 PARTITION OF parent FOR VALUES FROM (100) TO (200); -- 子テーブルの取り外し =# ALTER TABLE parent DETACH PARTITION child2; -- 子テーブルの取り付け =# ALTER TABLE parent ATTACH PARTITION child2 FOR VALUES (100) TO (500);
  • 11. INSERT 性能が向上 INSERT 時間 0 10 20 30 40 50 60 70 80 90 83 7 従来のトリガ方式 PostgreSQL 10 単純な INSERT 性能を従来のトリガ方式、 PostgreSQL10 方式で比較 日付をキーに分割し た複数の子テーブル にデータを 864,000 件 INSERT
  • 12. ネイティブ・パーティショニング できること • レンジ、リスト・パーティショニン グ • パーティションテーブルの追加、 削除、取り付け (Attach) 、取り 外し (Detach) • 複数階層のパーティショニング • マルチカラム・パーティショニン グ できないこと • グローバルインデックス • パーティションを跨いだ UPDATE • ハッシュ・パーティショニング • パーティションテーブルのリバラ ンシング
  • 13. パラレルクエリ改善 (Robert Haas, Amit Kapila, Rahila Syed, Rafia Sabih, Dilip Mumar)
  • 14. パラレルクエリとは? • 1つの SQL を複数の CPU を活用して並列に処理する機能 • 特に大きなデータを処理するような分析系クエリで大活躍 • PostgreSQL 9.6 から導入された機能 テーブルテーブルプロセスプロセス プロセスプロセス プロセスプロセス テーブルテーブル 1プロセスでの処理 複数プロセスでのパラレル処理
  • 15. パラレルクエリが更に強化 • Scan • Sequential Scan • Bitmap Heap Scan • Index Scan • Index Only Scan • Join • Nested Loop Join • Hash Join • Merge Join • PostgreSQL 10 でさらにパラレルクエリが使える場面が増えた • ただし、 UPDATE/DELETE, DDL は未対応 QUERY PLAN ---------------------------------------------------------------- Finalize Aggregate -> Gather Workers Planned: 2 -> Partial Aggregate -> Parallel Index Only Scan using a_idx on a Index Cond: ((c >= 100) AND (c <= 300000)) (6 rows) QUERY PLAN ---------------------------------------------------------------- Finalize Aggregate -> Gather Workers Planned: 2 -> Partial Aggregate -> Parallel Index Only Scan using a_idx on a Index Cond: ((c >= 100) AND (c <= 300000)) (6 rows)
  • 19. FDW 改善・並列分散 DB 化 (Etsuro Fujita, Jeevan Chalke, Ashutosh Bapat)
  • 20. Foreign Data Wrapper(FDW) とは? OracleOracle PostgreSQLPostgreSQL CSV ファイルCSV ファイル SELECT * FROM oracle_tbl WHERE amount < 100; PostgreSQL を”ハブ”のようにして、外部データ ( 他の DBMS 、 NoSQL 、ファイ ル、 Web サービス等 ) と連携できる機能 oracle_tbl pg_tbl file_tbl oracle_fdw postgres_fdwpostgres_fdw fle_fdw fle_fdw
  • 21. FDW 、 postgres_fdw の機能が強化された • Join 、 Sort に加え Aggregation (集約)が push down 対応した • より外部サーバのリソースを使って処理できるようになった QUERY PLAN ------------------------------------------------------------ Aggregate Output: sum(col) -> Foreign Scan on public.s1 Output: col Remote SQL: SELECT col FROM public.s1 QUERY PLAN ------------------------------------------------------------ Aggregate Output: sum(col) -> Foreign Scan on public.s1 Output: col Remote SQL: SELECT col FROM public.s1 QUERY PLAN ---------------------------------------------------------------- Foreign Scan Output: (sum(col)) Relations: Aggregate on (public.s1) Remote SQL: SELECT sum(col) FROM public.s1 QUERY PLAN ---------------------------------------------------------------- Foreign Scan Output: (sum(col)) Relations: Aggregate on (public.s1) Remote SQL: SELECT sum(col) FROM public.s1 ■ 9.6 以前 ■ 10 以降 ② ローカルでスキャン結果を 集計 ① リモートのデータをスキャン ① リモートでスキャン・集計 を両方実行 SELECT sum(col) FROM s1; ?
  • 22. FDW を使って並列分散処理 • “PostgreSQL と PostgreSQL と連携させる”というアイディア • さらに、パーティショニングを組み合わせて分散処理させる User ID 100 ~ 200 User ID 200 ~ 300 User ID 300 ~ 400 postgres_fdw postgres_fdw postgres_fdwpostgres_fdw postgres_fdw postgres_fdw user_tbl child_1 child_2 child_3 SELECT count(*) FROM user_tbl WHERE user_id = 300;
  • 23. ここまでのまとめ • パーティショニング →専用 DDL が用意されたことにより運用が楽になった →INSERT 性能が大幅に向上 • パラレルクエリ強化 →IndexScan 、 IndexOnlyScan 、 BitmapHeapScan 、 Parallel Merge に 対応した →UPDATE/DELETE, DDL の対応はまだ • FDW を使った並列分散 DB 化 →集約関数が PushDown されたことにより、並列分散 DB 化がより現実的に →ただし注意点はまだまだあるので、使うときは気をつける
  • 25. レプリケーション • フィジカル ( 物理 ) レプリケーション • バイナリ情報 ( トランザクションログなど ) をスタンバイへ送信する • DB まるごと複製 ( バックアップなど ) するときに良く利用される • PostgreSQL では 9.0(2008 年 ) から導入された • ロジカル ( 論理 ) レプリケーション • 論理的な変更情報 (SQL など ) をスタンバイへ送信する • テーブル単位、 DB 単位等の細かい粒度が指定可能 • PostgreSQL では 10.0(2017 年 ) から導入
  • 26. PostgreSQL のロジカルレプリケーションは Pub/Sub モデル • Publication( 上流 ) と Subscription( 下流 ) を設定 • Publication は複数テーブルを指定可能 • Subscription は複数 Publication を指定可能 • UPDATE/DELETE を複製するためにはプライマリキーまたは、 NOT NULL UNIQUE キーが必要 TABLE A TABLE B TABLE C TABLE D sub_hoge sub_bar TABLE A TABLE B TABLE C TABLE D TABLE C TABLE D Publisher 側 Subscriber 側
  • 27. 設定例( Publication の作成) -- Publication 作成 =# CREATE PUBLICATION test_pub FOR TABLE t1, t2 WITH (publish = ‘insert, delete’); -- Publication 確認 =# dRp+ Publication hoge_pub All tables | Inserts | Updates | Deletes -------------+----------+-------------+--------- f | t | f | t Tables: "public.t1“ "public.t2" • 複数テーブル、または DB 全体を複製対象として設定可能 • Subscription 毎に複製する操作を指定可能 •
  • 28. 設定例( Subscription の作成) -- Subscription 作成 =# CREATE SUBSCRIPTION hoge_sub CONNECTION ‘port= ... ‘ PUBLICATION hoge_pub; -- Subscription 確認 =# dRs+ List of subscriptions Name | Owner | Enabled | Publication | Synchronous commit | Conninfo ---------- --+--------------+------------+----------------+----------------------------+--------------------------------------- hoge_sub | masahiko | t | {hoge_pub} | off | dbname=postgres port=5550 (1 row) • Subscription を作成した時点からレプリケーションが開始される • レプリケーション開始時に初期データのコピーを実行される
  • 29. モニタリング -- Publisher 側 =# SELECT application_name, state, write_lag, flush_lag, replay_lag, sync_state FROM pg_stat_replication ; -[ RECORD 1 ]-----+---------------- application_name | hoge_sub state | streaming write_lag | 00:00:00.003926 flush_lag | 00:00:00.003926 replay_lag | 00:00:00.003926 sync_state | sync -- Subscriber 側 =# SELECT * FROM pg_stat_subscription ; -[ RECORD 1 ]------------+------------------------------ subid | 16388 subname | hoge_sub pid | 15796 relid | received_lsn | 0/1693EC8 last_msg_send_time | 2017-07-10 12:30:17.383905-07 last_msg_receipt_time | 2017-07-10 12:30:17.383994-07 latest_end_lsn | 0/1693EC8 latest_end_time | 2017-07-10 12:30:17.383905-07 -- Subscriber 側 =# SELECT * FROM pg_stat_subscription ; -[ RECORD 1 ]------------+------------------------------ subid | 16388 subname | hoge_sub pid | 15796 relid | received_lsn | 0/1693EC8 last_msg_send_time | 2017-07-10 12:30:17.383905-07 last_msg_receipt_time | 2017-07-10 12:30:17.383994-07 latest_end_lsn | 0/1693EC8 latest_end_time | 2017-07-10 12:30:17.383905-07
  • 30. 仕組み • PostgreSQL のロジカルレプリケーションで送信しているのは SQL” ではない” • MySQL の Row-based Replication 相当 TABLE WAL wal sender wal sender apply worker apply worker TABLE WAL backendbackend ① Write ② Read ③ Decode ④ Send ⑤ Write ⑤ Write ① Write
  • 31. ロジカルレプリケーション できること • テーブル、 DB 単位でのレプリケ ーション • 初期データの転送 • コンフリクトの解消(手動) できないこと • DDL レプリケーション • テーブル、 • Publication 、 Subscription 単 位での同期レプリケーション • 双方向レプリケーション(マルチマ スター) • テーブル以外のレプリケーション (シーケンスなど)
  • 33. Quorum ベース同期レプリケーション • Quorum( 定足数 ) ベースとは ? • “quorum とは分散システムにおいて、分散トランザクションが処理を実行するため に必要な最低限の票の数である。” (Wikipedia より ) • 5 台の内、 3 台から応答が返ってきたら COMMIT とする、と言った感じ • 9.6 までは応答を待つスタンバイは”固定”だった マスタ スタンバイ A スタンバイ B スタンバイ C マスタ スタンバイ A スタンバイ B スタンバイ C スタンバイ A,B から応答 が返ってくるまで待つよ 3 台の内どれか 2 台 から応答が返ってくれ ばいいよ 応答 停止中・・・ 9.6 までの方式 Quorum ベース
  • 34. 設定方法 • FIRST 、 ANY で同期方法を選択 • N で台数を指定 • 例 • FIRST 2 (node1, node2, node3) • node1, node2 の 2 台からの返答を待つ • ANY 2 (node1, node2, node3) • node1, node2, node3 の内 2 台からの返答を待つ synchronous_standby_names = [ ANY | FIRST ] N (node1, node2, ... )synchronous_standby_names = [ ANY | FIRST ] N (node1, node2, ... )
  • 35. 使い所・注意点 • N 台の中から K 台に同期的にデータを複製するという所は 同じ • 選び方の違いがあるだけ • 性能面では ANY の方が優位 • 遅いスタンバイに性能が引っ張られないため • ANY では今どれが同期スタンバイかは状況によって異なる • レプリケーション状況は pg_stat_replication で確認
  • 36. ここまでのまとめ • ロジカルレプリケーション →テーブル単位でのレプリケーションが可能に →Pub/Sub モデル →ただし、 DDL はレプリケートされないので注意 • • • Quorum 同期レプリケーション →“5 個の中からどれでもいいので 2 個同期にする”みたいな使い方 →性能が遅いスタンバイに引きずられないので、性能的に優位になるケ ースが多い
  • 37. 全 22 個の非互換箇所 • Hash インデックスは再作成する必要がある (pg_upgrade を使用し た場合 ) • “xlog” が” wal” に変更 • pg_xlog ディレクトリ、 XXX_xlog() 関数など、全ての xlog が wal に名称変 更 • pg_clog ディレクトリが pg_xact ディレクトリに名称変更 • “lsn” が” location” に変更 • 主に XXX_location() 関数が XXX_lsn() に称変更 • デフォルトで localhost からのレプリケーション接続が有効になった • pg_ctl がデフォルトで”待つ”動作になった :
  • 38. ここまでのまとめ • PostgreSQL 10 では非互換箇所が多い! • 運用ツールに影響があるもの、セキュリティ的に影響があるものなの で、バージョンアップの際は必ず確認することを推奨します • 一覧はリリースノートでチェック
  • 39. まとめ • PostgreSQL 10 は現在 Beta2  日本人開発者も多く参画している • リリースは 9 月頃を予定 • 正式リリースを待ってもよし • リリース前に使ってみるのもよし • 不具合を見つけたらバグレポください! • 英語が・・・というかたは日本 PostgreSQL ユーザ会の slack でも OK • もしくは、 @sawada_masahiko に連絡ください
  • 40. PostgreSQL の進化が止まらない! •さらなる機能拡充  並列分散 DB 化  パラレル DDL  JIT コンパイル  セキュリティ機能の拡充 • •PostgreSQL の適用領域拡大へ
  • 43. 参考資料 • Next-Generation Parallel Query • https://www.pgcon.org/2017/schedule/attachments/445_Next- Generation%20Parallel%20Query%20-%20PGCon.pdf • 次期バージョン PostgreSQL 10 の新機能とその後の方向性 • https://www.sraoss.co.jp/event_seminar/2017/db_tech_show_cas e_oss_2017.pdf • PostgreSQL 10 がやってくる! • https://www.slideshare.net/toshiharada/jpug-studypostgre- sql10pub
  • 44. Thank you!! twitter : @sawada_masahiko mail : sawada_masahiko_f7@lab.ntt.co.jp
  • 45. その他たくさん新機能があります • HASH インデックスの WAL 対応 • 拡張統計情報( Multi Column Correlation) • JSON 型の全文検索サポート • ICU サポート • SCRAM 認証