SlideShare uma empresa Scribd logo
1 de 40
© 2017 NTT DATA
PostgreSQL10を導入!大規模データ分析事例
からみるDWHとしてのPostgreSQL活用のポイント
2017/12/5
株式会社NTTデータ
© 2017 NTT DATA Corporation 2
• 近年のPostgreSQLは、パラレルクエリをはじめとして、大量
データに対して分析クエリを流すようなDWHとしての用途で活
用できる機能が強化されています。
• 本講演では、DWHとしてPostgreSQLを扱うときに、
PostgreSQLエンジニアが知っておくとよいポイントについて
NTTデータでの事例を踏まえて紹介します。
はじめに
© 2017 NTT DATA Corporation 3
• はじめに
• システムの概要
• ミッションと課題
• 課題突破のポイント
• DWHの落とし穴
• まとめ
目次
© 2017 NTT DATA Corporation 4
• 石井愛弓(いしいあゆみ)
• NTT データのPostgreSQL チームとして、社内プロジェクトへ
技術支援を実施。
自己紹介
© 2017 NTT DATA Corporation 5
プロジェクト概要
ヘルスケア業界、大規模データ分析システム
BIツールを使ってインタラクティブにデータ分析を行う基盤
© 2017 NTT DATA Corporation 6
• BIツールのバックエンドとしてPostgreSQLを選択
• データサイズ:約10TB(約2年分)、
• 最大テーブル:20億件の大規模データを対象に分析を行う
プロジェクト概要
使用例1
TableauにてPostgreSQLを自由
に参照し、表化、グラフ化。(更新は
不可。)
使用例2
Rを用いて(もしくは直接)クエ
リ実行を行い、統計処理を実施し、
表化、グラフ化。
© 2017 NTT DATA Corporation 7
• データを直感的操作で可視化するBIツール
• PostgreSQLやその他のRDBMS、ファイルなど様々なデータ
ソースに対応
Tableau
© 2017 NTT DATA Corporation 8
本件でデータベースに求められる要件
1. Tableau、R、psqlなど様々なフロントエンドからアクセスでき
るデータベースであること
2. オープンソースであること
3. 大規模データセットに耐えられること
なぜ、PostgreSQLなのか
© 2017 NTT DATA Corporation 9
• Tableauからのレスポンスを10秒で実現せよ
• データベースサイズは全部合わせて約10TB
• 一度のクエリで全体にアクセスすると、達成できない
→目的別データマートを用意
ミッション
© 2017 NTT DATA Corporation 10
データを取り込むまで
Hadoop基盤
データ変換
AP
Spark(scala)
マスタ
1
データ変換
DWH(生データ)
・点数分解、省略部
分のデータ反映、一
連行為の単位でキー
付与等。
・名寄せ
マスタ
2
マスタ
3
生データ(一部)
目的別
データマート
レスポンスを考慮して
加工・絞込み
© 2017 NTT DATA Corporation 11
• 小手先でうまくいかないのがDWH
• SQLの書き換えで高速化?
• SQLを作るのはTableauなので、SQLチューニングは不可。
• pg_hint_planでコメントを付け実行計画誘導もできない。
• インデックスで高速化?
• 人の操作次第で、どんなクエリがくるか予想が難しい
• インデックスをどこにはるかが難しい
• とりあえず絞込みなしでGROUP BYがほとんど
→パラレルクエリの見せ所!
そのために、まずはハードが強くないと闘えない!
DWHで高速化するための課題
© 2017 NTT DATA Corporation 12
目的は、「パラレルクエリ活用」
CPU
• パラレルクエリの並列数×同時接続数で使用されるコア数の確保
メモリ
[本件の前提]データサイズが大きいため、全てがメモリに載りきるのは難しい
• 256GB
• 基本はIOで処理される前提で、IO重視
ストレージ
[本件の前提]ディスクアクセスが大量に走る
• SSD
• IOが弱いと、パラレルクエリの恩恵が受けられない
• RAID6
• 読み込み性能重視
ポイント(1) サイジング
© 2017 NTT DATA Corporation 13
• PostgreSQL9.6で導入されたパラレルクエリ
• 複数CPUを活用し複数プロセスが並列で処理をする
• DWHとしての用途で性能面で効果が大きい
• 9.6では、Seq Scanなど一部のScan/Join方法のみ利用
可
• 10ではIndex ScanやMerge Joinなど幅が広がった
• まだリリースされていなかった10の採用を前提に設計
• Beta版を使って検証
• スペアとして9.6の設計も行い共存させた
ポイント(2) パラレルクエリ
© 2017 NTT DATA Corporation 14
パラレル検証
並列数はどれぐらいが最適?
© 2017 NTT DATA Corporation 15
パラレルクエリ検証
・各Parallel値毎に10回計測 /平均
・生データ分 160GB / 20億件
0
50
100
150
200
250
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
実行時間(秒)
パラレル度
デフォルト
パラレル最大値
SELECT count(*) from テーブル
© 2017 NTT DATA Corporation 16
パラレルクエリ検証
・各Parallel値毎に10回計測 /平均
・生データ分 160GB / 20億件
0
50
100
150
200
250
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
実行時間(秒)
パラレル度
SELECT count(*) from テーブル
デフォルト
パラレル最大値
OSとPostgreSQLのキャッシュをクリアした場合
© 2017 NTT DATA Corporation 17
パラレルクエリ検証
0
50
100
150
200
250
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
実行時間(秒)
パラレル度
キャッシュ無
キャッシュ有
SELECT count(*) from テーブル
デフォルト
パラレル最大値
• utilはほぼ100%
• pg_stat_activityはIO/DataFileRead
• IO量は基礎性能測定に達していない
© 2017 NTT DATA Corporation 18
• pg_stat_activityで以下のカラムが詳細化された
• wait_event_type
• wait_event
• wait_event_type
• LWLock
• Lock
• BufferPin
• Activity
• Extension
• Client
• IPC
• Timeout
• IO
補足:PostgreSQL10のpg_stat_activity
© 2017 NTT DATA Corporation 19
• キャッシュに乗っている場合、デフォルトの最大並列数よりも、
並列数を上げる設定をすると性能向上
• キャッシュに乗らない場合、デフォルトの最大並列数のあたりで
性能が伸びなくなった
• 並列度を増やしすぎるとオーバヘッドにより性能が悪化
パラレル検証の結果
© 2017 NTT DATA Corporation 20
• shared_buffers検証
ポイント(3) パラメータ
サーバ搭載メモリ: 256GB
データ量: 160GB
データ件数: 20億件
shared_
buffers
OSキャッシュサイ
ズ(想定)
20 236
40 216
60 196
80 176
100 156
120 136
140 116
160 96
180 76
200 56
0
10
20
30
40
50
60
0 50 100 150 200
実行時間(秒)
shared_buffers(GB)
select count(*) Seq Scan
同じクエリを2回実行した結果
(キャッシュ有)
© 2017 NTT DATA Corporation 21
• PostgreSQLは、取得結果が大きく、共有バッファの大部分を
占めてしまいそうな場合、shared_buffersを全て使わず、リ
ングバッファ内にとどめる
• 逆に、shared_buffersを小さくして、OSキャッシュを大きくし
たほうが、結果がキャッシュに載りやすくなる
なぜshared_buffersを大きくしてもだめ?
共有バッファ
リングバッファ
© 2017 NTT DATA Corporation 22
• SSDの場合、ランダムスキャンが強い
• random_page_costはseq_page_cost(1)に近づけ
るべし
• デフォルトの4で計算するとインデックススキャンのコストが過大に
評価され、インデックススキャンのほうが速くても選ばれにくい
ポイント(3) パラメータ
© 2017 NTT DATA Corporation 23
• pg_stat_statementで頻出するクエリなどを調査
• よく使われるカラムに対して、インデックスの付与を検討
• BRIN(Block Range Index)に注目
• PostgreSQL9.5から追加された
メリット
• 大規模テーブルに対して、範囲検索を行う場合高速
• 特に、キー値の値が物理的に連続している場合(連番など)
• インデックスサイズが小さい
• インデックス作成時間が短い
→DWH用途に向いている
ポイント(4) インデックス
© 2017 NTT DATA Corporation 24
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
ブロック
ブロック
凡例
© 2017 NTT DATA Corporation 25
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;
ブロック
凡例
© 2017 NTT DATA Corporation 26
インデックス検証
37
11
0
5
10
15
20
25
30
35
40
btree brin
作成時間(分) インデックス作成時間
© 2017 NTT DATA Corporation 27
• 処理時間は、データ分布(物理的に連続しているか)と取得
件数の影響大
• PostgreSQLのプランナはseqscanを選んだ
(random_page_cost = 1にもかかわらず)
インデックス検証
49
5 5
0
10
20
30
40
50
60
Seq btree brin
実行時間(秒)
select * from table between xx < col1 AND col2 < yy;
※全体の30%程度を取得
© 2017 NTT DATA Corporation 28
• pg_hint_planの「テーブルでの指定」を使う
• コメントを使った方法と異なり、クエリを書き換えられなくても、
「hint_plan.hints」テーブルに、実行計画を制御したいクエ
リとヒントを登録しておくと、ヒントが効く
対処法として1つのアイデア
=# explain analyze select * from test where id = 1;
QUERY PLAN
-------------------------------------------------------------------------
Index Only Scan using a on test (cost=0.29..8.30 rows=1 width=4) …
Index Cond: (id = 1)
Heap Fetches: 1
Planning time: 0.054 ms
Execution time: 0.027 ms
(5 行)
=# set pg_hint_plan.enable_hint_table to on;
SET
=# explain analyze select * from test where id = 1;
QUERY PLAN
------------------------------------------------------------------------
Seq Scan on test (cost=0.00..170.00 rows=1 width=4) …
Filter: (id = 1)
Rows Removed by Filter: 9999
Planning time: 0.031 ms
Execution time: 0.808 ms
(5 行)
© 2017 NTT DATA Corporation 29
DWHの落とし穴
© 2017 NTT DATA Corporation 30
• PostgreSQLにpsqlで接続し、直接クエリを実行するとパラレ
ルになる
• がTableau経由でクエリを実行するとパラレルにならない
• クエリによっては、操作後、表示まで10分くらいかかってしまう。
→log_statement=allにしてサーバログを確認!
パラレルクエリが効かない!?
© 2017 NTT DATA Corporation 31
• TableauのPostgreSQL接続では、デフォルトでカーソルが定
義される
• クライアントに必要なメモリを抑えるため
• PostgreSQLの仕様上、カーソルが使われると、パラレルに
ならない
パラレルクエリが効かない!?(1)
2017-05-12 17:04:47 JST LOG: statement: BEGIN;declare
“SQL_CUR0000000006524770” cursor for select c.relname, i.indkey, i.indisunique,
i.indisclustered, a.amname, c.relhasrules, n.nspname, c.oid, d.relhasoids, i.indoption
from pg_catalog.pg_index i, pg_catalog.pg_class c, …(略)
TableauのODBC接続で、DECLARE CURSORを使わないように設定
© 2017 NTT DATA Corporation 32
• カーソルは使わなくなったが、まだ使えない
• ログを眺めていると。。
パラレルクエリが効かない!?(2)
© 2017 NTT DATA Corporation 33
• カーソルは使わなくなったが、まだ使えない
• ログを眺めていると。。
• tableauのデフォルトでシリアライザブルを設定。
• PostgreSQLの仕様上、シリアライザブルの場合、パラレル
にならない
• DWHではシリアライザブルがスタンダード?
• Teradata, Netezza, redshiftもデフォルトシリアライザブル。
パラレルクエリが効かない!?(2)
SET SESSION CHARACTERISTICS AS ISOLATION LEVEL
SERIALIZABLE;
Read committedに変更。
本件では、読み取りのみであるので、挙動に差異はない。
© 2017 NTT DATA Corporation 34
• 10.0では、Prepared Statementを使っていると、パラレル
されない場合がある。
• Custom plan …バインド変数を考慮した実行計画
• Generic plan …バインド変数を考慮しない実行計画
パラレルクエリが効かない!?(3)
C C C C C C
G
C C
G G10.0ではパラレルされない
(10.1で修正済み)
TableauのODBC接続パラメータでPreparedを使わないように設定。
Prepared Statement利用によるプランニング時間の短縮はできなくなる。
© 2017 NTT DATA Corporation 35
• custom plan
補足:generic planであるかどうか?の確認
• generic plan
Finalize Aggregate
-> Gather
Workers Planned: 4
-> Partial Aggregate
-> Parallel Seq Scan on tenk1
Filter: (hundred > 1)
Aggregate
-> Seq Scan on tenk1
Filter: (hundred > $1)
© 2017 NTT DATA Corporation 36
• EXPLANではパラレルプランになったが、EXPLAIN
ANALYZEではパラレルにならない
例)max_worker_processes/max_parallel_workers
による上限でワーカーが作成できない
パラレルクエリが効かない!?(4)
Finalize Aggregate (cost=75498.35..75498.36 rows=1 width=8) (actual time=2778.768..2778.768 rows=1
loops=1)
-> Gather (cost=75497.93..75498.34 rows=4 width=8) (actual time=2778.761..2778.762 rows=1 loops=1)
Workers Planned: 4
Workers Launched: 0
-> Partial Aggregate (cost=75497.93..75497.94 rows=1 width=8) (actual time=2778.595..2778.596
rows=1 loops=1)
-> Parallel Seq Scan on test (cost=0.00..69247.94 rows=2499994 width=0) (actual
time=0.015..1598.895 rows=10000000 loops=1)
Planning time: 0.100 ms
Execution time: 2778.937 ms
(8 rows)
© 2017 NTT DATA Corporation 37
• パラレルプランになったが、パラレル度が増えない
• そもそも、パラレル度はどのように決まるのか?
(1)PostgreSQLがコストとプロセス数上限を考慮
• parallel_setup_cost
• parallel_tuple_cost
• max_parallel_workers_per_gather
• max_worker_processes
(2)PostgreSQLがテーブルサイズで上限を計算
(3)ユーザがテーブルごとのパラメータ設定により上限を調整
• parallel_workers
• ALTER TABLEでparallel workersを設定すれば、テーブルサイズから
計算されるパラレル数上限を突破できる。
パラレル度が増えない!?
テーブルサイズ 8MB 24MB 72MB 216MB 648MB 1.8GB
パラレル度上限 1 2 3 4 5 6
※min_parallel_table_scan_size=8MBの場合
© 2017 NTT DATA Corporation 38
• まずはパラメータを確認
• max_parallel_workers_per_gather
• dynamic_shared_memory_type
• max_worker_processes
• parallel_workers
• コストをさげてみる
• parallel_setup_cost = 0
• parallel_tuple_cost = 0
• パラレルにならない条件を確認
• カーソルを使っていないか?
• シリアライザブルになっていないか?
• Preapared Statementのgeneric planになっていないか?(10.0の
み)
• その他PostgreSQLのマニュアルを確認
パラレルクエリが効かなかったら
© 2017 NTT DATA Corporation 39
• PostgreSQL10、新しい時代の幕開け
• DWH用途としてのPostgreSQLには、課題も残っているが、
十分闘える
• 特にパラレルクエリの貢献は大きい
• BIツールのバックエンドとして、PostgreSQLがスタンダードにな
るかもしれない
• BIツールのカスタマイズに頼らなくてもパラレルクエリが使えるよう
に、今後、制約が少なくなることに期待
まとめ
© 2017 NTT DATA Corporation

Mais conteúdo relacionado

Mais procurados

Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
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
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...NTT DATA Technology & Innovation
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)NTT DATA Technology & Innovation
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)Uptime Technologies LLC (JP)
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けRecruit Technologies
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 

Mais procurados (20)

Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回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 発表資料)
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 

Semelhante a PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント

pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説Masahiko Sawada
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Web Services Japan
 
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)オラクルエンジニア通信
 
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはdb tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはKoji Shinkubo
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~griddb
 
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...Insight Technology, Inc.
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)日本マイクロソフト株式会社
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化Kazunori Sato
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用Amazon Web Services Japan
 
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)Tomoyuki Oota
 
組み込みDb empressのご紹介
組み込みDb empressのご紹介組み込みDb empressのご紹介
組み込みDb empressのご紹介ITDORAKU
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 

Semelhante a PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント (20)

pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
 
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
ほんとに使える?Big Data SQL検証結果から見る、その有益性(性能編)
 
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはdb tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
 
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
 
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
 
組み込みDb empressのご紹介
組み込みDb empressのご紹介組み込みDb empressのご紹介
組み込みDb empressのご紹介
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 
BP Study #16
BP Study #16BP Study #16
BP Study #16
 

Mais de NTT DATA OSS Professional Services

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~NTT DATA OSS Professional Services
 

Mais de NTT DATA OSS Professional Services (20)

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development statusApache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jpApplication of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
 
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructureApplication of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
 

Último

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Último (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント

  • 1. © 2017 NTT DATA PostgreSQL10を導入!大規模データ分析事例 からみるDWHとしてのPostgreSQL活用のポイント 2017/12/5 株式会社NTTデータ
  • 2. © 2017 NTT DATA Corporation 2 • 近年のPostgreSQLは、パラレルクエリをはじめとして、大量 データに対して分析クエリを流すようなDWHとしての用途で活 用できる機能が強化されています。 • 本講演では、DWHとしてPostgreSQLを扱うときに、 PostgreSQLエンジニアが知っておくとよいポイントについて NTTデータでの事例を踏まえて紹介します。 はじめに
  • 3. © 2017 NTT DATA Corporation 3 • はじめに • システムの概要 • ミッションと課題 • 課題突破のポイント • DWHの落とし穴 • まとめ 目次
  • 4. © 2017 NTT DATA Corporation 4 • 石井愛弓(いしいあゆみ) • NTT データのPostgreSQL チームとして、社内プロジェクトへ 技術支援を実施。 自己紹介
  • 5. © 2017 NTT DATA Corporation 5 プロジェクト概要 ヘルスケア業界、大規模データ分析システム BIツールを使ってインタラクティブにデータ分析を行う基盤
  • 6. © 2017 NTT DATA Corporation 6 • BIツールのバックエンドとしてPostgreSQLを選択 • データサイズ:約10TB(約2年分)、 • 最大テーブル:20億件の大規模データを対象に分析を行う プロジェクト概要 使用例1 TableauにてPostgreSQLを自由 に参照し、表化、グラフ化。(更新は 不可。) 使用例2 Rを用いて(もしくは直接)クエ リ実行を行い、統計処理を実施し、 表化、グラフ化。
  • 7. © 2017 NTT DATA Corporation 7 • データを直感的操作で可視化するBIツール • PostgreSQLやその他のRDBMS、ファイルなど様々なデータ ソースに対応 Tableau
  • 8. © 2017 NTT DATA Corporation 8 本件でデータベースに求められる要件 1. Tableau、R、psqlなど様々なフロントエンドからアクセスでき るデータベースであること 2. オープンソースであること 3. 大規模データセットに耐えられること なぜ、PostgreSQLなのか
  • 9. © 2017 NTT DATA Corporation 9 • Tableauからのレスポンスを10秒で実現せよ • データベースサイズは全部合わせて約10TB • 一度のクエリで全体にアクセスすると、達成できない →目的別データマートを用意 ミッション
  • 10. © 2017 NTT DATA Corporation 10 データを取り込むまで Hadoop基盤 データ変換 AP Spark(scala) マスタ 1 データ変換 DWH(生データ) ・点数分解、省略部 分のデータ反映、一 連行為の単位でキー 付与等。 ・名寄せ マスタ 2 マスタ 3 生データ(一部) 目的別 データマート レスポンスを考慮して 加工・絞込み
  • 11. © 2017 NTT DATA Corporation 11 • 小手先でうまくいかないのがDWH • SQLの書き換えで高速化? • SQLを作るのはTableauなので、SQLチューニングは不可。 • pg_hint_planでコメントを付け実行計画誘導もできない。 • インデックスで高速化? • 人の操作次第で、どんなクエリがくるか予想が難しい • インデックスをどこにはるかが難しい • とりあえず絞込みなしでGROUP BYがほとんど →パラレルクエリの見せ所! そのために、まずはハードが強くないと闘えない! DWHで高速化するための課題
  • 12. © 2017 NTT DATA Corporation 12 目的は、「パラレルクエリ活用」 CPU • パラレルクエリの並列数×同時接続数で使用されるコア数の確保 メモリ [本件の前提]データサイズが大きいため、全てがメモリに載りきるのは難しい • 256GB • 基本はIOで処理される前提で、IO重視 ストレージ [本件の前提]ディスクアクセスが大量に走る • SSD • IOが弱いと、パラレルクエリの恩恵が受けられない • RAID6 • 読み込み性能重視 ポイント(1) サイジング
  • 13. © 2017 NTT DATA Corporation 13 • PostgreSQL9.6で導入されたパラレルクエリ • 複数CPUを活用し複数プロセスが並列で処理をする • DWHとしての用途で性能面で効果が大きい • 9.6では、Seq Scanなど一部のScan/Join方法のみ利用 可 • 10ではIndex ScanやMerge Joinなど幅が広がった • まだリリースされていなかった10の採用を前提に設計 • Beta版を使って検証 • スペアとして9.6の設計も行い共存させた ポイント(2) パラレルクエリ
  • 14. © 2017 NTT DATA Corporation 14 パラレル検証 並列数はどれぐらいが最適?
  • 15. © 2017 NTT DATA Corporation 15 パラレルクエリ検証 ・各Parallel値毎に10回計測 /平均 ・生データ分 160GB / 20億件 0 50 100 150 200 250 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 実行時間(秒) パラレル度 デフォルト パラレル最大値 SELECT count(*) from テーブル
  • 16. © 2017 NTT DATA Corporation 16 パラレルクエリ検証 ・各Parallel値毎に10回計測 /平均 ・生データ分 160GB / 20億件 0 50 100 150 200 250 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 実行時間(秒) パラレル度 SELECT count(*) from テーブル デフォルト パラレル最大値 OSとPostgreSQLのキャッシュをクリアした場合
  • 17. © 2017 NTT DATA Corporation 17 パラレルクエリ検証 0 50 100 150 200 250 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 実行時間(秒) パラレル度 キャッシュ無 キャッシュ有 SELECT count(*) from テーブル デフォルト パラレル最大値 • utilはほぼ100% • pg_stat_activityはIO/DataFileRead • IO量は基礎性能測定に達していない
  • 18. © 2017 NTT DATA Corporation 18 • pg_stat_activityで以下のカラムが詳細化された • wait_event_type • wait_event • wait_event_type • LWLock • Lock • BufferPin • Activity • Extension • Client • IPC • Timeout • IO 補足:PostgreSQL10のpg_stat_activity
  • 19. © 2017 NTT DATA Corporation 19 • キャッシュに乗っている場合、デフォルトの最大並列数よりも、 並列数を上げる設定をすると性能向上 • キャッシュに乗らない場合、デフォルトの最大並列数のあたりで 性能が伸びなくなった • 並列度を増やしすぎるとオーバヘッドにより性能が悪化 パラレル検証の結果
  • 20. © 2017 NTT DATA Corporation 20 • shared_buffers検証 ポイント(3) パラメータ サーバ搭載メモリ: 256GB データ量: 160GB データ件数: 20億件 shared_ buffers OSキャッシュサイ ズ(想定) 20 236 40 216 60 196 80 176 100 156 120 136 140 116 160 96 180 76 200 56 0 10 20 30 40 50 60 0 50 100 150 200 実行時間(秒) shared_buffers(GB) select count(*) Seq Scan 同じクエリを2回実行した結果 (キャッシュ有)
  • 21. © 2017 NTT DATA Corporation 21 • PostgreSQLは、取得結果が大きく、共有バッファの大部分を 占めてしまいそうな場合、shared_buffersを全て使わず、リ ングバッファ内にとどめる • 逆に、shared_buffersを小さくして、OSキャッシュを大きくし たほうが、結果がキャッシュに載りやすくなる なぜshared_buffersを大きくしてもだめ? 共有バッファ リングバッファ
  • 22. © 2017 NTT DATA Corporation 22 • SSDの場合、ランダムスキャンが強い • random_page_costはseq_page_cost(1)に近づけ るべし • デフォルトの4で計算するとインデックススキャンのコストが過大に 評価され、インデックススキャンのほうが速くても選ばれにくい ポイント(3) パラメータ
  • 23. © 2017 NTT DATA Corporation 23 • pg_stat_statementで頻出するクエリなどを調査 • よく使われるカラムに対して、インデックスの付与を検討 • BRIN(Block Range Index)に注目 • PostgreSQL9.5から追加された メリット • 大規模テーブルに対して、範囲検索を行う場合高速 • 特に、キー値の値が物理的に連続している場合(連番など) • インデックスサイズが小さい • インデックス作成時間が短い →DWH用途に向いている ポイント(4) インデックス
  • 24. © 2017 NTT DATA Corporation 24 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 ブロック ブロック 凡例
  • 25. © 2017 NTT DATA Corporation 25 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; ブロック 凡例
  • 26. © 2017 NTT DATA Corporation 26 インデックス検証 37 11 0 5 10 15 20 25 30 35 40 btree brin 作成時間(分) インデックス作成時間
  • 27. © 2017 NTT DATA Corporation 27 • 処理時間は、データ分布(物理的に連続しているか)と取得 件数の影響大 • PostgreSQLのプランナはseqscanを選んだ (random_page_cost = 1にもかかわらず) インデックス検証 49 5 5 0 10 20 30 40 50 60 Seq btree brin 実行時間(秒) select * from table between xx < col1 AND col2 < yy; ※全体の30%程度を取得
  • 28. © 2017 NTT DATA Corporation 28 • pg_hint_planの「テーブルでの指定」を使う • コメントを使った方法と異なり、クエリを書き換えられなくても、 「hint_plan.hints」テーブルに、実行計画を制御したいクエ リとヒントを登録しておくと、ヒントが効く 対処法として1つのアイデア =# explain analyze select * from test where id = 1; QUERY PLAN ------------------------------------------------------------------------- Index Only Scan using a on test (cost=0.29..8.30 rows=1 width=4) … Index Cond: (id = 1) Heap Fetches: 1 Planning time: 0.054 ms Execution time: 0.027 ms (5 行) =# set pg_hint_plan.enable_hint_table to on; SET =# explain analyze select * from test where id = 1; QUERY PLAN ------------------------------------------------------------------------ Seq Scan on test (cost=0.00..170.00 rows=1 width=4) … Filter: (id = 1) Rows Removed by Filter: 9999 Planning time: 0.031 ms Execution time: 0.808 ms (5 行)
  • 29. © 2017 NTT DATA Corporation 29 DWHの落とし穴
  • 30. © 2017 NTT DATA Corporation 30 • PostgreSQLにpsqlで接続し、直接クエリを実行するとパラレ ルになる • がTableau経由でクエリを実行するとパラレルにならない • クエリによっては、操作後、表示まで10分くらいかかってしまう。 →log_statement=allにしてサーバログを確認! パラレルクエリが効かない!?
  • 31. © 2017 NTT DATA Corporation 31 • TableauのPostgreSQL接続では、デフォルトでカーソルが定 義される • クライアントに必要なメモリを抑えるため • PostgreSQLの仕様上、カーソルが使われると、パラレルに ならない パラレルクエリが効かない!?(1) 2017-05-12 17:04:47 JST LOG: statement: BEGIN;declare “SQL_CUR0000000006524770” cursor for select c.relname, i.indkey, i.indisunique, i.indisclustered, a.amname, c.relhasrules, n.nspname, c.oid, d.relhasoids, i.indoption from pg_catalog.pg_index i, pg_catalog.pg_class c, …(略) TableauのODBC接続で、DECLARE CURSORを使わないように設定
  • 32. © 2017 NTT DATA Corporation 32 • カーソルは使わなくなったが、まだ使えない • ログを眺めていると。。 パラレルクエリが効かない!?(2)
  • 33. © 2017 NTT DATA Corporation 33 • カーソルは使わなくなったが、まだ使えない • ログを眺めていると。。 • tableauのデフォルトでシリアライザブルを設定。 • PostgreSQLの仕様上、シリアライザブルの場合、パラレル にならない • DWHではシリアライザブルがスタンダード? • Teradata, Netezza, redshiftもデフォルトシリアライザブル。 パラレルクエリが効かない!?(2) SET SESSION CHARACTERISTICS AS ISOLATION LEVEL SERIALIZABLE; Read committedに変更。 本件では、読み取りのみであるので、挙動に差異はない。
  • 34. © 2017 NTT DATA Corporation 34 • 10.0では、Prepared Statementを使っていると、パラレル されない場合がある。 • Custom plan …バインド変数を考慮した実行計画 • Generic plan …バインド変数を考慮しない実行計画 パラレルクエリが効かない!?(3) C C C C C C G C C G G10.0ではパラレルされない (10.1で修正済み) TableauのODBC接続パラメータでPreparedを使わないように設定。 Prepared Statement利用によるプランニング時間の短縮はできなくなる。
  • 35. © 2017 NTT DATA Corporation 35 • custom plan 補足:generic planであるかどうか?の確認 • generic plan Finalize Aggregate -> Gather Workers Planned: 4 -> Partial Aggregate -> Parallel Seq Scan on tenk1 Filter: (hundred > 1) Aggregate -> Seq Scan on tenk1 Filter: (hundred > $1)
  • 36. © 2017 NTT DATA Corporation 36 • EXPLANではパラレルプランになったが、EXPLAIN ANALYZEではパラレルにならない 例)max_worker_processes/max_parallel_workers による上限でワーカーが作成できない パラレルクエリが効かない!?(4) Finalize Aggregate (cost=75498.35..75498.36 rows=1 width=8) (actual time=2778.768..2778.768 rows=1 loops=1) -> Gather (cost=75497.93..75498.34 rows=4 width=8) (actual time=2778.761..2778.762 rows=1 loops=1) Workers Planned: 4 Workers Launched: 0 -> Partial Aggregate (cost=75497.93..75497.94 rows=1 width=8) (actual time=2778.595..2778.596 rows=1 loops=1) -> Parallel Seq Scan on test (cost=0.00..69247.94 rows=2499994 width=0) (actual time=0.015..1598.895 rows=10000000 loops=1) Planning time: 0.100 ms Execution time: 2778.937 ms (8 rows)
  • 37. © 2017 NTT DATA Corporation 37 • パラレルプランになったが、パラレル度が増えない • そもそも、パラレル度はどのように決まるのか? (1)PostgreSQLがコストとプロセス数上限を考慮 • parallel_setup_cost • parallel_tuple_cost • max_parallel_workers_per_gather • max_worker_processes (2)PostgreSQLがテーブルサイズで上限を計算 (3)ユーザがテーブルごとのパラメータ設定により上限を調整 • parallel_workers • ALTER TABLEでparallel workersを設定すれば、テーブルサイズから 計算されるパラレル数上限を突破できる。 パラレル度が増えない!? テーブルサイズ 8MB 24MB 72MB 216MB 648MB 1.8GB パラレル度上限 1 2 3 4 5 6 ※min_parallel_table_scan_size=8MBの場合
  • 38. © 2017 NTT DATA Corporation 38 • まずはパラメータを確認 • max_parallel_workers_per_gather • dynamic_shared_memory_type • max_worker_processes • parallel_workers • コストをさげてみる • parallel_setup_cost = 0 • parallel_tuple_cost = 0 • パラレルにならない条件を確認 • カーソルを使っていないか? • シリアライザブルになっていないか? • Preapared Statementのgeneric planになっていないか?(10.0の み) • その他PostgreSQLのマニュアルを確認 パラレルクエリが効かなかったら
  • 39. © 2017 NTT DATA Corporation 39 • PostgreSQL10、新しい時代の幕開け • DWH用途としてのPostgreSQLには、課題も残っているが、 十分闘える • 特にパラレルクエリの貢献は大きい • BIツールのバックエンドとして、PostgreSQLがスタンダードにな るかもしれない • BIツールのカスタマイズに頼らなくてもパラレルクエリが使えるよう に、今後、制約が少なくなることに期待 まとめ
  • 40. © 2017 NTT DATA Corporation