9月11日、
PostgreSQL9.4 最新情報セミナー
~新しいJSONデータ型開発者のOleg氏を迎えて~
を聞いてきたので、メモメモ
最近勢いでてきた
日本は、以前からPostgreSQLつよい
エンタープライズ、基幹業務で使われる
外国での勢いすごい!
イギリス気象庁
GINインデックス
2006年、国際コンファレンス
・前文検索
・GINインデックス
・locale対応
ロシアでの開発状況
9.4 9月末リリース予定
自己紹介
アジェンダ
JSONB,いんでくしんぐ、ウォッカ
問題
・BigData
・Webアプリ→サービス指向
一貫性
同時実行
ACIDの負荷をかるく
・新しいDB NoSQL
スケーラブル、えふぃしゃんと、フォールトトレラント
NOSQL
・キーバリュー
・カラムファミリー
・ドキュメント
・グラフ
問題点
・ACIDが必要でNoSQLの柔軟性
・RDBでスキーマ変更は難しい
・リリースタイミング
・JSONフォーマット=スキーマなしに対応できる!
課題
PostgreSQLのチャレンジ
・PostgreSQLに半構造化データ
ストレージ
演算子
拡張子
・PostgreSQLはスキーマレスで2003から
→HStore
Google Insightでしらべると。。。
2006年→発表したときから注目
HStore
・キーバリューのペア
・スキーマ変更いらない
・インデックスもサポートしている
2006年12月 HStore
2007年 GINインデックス
転地インデックス
GIN2つのツリー
エントリー:キーワード
ポスティング:ページ番号とか
汎用転地インデックス
GIN9.4改善点
・圧縮
・検索早くなった
よく出てくる言語に比例
めったに確認されないほうに
valueにレアを使うと早い
9.4にするとはやくなる
エクステンション入れても早くなる
シンプルすぎた→JSONへ
HStore VS JSON
・でもJSONはおそい
→HStoreのドキュメントベースモデル必要
→JSON
2年前:ねすてぃっどHStore
PGCon2013で
→ネステッドHStoreよりJSONBへ
JSONB;バイナリーJSON
JSON:AS IS
JSONB:重複なし、ソーテッドされている
入力パフォーマンス
JSON:おそくなる
JSONB:もっとおそくなる
検索パフォーマンス
JSONB:1秒
JSON:9.6秒
JSONBのほうがはやい
pathとバリューを組み合わせると、2000倍早くなる
MongoDBと比べると・・・
ローディング 13分→JSONB 43秒
検索 ほぼ同じ
インデックス JSONBのほうが早い
指定の仕方
・ルートから特定化
・JSONBの検索言語:JSQuery
キーへの演算子
バリュー向け演算子
タイプチェック
・オプティマイザーがないと遅くなる
プランナーを使って時間短縮
・JSQuery
オプティマイザー New
ヒント-New -noindexなど
・エクステンションで導入可能
マイクロソフト:JSONサポートない
Oracle:ない
MySQL:インデックスとかはサポートしない
PostgreSQL:サポート
GINインデックス
・2つのキー
・インデックスの長さ制限
アクセス方法
・spgist opclass
・GIS フルテキストサーチ
CREATE INDEX USING VODKA(うぉっか)
・インデックスツリーは選べる
・エンティティにSPGistとか
・VODKAでは、Rtree→Bではない
→マルチカラムインデックス
・いっしょにやりたいひとがいたらかんげい
VODKA(うぉっか):飲み物ではない
→Optimized Dendriform Keys Array
GIN(じん):飲み物ではない
→アラビアンナイトの魔法かけるジーニーから
Q&A
ヒントはPostgreSQLいれないっていう方針だけど、
どうやってYESと言わせた?
→エクステンションなんで・・・ってことで・・・
トランザクションに対応しているか?
JSONBは対応している
■PostgreSQL9.4評価検証報告
●Part1 性能アップって、どのくらいですか?
・GINインデックス性能改善
すべての局面で早くなった
→ポイント気にせずに作っても
→さっきの話だと、レアなものを選ぶと
・WALの性能改善
WAL:トランザクション
WAL出力量が減った
→流れるデータで変わる
・WAL書き込みの同時実行性
CPUコア数多く、ディスクは早いとき
・JSONとJSONB型の比較
投入はJSONBが少し遅い
GINインデックス
関数インデックス
検索はインデックス使わなくても
所要時間半分:バイナリで格納
・CouchBaseと比較
投入
やはり、couchbaseがはやい。が、大差ないが。。
並列ランダム更新
couchbaseがはやい
読み込み
GINインデックス使ったほうがはやい
●Part2 この新機能は何ですか?
・レプリケーションスロット
プライマリとスタンバイをつなぐ絆
→レプリケーションコンフリクトを起こさないため
WAL削除の問題を起こさないため
・logicalレプリケーションスロットの可能性
・更新ビューのCHECKオプション
集約クエリでFILTERオプション
・ALTER SYSTEMで設定変更できる
ALTER TABLESPACE MOVEで一括移動
・REFRESH MATERIALIZED VIEWの
CONCURRENTLYオプション
→マテビューにゆにーくインデックス必要
・ALTER TABLEのロック競合
●レポート形式の資料
「PostgreSQL9.4に関する検証報告」
SRA OSS 日本支社→技術情報→PostgreSQL
JSONBのクラス
今日現在、いいのはない
アプリに使うときの指針
カラムとの比較
PostgreSQL9.4 最新情報セミナー
~新しいJSONデータ型開発者のOleg氏を迎えて~
を聞いてきたので、メモメモ
最近勢いでてきた
日本は、以前からPostgreSQLつよい
エンタープライズ、基幹業務で使われる
外国での勢いすごい!
イギリス気象庁
GINインデックス
2006年、国際コンファレンス
・前文検索
・GINインデックス
・locale対応
ロシアでの開発状況
9.4 9月末リリース予定
自己紹介
アジェンダ
JSONB,いんでくしんぐ、ウォッカ
問題
・BigData
・Webアプリ→サービス指向
一貫性
同時実行
ACIDの負荷をかるく
・新しいDB NoSQL
スケーラブル、えふぃしゃんと、フォールトトレラント
NOSQL
・キーバリュー
・カラムファミリー
・ドキュメント
・グラフ
問題点
・ACIDが必要でNoSQLの柔軟性
・RDBでスキーマ変更は難しい
・リリースタイミング
・JSONフォーマット=スキーマなしに対応できる!
課題
PostgreSQLのチャレンジ
・PostgreSQLに半構造化データ
ストレージ
演算子
拡張子
・PostgreSQLはスキーマレスで2003から
→HStore
Google Insightでしらべると。。。
2006年→発表したときから注目
HStore
・キーバリューのペア
・スキーマ変更いらない
・インデックスもサポートしている
2006年12月 HStore
2007年 GINインデックス
転地インデックス
GIN2つのツリー
エントリー:キーワード
ポスティング:ページ番号とか
汎用転地インデックス
GIN9.4改善点
・圧縮
・検索早くなった
よく出てくる言語に比例
めったに確認されないほうに
valueにレアを使うと早い
9.4にするとはやくなる
エクステンション入れても早くなる
シンプルすぎた→JSONへ
HStore VS JSON
・でもJSONはおそい
→HStoreのドキュメントベースモデル必要
→JSON
2年前:ねすてぃっどHStore
PGCon2013で
→ネステッドHStoreよりJSONBへ
JSONB;バイナリーJSON
JSON:AS IS
JSONB:重複なし、ソーテッドされている
入力パフォーマンス
JSON:おそくなる
JSONB:もっとおそくなる
検索パフォーマンス
JSONB:1秒
JSON:9.6秒
JSONBのほうがはやい
pathとバリューを組み合わせると、2000倍早くなる
MongoDBと比べると・・・
ローディング 13分→JSONB 43秒
検索 ほぼ同じ
インデックス JSONBのほうが早い
指定の仕方
・ルートから特定化
・JSONBの検索言語:JSQuery
キーへの演算子
バリュー向け演算子
タイプチェック
・オプティマイザーがないと遅くなる
プランナーを使って時間短縮
・JSQuery
オプティマイザー New
ヒント-New -noindexなど
・エクステンションで導入可能
マイクロソフト:JSONサポートない
Oracle:ない
MySQL:インデックスとかはサポートしない
PostgreSQL:サポート
GINインデックス
・2つのキー
・インデックスの長さ制限
アクセス方法
・spgist opclass
・GIS フルテキストサーチ
CREATE INDEX USING VODKA(うぉっか)
・インデックスツリーは選べる
・エンティティにSPGistとか
・VODKAでは、Rtree→Bではない
→マルチカラムインデックス
・いっしょにやりたいひとがいたらかんげい
VODKA(うぉっか):飲み物ではない
→Optimized Dendriform Keys Array
GIN(じん):飲み物ではない
→アラビアンナイトの魔法かけるジーニーから
Q&A
ヒントはPostgreSQLいれないっていう方針だけど、
どうやってYESと言わせた?
→エクステンションなんで・・・ってことで・・・
トランザクションに対応しているか?
JSONBは対応している
■PostgreSQL9.4評価検証報告
●Part1 性能アップって、どのくらいですか?
・GINインデックス性能改善
すべての局面で早くなった
→ポイント気にせずに作っても
→さっきの話だと、レアなものを選ぶと
・WALの性能改善
WAL:トランザクション
WAL出力量が減った
→流れるデータで変わる
・WAL書き込みの同時実行性
CPUコア数多く、ディスクは早いとき
・JSONとJSONB型の比較
投入はJSONBが少し遅い
GINインデックス
関数インデックス
検索はインデックス使わなくても
所要時間半分:バイナリで格納
・CouchBaseと比較
投入
やはり、couchbaseがはやい。が、大差ないが。。
並列ランダム更新
couchbaseがはやい
読み込み
GINインデックス使ったほうがはやい
●Part2 この新機能は何ですか?
・レプリケーションスロット
プライマリとスタンバイをつなぐ絆
→レプリケーションコンフリクトを起こさないため
WAL削除の問題を起こさないため
・logicalレプリケーションスロットの可能性
・更新ビューのCHECKオプション
集約クエリでFILTERオプション
・ALTER SYSTEMで設定変更できる
ALTER TABLESPACE MOVEで一括移動
・REFRESH MATERIALIZED VIEWの
CONCURRENTLYオプション
→マテビューにゆにーくインデックス必要
・ALTER TABLEのロック競合
●レポート形式の資料
「PostgreSQL9.4に関する検証報告」
SRA OSS 日本支社→技術情報→PostgreSQL
JSONBのクラス
今日現在、いいのはない
アプリに使うときの指針
カラムとの比較