SlideShare a Scribd company logo
1 of 25
© 2023 NTT DATA Corporation
YugabyteDBの拡張機能
YugabyteDB Meetup #2
2023/6/14
NTTデータ 技術開発本部
笠原 辰仁
© 2023 NTT DATA Corporation 2
はじめに
• 自己紹介
• 笠原 辰仁 (KASAHARA Tatsuhito) @kasa_zip (Twitter)
• NTTデータ 技術革新統括本部 技術開発本部
• PostgreSQLのサポートや周辺ツールの開発などを18年以上
• 最近はYugabyteDBなどの分散SQLデータベース/NewSQLなども調査・検証
本日はPostgreSQLユーザの視点でYugabyteDBの拡張機能(Extension)の特徴などを
お話します。PostgreSQLやYugabyteDBの基本的な話は省いていますのでご容赦ください。
本日の内容は2023年6月の時点の情報となります。またYCQLの話は含んでいません。
この資料は後日に公開します。
© 2023 NTT DATA Corporation 3
目次
• Extensionについて
• YugabyteDBで利用できるExtension
• YugabyteDBで独自に改良しているExtension
• YugabyteDBでサポートされると嬉しいExtension
© 2023 NTT DATA Corporation 4
© 2022 NTT DATA Corporation 4
Extensionについて
© 2023 NTT DATA Corporation 5
Extensionについて
ExtensionはPostgreSQLの拡張機能を利用し、ユーザ定義の独自機能を含む
PostgreSQLへの機能追加を行うためのパッケージフレームワーク、あるいは拡張機能そのものを
指す。(本資料では拡張機能全般をExtensionと呼んでいる)
YugabyteDBはPostgreSQLと高い互換性を持っているため、PostgreSQLで利用可能な
Extensionをほぼそのまま利用することが可能。Extensionには大きく以下の3種類がある。
1. DBにオブジェクトを登録し、ユーザがそれを利用するもの
• (例 pgcrypto, pg_trgm
2. shared_preload_librariesなどに登録し、透過的に作用するもの
• (例 passwordcheck, auto_explain
3. 上記2つを併せ持つもの
• (例 pg_stat_statements, pg_hint_plan
© 2023 NTT DATA Corporation 6
DBにオブジェクトを登録し、ユーザがそれを利用するもの
DBにユーザ定義のオブジェクトを登録し、ユーザがそれを利用するもの。PostgreSQLはもともと
ユーザ定義のテーブルやビュー、データ型、(集約)関数、演算子、さらには新規のインデックスや
KVS/Columnarなどのデータモデルを作成し拡張できる。
多くの拡張機能はこのタイプ。利便性を高める関数やビュー、業務に特化した特殊なデータ型な
どが利用可能になる。PL/pgSQLなどのプロシージャ言語の他、CやRustなどでも作成可能。
PostgreSQL
CREATE EXTENSION xxxxx;
CREATE TABLE (col xxxx);
SELECT xxxxx();
【CREATE EXTENSIONの背後で関数などの作成が実施される】
CREATE TYPE xxxx;
CREATE FUNCTION xxxx();
・・・
© 2023 NTT DATA Corporation 7
DBにオブジェクトを登録し、ユーザがそれを利用するもの
ノード#1
YB-Master
YB-Tserver
ノード#2
YB-Tserver
ノード#3
YB-Tserver
YugabyteDBではSQLをTserver(postgresプロセス)で実施する。DB内に作成するテーブル
や関数などの情報はメタデータとしてMasterが管理する。そのため、DBに関数などを登録する
ExtensionはどこかのTserver上で実施すれば全てのTserverで利用可能になる。
CREATE EXTENSION xxxxx;
【関数などはMasterへ登録される】
CREATE TYPE xxxx;
CREATE FUNCTION xxxx();
・・・
CREATE TABLE (col xxxx);
SELECT xxxxx();
© 2023 NTT DATA Corporation 8
shared_preload_librariesなどに登録し、透過的に作用するもの
PostgreSQLのコード内部に定義されている様々なHookを利用する。 Hookは関数ポインタの
形でユーザが処理を差し込むことができるため、アドバンスな性能情報や内部処理のユーザカスタ
マイズが可能になる。shared_preload_librariesに拡張機能のライブラリを指定することで、
PostgreSQLのプロセスがForkされる際にHookの処理がロードされ有効化される。
PostgreSQL
Parse
Analyze/Rewrite
Plan
Execute
ExecutorStart_hook()
ExecutorEnd_hook()
shared_preload_libraries=
‘My_Extension’
My_ExecutorStart_hook()
My_ExecutorEnd_hook()
PostgreSQLの内部処理をフックして、独自の処理を差し込める。
例えばExecutorStart(クエリの実際の処理開始)でタイムスタンプを
取得し、ExecutorEnd(クエリの処理終了)で開始時との時間差分で
所要時間の計測などを行う、など。
Query
Result
© 2023 NTT DATA Corporation 9
shared_preload_librariesなどに登録し、透過的に作用するもの
YugabyteDBでも設定方法や作用はPostgreSQLと同様。shared_preload_librariesは
各Tserver個別で設定するため、例えば既存クラスタに追加のExtensionを導入する際は全て
のTserverの設定変更が必要。
ノード#1
YB-Tserver
ノード#2
YB-Tserver
ノード#3
YB-Tserver
Hookを利用するExtensionは各Tserverの(ysql_pg_confに指定される)shared_preload_librariesに
設定されることで有効化。そのため設定していないTserverでは無効になる。
© 2023 NTT DATA Corporation 10
2つを併せ持つもの
Hookを用いて取得される内部情報は、多くのケースで共有バッファなどに蓄積される。これら情
報の取得や情報のリセットなどをSQLで実施できるように、専用のビューや関数もセットで提供さ
れることが多い。
PostgreSQL
Parse
Analyze/Rewrite
Plan
Execute
ExecutorStart_hook()
ExecutorEnd_hook()
pg_stat_statements
pgss_ExecutorStart()
pgss_ExecutorEnd()
Query
Result
Hash Table
pg_stat_statemens view
pg_stat_statemens.reset() func
CREATE EXTENSION
pg_stat_statements;
SELECT * FROM
pg_stat_statements;
Hookで取得した情報を共有バッファ上のハッシュテー
ブルへ蓄積し、それらをCREATE EXTENSIONで
導入されるビューの形で参照させたりする。
(注意:pg_stat_statementsは他にも多数のHook
を使っている。図は簡略化している。)
© 2023 NTT DATA Corporation 11
2つを併せ持つもの
YugabyteDBではHookで取得される情報はTserver個別となる。例えばクエリの実行回数や累積所
要時間などのクエリの稼働統計情報を記録するpg_stat_statementsであれば、あるTserverで実行
されたクエリの性能統計情報は、そのTserver上でのみ記録している。そのためpg_stat_statements
の情報をユーザが直接参照している場足、クラスタ全体の情報を集約するのはユーザが行うことになる。
ノード#1
YB-Tserver
Query A
Query Aの稼働
統計情報を記録
Query C
ノード#3
YB-Tserver
Query Cの稼働
統計情報を記録
ノード#2
YB-Tserver
Query Bの稼働
統計情報を記録
Query B
各Tserverノード上で実行されたクエリの稼働統計情報は、それぞれ
のTserverでのみ保持される(メモリ上のデータでありTableやTabletの
形で保持されるもぼではないためレプリケーションはされない)
© 2023 NTT DATA Corporation 12
Extensionについて
Extensionの挙動に作用する設定パラメータなどの種類や使い方もPostgreSQLと同様。例えば、
auto_explain.log_min_durationによる設定をユーザ(ROLE)毎に設定して実行計画ログを
出力する閾値を異なるものにする、なども可能。
このように自由度の高いユーザ定義のオブジェクト作成や内部処理に干渉できるHookなどの活用
により様々な拡張機能が開発・利用できる。Extensionに関する設定や利用方法、ノウハウは
PostgreSQLとほぼ同様のものが使える。
-- app_user1にはauto_explainによる実行計画情報の出力閾値を10秒に設定
ALTER ROLE app_user1 SET auto_explain.log_min_duration TO ‘10s’;
-- app_user2にはauto_explainによる実行計画情報の出力を無効にする設定
ALTER ROLE app_user2 SET auto_explain.log_min_duration TO -1;
© 2023 NTT DATA Corporation 13
© 2022 NTT DATA Corporation 13
YugabyteDBで利用できるExtension
© 2023 NTT DATA Corporation 14
YugabyteDBで利用できるExtension
YugabyteDBではいくつかのPostgreSQL向けのExtensionをサポートしている。また、
YugabyteDB独自のExtensionも提供(あるいは開発中)。
https://docs.yugabyte.com/preview/explore/ysql-language-features/pg-extensions/
代表的なExtension 備考
PostgreSQLに同梱されており
YugabyteDBに同梱しているもの
pg_stat_statements, auto_explain,
pgcrypto, passwordcheck
YugabyteDB独自の機能付与を行って
いるものあり(後述)
Third-Party-ToolでYugabyteDB
に同梱しているもの
pg_hint_plan, orafce, pg_audit
Third-Party-ToolでYugabyteDB
で利用可能
PostGIS, pgsql-postal 手動でExtensionを入手し各Tserverへ
インストール(共有ライブラリなどの配置)を
しておく
YugabyteDB独自のもの yb_pg_metrics, ycql_fdw
YugabyteDBでは「pg_stat_statements, pg_audit, yb_pg_metrics, pg_hint_plan」がデフォルトで
shared_preload_librariesに設定されている。
© 2023 NTT DATA Corporation 15
YugabyteDBで利用できるExtension
ここ1年くらいでも利用可能なExtensionが増えており、新規のExtensionの導入の議論も行わ
れている。
ここ最近サポートされたもの
• v2.17
• [16092] [YSQL] Import HyperLogLog extension (postgresql-hll) ★カーディナリティ(ユニーク数)推定
• v2.15
• [2778] Add support for HypoPG extension★仮想インデックスによるプランチューニング
サポートに向けて議論されているもの(一部抜粋)
• [YSQL] Support pg_partman extension ★パーティション管理
• [New Feature] support for pgvector extension ★ベクトル情報の格納
• [New Feature] Add support for the Apache age extension to enable graph operations
★グラフモデルとアクセス用の機能
© 2023 NTT DATA Corporation 16
© 2022 NTT DATA Corporation 16
YugabyteDBで独自に改良しているExtension
© 2023 NTT DATA Corporation 17
YugabyteDBで独自に改良しているExtension
YugabyteDBではPostgreSQLのExtensionを独自に改良しているものがある。そのため
PostgreSQLユーザからは(場合によっては良い意味で)異なる仕様に見える。
本日はpasswordcheckとpg_stat_statementsの2つを紹介。
© 2023 NTT DATA Corporation 18
passwordcheckの改良
passwordcheckは文字通りパスワードの強度チェックを行うためのExtension。
CREATE ROLE(USER)実行時に「check_password_hook」というHookを介して独自のパスワード
チェックをPostgreSQLで実現できる。
PostgreSQLのpasswordcheckはハードコードされた「文字数(8文字)」と「英数字と記号の併用」の
みチェックしている。そもそもユーザがコードをカスタマイズして利用する前提の作り。
一方YugabyteDBは「文字数」「記号利用有無」「大文字利用有無」「小文字利用有無」「ユーザ名が
パスワードに含まれるか」がGUCパラメータ(Gflags)により設定可能な形で作られている。(ユーザ名がパ
スワードに含まれているかどうかの判断のみ、ハードコードされている)
CREATE ROLE
check_password_hook
PostgreSQLのpasswordcheck
check_password()
YugabyteDBのpasswordcheck
check_password()
パスワード文字数と英数字と記号
併用がされているか確認
passwordcheck.minimum_length
passwordcheck.restrict_lower
・・・
文字数や大文字小文字の利用
有無などを設定パラメータに従って
確認
© 2023 NTT DATA Corporation 19
pg_stat_statementsの改良
pg_stat_statementsの作りはPostgreSQLとほぼ同様だが、メトリクスの形でTserverが公開してい
るエンドポイント(:13000/statements)からもJSON形式で情報を取得できるようになっている。
YugabyteDB (Tserver)
Parse
Analyze/Rewrite
Plan
Execute
ExecutorStart_hook()
ExecutorEnd_hook()
pg_stat_statements
pgss_ExecutorStart()
pgss_ExecutorEnd()
Query
Result
Hash Table
pg_stat_statemens view
/statements でのJSON
情報でのエクスポート
SELECT * FROM
pg_stat_statements;
curl
http://xxxxx/statements
(注意:YugabyteDBでもPostgreSQL同様に
pg_stat_statementsは他にも多数のHookを使って
いる。図は簡略化している。)
© 2023 NTT DATA Corporation 20
pg_stat_statementsの改良
◆ curlによる取得例
$ curl -s http://<Tserver稼働ホスト>:13000/statements | jq '.statements[0]'
{
"query_id": -5817076229292125425,
"query": "SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i
WHERE c.oid=i.inhparent AND i.inhrelid = $1 AND c.relkind != $2 ORDER BY inhseqno",
"calls": 1,
"total_time": 0.19514599999999999,
"min_time": 0.19514599999999999,
"max_time": 0.19514599999999999,
"mean_time": 0.19514599999999999,
"stddev_time": 0.0,
"rows": 0
}
© 2023 NTT DATA Corporation 21
pg_stat_statementsの改良
また、独自に「レイテンシ(ms)のレンジとcall数」をヒストグラムとして記録する改良がv2.19で実施されており、90%ile
値などを取得できるようになっている。
https://github.com/yugabyte/yugabyte-db/commit/2fd44b1f8337fa21f4ca61569231a70f1987beb8
【Github上のCommit Messageより転載】
yugabyte=# select query, calls, yb_latency_histogram from pg_stat_statements;
-[ RECORD 1]-----------------------------------------------------------------
query | select pg_sleep($1)
calls | 9
yb_latency_histogram | [{"[0.1,0.2)": 4}, {"[0.2,0.3)": 1}, {"[0.8,0.9)": 1}, {"[1677721.6,)": 3}]
「レイテンシ(ms)のレンジとcall数」が複数のBucketで記録される。データ型はJSONB。
pg_stat_statementsでは各クエリ(ID)別にmin/max/mean/stddevは記録されるが、ヒストグラム
相当の分布情報を復元するのは難しいためDBAにはありがたい改良点。
© 2023 NTT DATA Corporation 22
© 2022 NTT DATA Corporation 22
YugabyteDBでサポートされると嬉しいExtension
© 2023 NTT DATA Corporation 23
YugabyteDBでサポートされると嬉しいExtension
PostgreSQLを利用しているプロジェクトでは、以下のYugabyteDBでは未サポートの
Extensionを使うケースがある。
• pg_bigm
• Pgroonga
これらは全文検索(Full Text Search)用のExtensionで、N-Gramや形態素解析での全文
検索を補助するための関数や演算子、インデックスアクセスメソッドを提供する。
YugabyteDBではpg_trgmというPostgreSQLのExtensionをサポートしているが、日本語
で多用される2文字検索ができない。YugabyteDBでもpg_bigm or PGroongaがサポート
されるとユースケースの幅が広がる。
© 2023 NTT DATA Corporation 24
おわりに
PostgreSQLのほとんどのExtensionがYugabyteDBでも同じように動くのは、PostgreSQL
ユーザとして既存のアプリケーションの作りや設計を流用しやすく有難い。
また、PostgreSQLコミュニティとしては非推奨機能(※)ではあるが、エンタープライズ領域で利用
することが多いpg_hint_planなどのサードパーティーツールがデフォルトで利用可能になっている
こともメリットと感じる。
さらに様々なExtensionがサポートされると、YugabyteDBの利用ケースの広がりそうで楽しみ。
(※) 本質的なクエリ記述の問題やPlannerの不具合を隠ぺいしてしまう、などの負の作用があるため。
https://wiki.postgresql.org/wiki/Not_Worth_Doing#Features_We_Do_Not_Want
© 2023 NTT DATA Corporation
その他、記載されている会社名、商品名、又はサービス名は、
各社の登録商標又は商標です。

More Related Content

What's hot

トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
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
 
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
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)Uptime Technologies LLC (JP)
 
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャKohei KaiGai
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
使いこなそうGUC
使いこなそうGUC使いこなそうGUC
使いこなそうGUCAkio Ishida
 

What's hot (20)

トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解する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アンカンファレンス@オンライン 発表資料)
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
使いこなそうGUC
使いこなそうGUC使いこなそうGUC
使いこなそうGUC
 

Similar to YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)

PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密ShuheiUda
 
20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回Keiji Kamebuchi
 
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
 
build2017のazure関連情報まとめ
build2017のazure関連情報まとめbuild2017のazure関連情報まとめ
build2017のazure関連情報まとめ裕之 木下
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...NTT DATA Technology & Innovation
 
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートOracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートオラクルエンジニア通信
 
20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDB20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDBKohei KaiGai
 
Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Kazushi Kamegawa
 
Clustrixによる社内データベースクラウド環境の提供
Clustrixによる社内データベースクラウド環境の提供Clustrixによる社内データベースクラウド環境の提供
Clustrixによる社内データベースクラウド環境の提供Rakuten Group, Inc.
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシートMasayuki Ozawa
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αTakeshi Yamamuro
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用Rakuten Group, Inc.
 
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

Similar to YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料) (20)

PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
 
20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回
 
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 発表資料)
 
build2017のazure関連情報まとめ
build2017のazure関連情報まとめbuild2017のazure関連情報まとめ
build2017のazure関連情報まとめ
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
 
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートOracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
 
20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDB20180914 GTCJ INCEPTION HeteroDB
20180914 GTCJ INCEPTION HeteroDB
 
Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介
 
Clustrixによる社内データベースクラウド環境の提供
Clustrixによる社内データベースクラウド環境の提供Clustrixによる社内データベースクラウド環境の提供
Clustrixによる社内データベースクラウド環境の提供
 
Oracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud ServiceユーザーズガイドOracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud Serviceユーザーズガイド
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシート
 
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
 
楽天における大規模データベースの運用
楽天における大規模データベースの運用楽天における大規模データベースの運用
楽天における大規模データベースの運用
 
G gencorp
G gencorpG gencorp
G gencorp
 
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

More from NTT DATA Technology & Innovation

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
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
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)NTT DATA Technology & Innovation
 
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(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 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
 
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)

  • 1. © 2023 NTT DATA Corporation YugabyteDBの拡張機能 YugabyteDB Meetup #2 2023/6/14 NTTデータ 技術開発本部 笠原 辰仁
  • 2. © 2023 NTT DATA Corporation 2 はじめに • 自己紹介 • 笠原 辰仁 (KASAHARA Tatsuhito) @kasa_zip (Twitter) • NTTデータ 技術革新統括本部 技術開発本部 • PostgreSQLのサポートや周辺ツールの開発などを18年以上 • 最近はYugabyteDBなどの分散SQLデータベース/NewSQLなども調査・検証 本日はPostgreSQLユーザの視点でYugabyteDBの拡張機能(Extension)の特徴などを お話します。PostgreSQLやYugabyteDBの基本的な話は省いていますのでご容赦ください。 本日の内容は2023年6月の時点の情報となります。またYCQLの話は含んでいません。 この資料は後日に公開します。
  • 3. © 2023 NTT DATA Corporation 3 目次 • Extensionについて • YugabyteDBで利用できるExtension • YugabyteDBで独自に改良しているExtension • YugabyteDBでサポートされると嬉しいExtension
  • 4. © 2023 NTT DATA Corporation 4 © 2022 NTT DATA Corporation 4 Extensionについて
  • 5. © 2023 NTT DATA Corporation 5 Extensionについて ExtensionはPostgreSQLの拡張機能を利用し、ユーザ定義の独自機能を含む PostgreSQLへの機能追加を行うためのパッケージフレームワーク、あるいは拡張機能そのものを 指す。(本資料では拡張機能全般をExtensionと呼んでいる) YugabyteDBはPostgreSQLと高い互換性を持っているため、PostgreSQLで利用可能な Extensionをほぼそのまま利用することが可能。Extensionには大きく以下の3種類がある。 1. DBにオブジェクトを登録し、ユーザがそれを利用するもの • (例 pgcrypto, pg_trgm 2. shared_preload_librariesなどに登録し、透過的に作用するもの • (例 passwordcheck, auto_explain 3. 上記2つを併せ持つもの • (例 pg_stat_statements, pg_hint_plan
  • 6. © 2023 NTT DATA Corporation 6 DBにオブジェクトを登録し、ユーザがそれを利用するもの DBにユーザ定義のオブジェクトを登録し、ユーザがそれを利用するもの。PostgreSQLはもともと ユーザ定義のテーブルやビュー、データ型、(集約)関数、演算子、さらには新規のインデックスや KVS/Columnarなどのデータモデルを作成し拡張できる。 多くの拡張機能はこのタイプ。利便性を高める関数やビュー、業務に特化した特殊なデータ型な どが利用可能になる。PL/pgSQLなどのプロシージャ言語の他、CやRustなどでも作成可能。 PostgreSQL CREATE EXTENSION xxxxx; CREATE TABLE (col xxxx); SELECT xxxxx(); 【CREATE EXTENSIONの背後で関数などの作成が実施される】 CREATE TYPE xxxx; CREATE FUNCTION xxxx(); ・・・
  • 7. © 2023 NTT DATA Corporation 7 DBにオブジェクトを登録し、ユーザがそれを利用するもの ノード#1 YB-Master YB-Tserver ノード#2 YB-Tserver ノード#3 YB-Tserver YugabyteDBではSQLをTserver(postgresプロセス)で実施する。DB内に作成するテーブル や関数などの情報はメタデータとしてMasterが管理する。そのため、DBに関数などを登録する ExtensionはどこかのTserver上で実施すれば全てのTserverで利用可能になる。 CREATE EXTENSION xxxxx; 【関数などはMasterへ登録される】 CREATE TYPE xxxx; CREATE FUNCTION xxxx(); ・・・ CREATE TABLE (col xxxx); SELECT xxxxx();
  • 8. © 2023 NTT DATA Corporation 8 shared_preload_librariesなどに登録し、透過的に作用するもの PostgreSQLのコード内部に定義されている様々なHookを利用する。 Hookは関数ポインタの 形でユーザが処理を差し込むことができるため、アドバンスな性能情報や内部処理のユーザカスタ マイズが可能になる。shared_preload_librariesに拡張機能のライブラリを指定することで、 PostgreSQLのプロセスがForkされる際にHookの処理がロードされ有効化される。 PostgreSQL Parse Analyze/Rewrite Plan Execute ExecutorStart_hook() ExecutorEnd_hook() shared_preload_libraries= ‘My_Extension’ My_ExecutorStart_hook() My_ExecutorEnd_hook() PostgreSQLの内部処理をフックして、独自の処理を差し込める。 例えばExecutorStart(クエリの実際の処理開始)でタイムスタンプを 取得し、ExecutorEnd(クエリの処理終了)で開始時との時間差分で 所要時間の計測などを行う、など。 Query Result
  • 9. © 2023 NTT DATA Corporation 9 shared_preload_librariesなどに登録し、透過的に作用するもの YugabyteDBでも設定方法や作用はPostgreSQLと同様。shared_preload_librariesは 各Tserver個別で設定するため、例えば既存クラスタに追加のExtensionを導入する際は全て のTserverの設定変更が必要。 ノード#1 YB-Tserver ノード#2 YB-Tserver ノード#3 YB-Tserver Hookを利用するExtensionは各Tserverの(ysql_pg_confに指定される)shared_preload_librariesに 設定されることで有効化。そのため設定していないTserverでは無効になる。
  • 10. © 2023 NTT DATA Corporation 10 2つを併せ持つもの Hookを用いて取得される内部情報は、多くのケースで共有バッファなどに蓄積される。これら情 報の取得や情報のリセットなどをSQLで実施できるように、専用のビューや関数もセットで提供さ れることが多い。 PostgreSQL Parse Analyze/Rewrite Plan Execute ExecutorStart_hook() ExecutorEnd_hook() pg_stat_statements pgss_ExecutorStart() pgss_ExecutorEnd() Query Result Hash Table pg_stat_statemens view pg_stat_statemens.reset() func CREATE EXTENSION pg_stat_statements; SELECT * FROM pg_stat_statements; Hookで取得した情報を共有バッファ上のハッシュテー ブルへ蓄積し、それらをCREATE EXTENSIONで 導入されるビューの形で参照させたりする。 (注意:pg_stat_statementsは他にも多数のHook を使っている。図は簡略化している。)
  • 11. © 2023 NTT DATA Corporation 11 2つを併せ持つもの YugabyteDBではHookで取得される情報はTserver個別となる。例えばクエリの実行回数や累積所 要時間などのクエリの稼働統計情報を記録するpg_stat_statementsであれば、あるTserverで実行 されたクエリの性能統計情報は、そのTserver上でのみ記録している。そのためpg_stat_statements の情報をユーザが直接参照している場足、クラスタ全体の情報を集約するのはユーザが行うことになる。 ノード#1 YB-Tserver Query A Query Aの稼働 統計情報を記録 Query C ノード#3 YB-Tserver Query Cの稼働 統計情報を記録 ノード#2 YB-Tserver Query Bの稼働 統計情報を記録 Query B 各Tserverノード上で実行されたクエリの稼働統計情報は、それぞれ のTserverでのみ保持される(メモリ上のデータでありTableやTabletの 形で保持されるもぼではないためレプリケーションはされない)
  • 12. © 2023 NTT DATA Corporation 12 Extensionについて Extensionの挙動に作用する設定パラメータなどの種類や使い方もPostgreSQLと同様。例えば、 auto_explain.log_min_durationによる設定をユーザ(ROLE)毎に設定して実行計画ログを 出力する閾値を異なるものにする、なども可能。 このように自由度の高いユーザ定義のオブジェクト作成や内部処理に干渉できるHookなどの活用 により様々な拡張機能が開発・利用できる。Extensionに関する設定や利用方法、ノウハウは PostgreSQLとほぼ同様のものが使える。 -- app_user1にはauto_explainによる実行計画情報の出力閾値を10秒に設定 ALTER ROLE app_user1 SET auto_explain.log_min_duration TO ‘10s’; -- app_user2にはauto_explainによる実行計画情報の出力を無効にする設定 ALTER ROLE app_user2 SET auto_explain.log_min_duration TO -1;
  • 13. © 2023 NTT DATA Corporation 13 © 2022 NTT DATA Corporation 13 YugabyteDBで利用できるExtension
  • 14. © 2023 NTT DATA Corporation 14 YugabyteDBで利用できるExtension YugabyteDBではいくつかのPostgreSQL向けのExtensionをサポートしている。また、 YugabyteDB独自のExtensionも提供(あるいは開発中)。 https://docs.yugabyte.com/preview/explore/ysql-language-features/pg-extensions/ 代表的なExtension 備考 PostgreSQLに同梱されており YugabyteDBに同梱しているもの pg_stat_statements, auto_explain, pgcrypto, passwordcheck YugabyteDB独自の機能付与を行って いるものあり(後述) Third-Party-ToolでYugabyteDB に同梱しているもの pg_hint_plan, orafce, pg_audit Third-Party-ToolでYugabyteDB で利用可能 PostGIS, pgsql-postal 手動でExtensionを入手し各Tserverへ インストール(共有ライブラリなどの配置)を しておく YugabyteDB独自のもの yb_pg_metrics, ycql_fdw YugabyteDBでは「pg_stat_statements, pg_audit, yb_pg_metrics, pg_hint_plan」がデフォルトで shared_preload_librariesに設定されている。
  • 15. © 2023 NTT DATA Corporation 15 YugabyteDBで利用できるExtension ここ1年くらいでも利用可能なExtensionが増えており、新規のExtensionの導入の議論も行わ れている。 ここ最近サポートされたもの • v2.17 • [16092] [YSQL] Import HyperLogLog extension (postgresql-hll) ★カーディナリティ(ユニーク数)推定 • v2.15 • [2778] Add support for HypoPG extension★仮想インデックスによるプランチューニング サポートに向けて議論されているもの(一部抜粋) • [YSQL] Support pg_partman extension ★パーティション管理 • [New Feature] support for pgvector extension ★ベクトル情報の格納 • [New Feature] Add support for the Apache age extension to enable graph operations ★グラフモデルとアクセス用の機能
  • 16. © 2023 NTT DATA Corporation 16 © 2022 NTT DATA Corporation 16 YugabyteDBで独自に改良しているExtension
  • 17. © 2023 NTT DATA Corporation 17 YugabyteDBで独自に改良しているExtension YugabyteDBではPostgreSQLのExtensionを独自に改良しているものがある。そのため PostgreSQLユーザからは(場合によっては良い意味で)異なる仕様に見える。 本日はpasswordcheckとpg_stat_statementsの2つを紹介。
  • 18. © 2023 NTT DATA Corporation 18 passwordcheckの改良 passwordcheckは文字通りパスワードの強度チェックを行うためのExtension。 CREATE ROLE(USER)実行時に「check_password_hook」というHookを介して独自のパスワード チェックをPostgreSQLで実現できる。 PostgreSQLのpasswordcheckはハードコードされた「文字数(8文字)」と「英数字と記号の併用」の みチェックしている。そもそもユーザがコードをカスタマイズして利用する前提の作り。 一方YugabyteDBは「文字数」「記号利用有無」「大文字利用有無」「小文字利用有無」「ユーザ名が パスワードに含まれるか」がGUCパラメータ(Gflags)により設定可能な形で作られている。(ユーザ名がパ スワードに含まれているかどうかの判断のみ、ハードコードされている) CREATE ROLE check_password_hook PostgreSQLのpasswordcheck check_password() YugabyteDBのpasswordcheck check_password() パスワード文字数と英数字と記号 併用がされているか確認 passwordcheck.minimum_length passwordcheck.restrict_lower ・・・ 文字数や大文字小文字の利用 有無などを設定パラメータに従って 確認
  • 19. © 2023 NTT DATA Corporation 19 pg_stat_statementsの改良 pg_stat_statementsの作りはPostgreSQLとほぼ同様だが、メトリクスの形でTserverが公開してい るエンドポイント(:13000/statements)からもJSON形式で情報を取得できるようになっている。 YugabyteDB (Tserver) Parse Analyze/Rewrite Plan Execute ExecutorStart_hook() ExecutorEnd_hook() pg_stat_statements pgss_ExecutorStart() pgss_ExecutorEnd() Query Result Hash Table pg_stat_statemens view /statements でのJSON 情報でのエクスポート SELECT * FROM pg_stat_statements; curl http://xxxxx/statements (注意:YugabyteDBでもPostgreSQL同様に pg_stat_statementsは他にも多数のHookを使って いる。図は簡略化している。)
  • 20. © 2023 NTT DATA Corporation 20 pg_stat_statementsの改良 ◆ curlによる取得例 $ curl -s http://<Tserver稼働ホスト>:13000/statements | jq '.statements[0]' { "query_id": -5817076229292125425, "query": "SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhparent AND i.inhrelid = $1 AND c.relkind != $2 ORDER BY inhseqno", "calls": 1, "total_time": 0.19514599999999999, "min_time": 0.19514599999999999, "max_time": 0.19514599999999999, "mean_time": 0.19514599999999999, "stddev_time": 0.0, "rows": 0 }
  • 21. © 2023 NTT DATA Corporation 21 pg_stat_statementsの改良 また、独自に「レイテンシ(ms)のレンジとcall数」をヒストグラムとして記録する改良がv2.19で実施されており、90%ile 値などを取得できるようになっている。 https://github.com/yugabyte/yugabyte-db/commit/2fd44b1f8337fa21f4ca61569231a70f1987beb8 【Github上のCommit Messageより転載】 yugabyte=# select query, calls, yb_latency_histogram from pg_stat_statements; -[ RECORD 1]----------------------------------------------------------------- query | select pg_sleep($1) calls | 9 yb_latency_histogram | [{"[0.1,0.2)": 4}, {"[0.2,0.3)": 1}, {"[0.8,0.9)": 1}, {"[1677721.6,)": 3}] 「レイテンシ(ms)のレンジとcall数」が複数のBucketで記録される。データ型はJSONB。 pg_stat_statementsでは各クエリ(ID)別にmin/max/mean/stddevは記録されるが、ヒストグラム 相当の分布情報を復元するのは難しいためDBAにはありがたい改良点。
  • 22. © 2023 NTT DATA Corporation 22 © 2022 NTT DATA Corporation 22 YugabyteDBでサポートされると嬉しいExtension
  • 23. © 2023 NTT DATA Corporation 23 YugabyteDBでサポートされると嬉しいExtension PostgreSQLを利用しているプロジェクトでは、以下のYugabyteDBでは未サポートの Extensionを使うケースがある。 • pg_bigm • Pgroonga これらは全文検索(Full Text Search)用のExtensionで、N-Gramや形態素解析での全文 検索を補助するための関数や演算子、インデックスアクセスメソッドを提供する。 YugabyteDBではpg_trgmというPostgreSQLのExtensionをサポートしているが、日本語 で多用される2文字検索ができない。YugabyteDBでもpg_bigm or PGroongaがサポート されるとユースケースの幅が広がる。
  • 24. © 2023 NTT DATA Corporation 24 おわりに PostgreSQLのほとんどのExtensionがYugabyteDBでも同じように動くのは、PostgreSQL ユーザとして既存のアプリケーションの作りや設計を流用しやすく有難い。 また、PostgreSQLコミュニティとしては非推奨機能(※)ではあるが、エンタープライズ領域で利用 することが多いpg_hint_planなどのサードパーティーツールがデフォルトで利用可能になっている こともメリットと感じる。 さらに様々なExtensionがサポートされると、YugabyteDBの利用ケースの広がりそうで楽しみ。 (※) 本質的なクエリ記述の問題やPlannerの不具合を隠ぺいしてしまう、などの負の作用があるため。 https://wiki.postgresql.org/wiki/Not_Worth_Doing#Features_We_Do_Not_Want
  • 25. © 2023 NTT DATA Corporation その他、記載されている会社名、商品名、又はサービス名は、 各社の登録商標又は商標です。