Skip to main content
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
EN
Upload
Download free for 30 days
Sign in
NS
Uploaded by
NTT DATA OSS Professional Services
PDF, PPTX
9,687 views
JSONBはPostgreSQL9.5でいかに改善されたのか
MyNA・JPUG合同DB勉強会 in 東京 発表量 『JSONBはPostgreSQL9.5でいかに改善されたのか』
Technology
◦
Read more
6
Save
Share
Embed
Save to Drive
Download now
Download as PDF, PPTX
1
/ 39
2
/ 39
3
/ 39
4
/ 39
5
/ 39
6
/ 39
7
/ 39
8
/ 39
9
/ 39
10
/ 39
11
/ 39
12
/ 39
13
/ 39
14
/ 39
15
/ 39
16
/ 39
17
/ 39
18
/ 39
19
/ 39
20
/ 39
More Related Content
PDF
show コマンド結果をパースする方法あれこれ #npstudy
by
akira6592
28 slides
7.3K views
PDF
使ってみませんか?pg_hint_plan
by
NTT DATA OSS Professional Services
29 slides
24.8K views
PDF
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
13 slides
794 views
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
46 slides
40.1K views
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
15 slides
4.1K views
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
by
NTT DATA Technology & Innovation
61 slides
4.3K views
PDF
Vacuum徹底解説
by
Masahiko Sawada
51 slides
7.5K views
PDF
まずやっとくPostgreSQLチューニング
by
Kosuke Kida
38 slides
56.9K views
show コマンド結果をパースする方法あれこれ #npstudy
by
akira6592
28 slides
7.3K views
使ってみませんか?pg_hint_plan
by
NTT DATA OSS Professional Services
29 slides
24.8K views
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
13 slides
794 views
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
46 slides
40.1K views
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
15 slides
4.1K views
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
by
NTT DATA Technology & Innovation
61 slides
4.3K views
Vacuum徹底解説
by
Masahiko Sawada
51 slides
7.5K views
まずやっとくPostgreSQLチューニング
by
Kosuke Kida
38 slides
56.9K views
What's hot
PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
by
NTT DATA Technology & Innovation
44 slides
7.2K views
PDF
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
21 slides
3.2K views
PDF
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
33 slides
1.3K views
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
38 slides
2.2K views
PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
67 slides
57.6K views
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
by
NTT DATA Technology & Innovation
44 slides
970 views
PDF
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
by
NTT DATA Technology & Innovation
66 slides
3.2K views
PDF
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
38 slides
1.6K views
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
by
Recruit Technologies
45 slides
60.4K views
PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
18 slides
4K views
PDF
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
33 slides
2K views
PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
14 slides
4.8K views
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
by
NTT DATA Technology & Innovation
47 slides
4K views
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
69 slides
32.2K views
PDF
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
by
Masahiko Sawada
32 slides
1.3K views
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
by
Hironobu Suzuki
150 slides
21.9K views
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
63 slides
6.7K views
PDF
pg_dbms_statsの紹介
by
NTT DATA OSS Professional Services
19 slides
4K views
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
63 slides
6K views
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
14 slides
3.7K views
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
by
NTT DATA Technology & Innovation
44 slides
7.2K views
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
21 slides
3.2K views
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
33 slides
1.3K views
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
38 slides
2.2K views
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
67 slides
57.6K views
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
by
NTT DATA Technology & Innovation
44 slides
970 views
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
by
NTT DATA Technology & Innovation
66 slides
3.2K views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
38 slides
1.6K views
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
by
Recruit Technologies
45 slides
60.4K views
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
18 slides
4K views
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
33 slides
2K views
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
14 slides
4.8K views
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
by
NTT DATA Technology & Innovation
47 slides
4K views
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
69 slides
32.2K views
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
by
Masahiko Sawada
32 slides
1.3K views
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
by
Hironobu Suzuki
150 slides
21.9K views
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
63 slides
6.7K views
pg_dbms_statsの紹介
by
NTT DATA OSS Professional Services
19 slides
4K views
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
63 slides
6K views
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
14 slides
3.7K views
Similar to JSONBはPostgreSQL9.5でいかに改善されたのか
PDF
PGCon.jp 2014 jsonb-datatype-20141205
by
Toshi Harada
126 slides
4.7K views
PDF
PostgreSQL 9.5 新機能紹介
by
NTT DATA OSS Professional Services
60 slides
43K views
PDF
Jpug study-jsonb-datatype-20141011
by
Toshi Harada
90 slides
2.8K views
PDF
MyNA JPUG study 20160220-postgresql-json-datatype
by
Toshi Harada
88 slides
2.6K views
PDF
Chugokudb study-20150131
by
Toshi Harada
133 slides
2.1K views
PDF
JSONB型でpostgresをNoSQLっぽく使う
by
Yuki Takeichi
26 slides
2K views
PDF
Postgre sql9.3新機能紹介
by
Daichi Egawa
64 slides
12.3K views
PDF
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
38 slides
1K views
PDF
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
by
Satoshi Nagayasu
56 slides
2.3K views
PDF
Lt ingaoho-jsonb+postgeres fdw
by
Toshi Harada
29 slides
1.3K views
PDF
20150530 pgunconf-pgbench-semi-structured-benchmark
by
Toshi Harada
39 slides
2K views
PDF
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
by
Insight Technology, Inc.
61 slides
1.4K views
PDF
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
by
Ryuichiro Munechika
26 slides
6K views
PDF
pg_bigmを触り始めた人に伝えたいこと
by
Masahiko Sawada
26 slides
1.3K views
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
53 slides
15K views
PDF
20150530 pgunconf-ycsb-jsonb
by
Toshi Harada
37 slides
952 views
PDF
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
by
kwatch
20 slides
5.2K views
PDF
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
by
NTT DATA Technology & Innovation
38 slides
1K views
PDF
10大ニュースで振り返るPGCon2015
by
NTT DATA OSS Professional Services
57 slides
4.6K views
PDF
KOF2015 PostgreSQL 9.5
by
Toshi Harada
83 slides
1.6K views
PGCon.jp 2014 jsonb-datatype-20141205
by
Toshi Harada
126 slides
4.7K views
PostgreSQL 9.5 新機能紹介
by
NTT DATA OSS Professional Services
60 slides
43K views
Jpug study-jsonb-datatype-20141011
by
Toshi Harada
90 slides
2.8K views
MyNA JPUG study 20160220-postgresql-json-datatype
by
Toshi Harada
88 slides
2.6K views
Chugokudb study-20150131
by
Toshi Harada
133 slides
2.1K views
JSONB型でpostgresをNoSQLっぽく使う
by
Yuki Takeichi
26 slides
2K views
Postgre sql9.3新機能紹介
by
Daichi Egawa
64 slides
12.3K views
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
38 slides
1K views
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
by
Satoshi Nagayasu
56 slides
2.3K views
Lt ingaoho-jsonb+postgeres fdw
by
Toshi Harada
29 slides
1.3K views
20150530 pgunconf-pgbench-semi-structured-benchmark
by
Toshi Harada
39 slides
2K views
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
by
Insight Technology, Inc.
61 slides
1.4K views
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
by
Ryuichiro Munechika
26 slides
6K views
pg_bigmを触り始めた人に伝えたいこと
by
Masahiko Sawada
26 slides
1.3K views
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
53 slides
15K views
20150530 pgunconf-ycsb-jsonb
by
Toshi Harada
37 slides
952 views
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
by
kwatch
20 slides
5.2K views
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
by
NTT DATA Technology & Innovation
38 slides
1K views
10大ニュースで振り返るPGCon2015
by
NTT DATA OSS Professional Services
57 slides
4.6K views
KOF2015 PostgreSQL 9.5
by
Toshi Harada
83 slides
1.6K views
More from NTT DATA OSS Professional Services
PDF
Global Top 5 を目指す NTT DATA の確かで意外な技術力
by
NTT DATA OSS Professional Services
35 slides
10.5K views
PDF
Spark SQL - The internal -
by
NTT DATA OSS Professional Services
63 slides
5.5K views
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
by
NTT DATA OSS Professional Services
43 slides
27.8K views
PDF
Hadoopエコシステムのデータストア振り返り
by
NTT DATA OSS Professional Services
43 slides
5.2K views
PDF
HDFS Router-based federation
by
NTT DATA OSS Professional Services
16 slides
1.9K views
PDF
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
by
NTT DATA OSS Professional Services
40 slides
8.5K views
PDF
Apache Hadoopの新機能Ozoneの現状
by
NTT DATA OSS Professional Services
35 slides
6.3K views
PDF
Distributed data stores in Hadoop ecosystem
by
NTT DATA OSS Professional Services
52 slides
5.7K views
PDF
Structured Streaming - The Internal -
by
NTT DATA OSS Professional Services
38 slides
5.2K views
PDF
Apache Hadoopの未来 3系になって何が変わるのか?
by
NTT DATA OSS Professional Services
48 slides
7.3K views
PDF
Apache Hadoop and YARN, current development status
by
NTT DATA OSS Professional Services
27 slides
2.6K views
PDF
HDFS basics from API perspective
by
NTT DATA OSS Professional Services
39 slides
3K views
PDF
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
by
NTT DATA OSS Professional Services
21 slides
3.7K views
PDF
20170303 java9 hadoop
by
NTT DATA OSS Professional Services
26 slides
3.6K views
PPTX
ブロックチェーンの仕組みと動向(入門編)
by
NTT DATA OSS Professional Services
30 slides
14.4K views
PDF
Application of postgre sql to large social infrastructure jp
by
NTT DATA OSS Professional Services
35 slides
1.8K views
PDF
Application of postgre sql to large social infrastructure
by
NTT DATA OSS Professional Services
35 slides
1K views
PDF
Apache Hadoop 2.8.0 の新機能 (抜粋)
by
NTT DATA OSS Professional Services
8 slides
3.2K views
PDF
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
by
NTT DATA OSS Professional Services
22 slides
10.1K views
PDF
商用ミドルウェアのPuppet化で気を付けたい5つのこと
by
NTT DATA OSS Professional Services
26 slides
2.2K views
Global Top 5 を目指す NTT DATA の確かで意外な技術力
by
NTT DATA OSS Professional Services
35 slides
10.5K views
Spark SQL - The internal -
by
NTT DATA OSS Professional Services
63 slides
5.5K views
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
by
NTT DATA OSS Professional Services
43 slides
27.8K views
Hadoopエコシステムのデータストア振り返り
by
NTT DATA OSS Professional Services
43 slides
5.2K views
HDFS Router-based federation
by
NTT DATA OSS Professional Services
16 slides
1.9K views
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
by
NTT DATA OSS Professional Services
40 slides
8.5K views
Apache Hadoopの新機能Ozoneの現状
by
NTT DATA OSS Professional Services
35 slides
6.3K views
Distributed data stores in Hadoop ecosystem
by
NTT DATA OSS Professional Services
52 slides
5.7K views
Structured Streaming - The Internal -
by
NTT DATA OSS Professional Services
38 slides
5.2K views
Apache Hadoopの未来 3系になって何が変わるのか?
by
NTT DATA OSS Professional Services
48 slides
7.3K views
Apache Hadoop and YARN, current development status
by
NTT DATA OSS Professional Services
27 slides
2.6K views
HDFS basics from API perspective
by
NTT DATA OSS Professional Services
39 slides
3K views
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
by
NTT DATA OSS Professional Services
21 slides
3.7K views
20170303 java9 hadoop
by
NTT DATA OSS Professional Services
26 slides
3.6K views
ブロックチェーンの仕組みと動向(入門編)
by
NTT DATA OSS Professional Services
30 slides
14.4K views
Application of postgre sql to large social infrastructure jp
by
NTT DATA OSS Professional Services
35 slides
1.8K views
Application of postgre sql to large social infrastructure
by
NTT DATA OSS Professional Services
35 slides
1K views
Apache Hadoop 2.8.0 の新機能 (抜粋)
by
NTT DATA OSS Professional Services
8 slides
3.2K views
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
by
NTT DATA OSS Professional Services
22 slides
10.1K views
商用ミドルウェアのPuppet化で気を付けたい5つのこと
by
NTT DATA OSS Professional Services
26 slides
2.2K views
JSONBはPostgreSQL9.5でいかに改善されたのか
1.
Copyright © 2015
NTT DATA Corporation 2015年6月26日 株式会社 NTTデータ JSONBはPostgreSQL9.5でいかに改善されたのか? 今後の展望は? MyNA・JPUG合同DB勉強会 in 東京
2.
2Copyright © 2015
NTT DATA Corporation PostgreSQL エバンジェリスト@ NTT データ 社内 PostgreSQL 営業・技術支援 GresCube 開発・サポート PostgreSQL コミッタ 全世界で20名、日本人で3人目 PostgreSQL のコア機能を開発 レプリケーション(非同期 / 同期 / カスケード) トランザクションログ圧縮 pg_bigm(全文検索モジュール) 藤井 雅雄 @fujii_masao
3.
3Copyright © 2015
NTT DATA Corporation PostgreSQL 開発者@ NTT データ 社内 PostgreSQL 営業・技術支援 GresCube 開発・サポート PostgreSQL のコア機能を開発 レプリケーション運用性向上 REINDEX SCHEMA / VERBOSE pgbench(ベンチマークツール)の改善 pg_bigm(全文検索モジュール) コア機能へのパッチレビューア 澤田 雅彦 @sawada_masahiko
4.
4Copyright © 2015
NTT DATA Corporation 本日は Event Title Tutorial NoSQL on ACID Talk Update and Delete operations for jsonb Rethinking JSONB Unconference Direction of json and jsonb PGConで話題となったJSONB型の新機能や今後の展望についてご紹介
5.
5Copyright © 2015
NTT DATA Corporation INDEX PostgreSQLがサポートするNoSQL機能の振り返り 次期メジャーバージョン9.5でのJSONB型の新機能 JSONB型の今後の開発展望について
6.
Copyright © 2015
NTT DATA Corporation 6 PostgreSQLがサポートするNoSQL機能の振り返り
7.
7Copyright © 2015
NTT DATA Corporation PostgreSQLでできるNoSQLっぽいこと XML (8.2~) hstore (8.2~) JSON (9.2~) JSONB (9.4~) FDWで連携 (8.4~) <foo bar=‘abc’>hoge</foo> “foo” => “bar” {“abc” : “foo”} mongo_fdw, redis_fdw PostgreSQLでは様々な方法で半構造化データを取り扱い可能
8.
8Copyright © 2015
NTT DATA Corporation PostgreSQLにおけるJSON JSONデータ { "id":1, "name":"鈴木", "address":"東京", "birth_day":"1970-01-01“ } CREATE TABLE tbl ( data JSON); key value PostgreSQLではJSONデータを専用データ型に格納可能
9.
9Copyright © 2015
NTT DATA Corporation PostgreSQLにおけるJSON CREATE TABLE hoge (data JSON); INSERT INTO hoge VALUES (' {"name" : "PostgreSQL", "type" : "DBMS", "developer" : [{"name" : "Sawada", "age" : "25"}, {"name" : "Fujii", "age" : "55"}]} '); SELECT data->'type', ((data->'developer')->1)->'name' FROM hoge; ?column? | ?column? ----------+---------- "DBMS" | "Fujii" (1 row)
10.
1Copyright © 2015
NTT DATA Corporation PostgreSQLにおけるJSONの歴史 v9.2 (2012年) v9.3 (2013年) v9.4 (2014年) v9.5 TEXT型 + 構文チェッカ 利用可能な関数と演算子 はわずか 演算子4個追加 要素抽出の演算子(->) 関数10個追加 JSONから行への変換 バイナリ形式 + 構文チェッカ GINインデックス対応 JSON型 サポート JSONB型 サポート !? 関数と演算子の 充実化
11.
1Copyright © 2015
NTT DATA Corporation JSON型とJSONB型の比較 JSON型 JSONB型 利用可能 バージョン 9.2以降 9.4以降 格納方式 テキスト形式 データをそのままの形で格納 バイナリ形式 不要な空白の削除、重複キーの除去、 バイナリ変換を行った上で格納 インデックス Btree式インデックス Btree式インデックス GIN 利用可能な 演算子 要素抽出の演算子のみ 要素抽出に加えて、比較・包含の演算子 検索性能 低速 検索時にテキストのパースが必要 GIN未対応 高速 パース不要 GIN対応済 更新性能 高速 格納時のオーバーヘッドが小さい 低速 格納時のオーバーヘッドが大きい
12.
1Copyright © 2015
NTT DATA Corporation JSONBのGINインデックス 作成可能なGINインデックスは2種類 デフォルト CREATE INDEX idx ON hoge USING gin (data); jsonb_path_ops CREATE INDEX idx ON hoge USING gin (data jsonb_path_ops); @> only Faster Smaller index 演算子 説明 例 @> 「左辺のJSON」は「右辺のJSON」を包含するか? {"a" : 1, "b" : 2} @> {"b" : 2} ? 右辺のキーが左辺のJSONに存在するか? {"a" : 1, "b" : 2} ? 'b' ?& 右辺のキーのすべてが左辺のJSONに存在するか? {"a" : 1, "b" : 2} ?& ARRAY['b', 'c'] ?| 右辺のキーのいずれかが左辺のJSONに存在するか? {"a" : 1, "b" : 2} ?| ARRAY['b', 'c']
13.
1Copyright © 2015
NTT DATA Corporation JSONB + GIN による強力なインデックス検索 CREATE TABLE employee (data JSONB); CREATE INDEX employee_idx ON employee USING gin (data jsonb_path_ops); INSERT INTO employee VALUES ('{"name" : "斉藤", "age" : 27, "role" : "開発"}'), ('{"name" : "田中", "age" : 45, "role" : "営業"}'), ('{"name" : "佐藤", "age" : 33, "role" : "開発"}'), ('{"name" : "山田", "age" : 53, "role" : "経営"}'); SELECT * FROM employee WHERE data @> '{"role" : "開発"}'; QUERY PLAN ---------------------------------------------------------------------------- Bitmap Heap Scan on employee Recheck Cond: (data @> '{"role": "開発"}'::jsonb) -> Bitmap Index Scan on employee_idx Index Cond: (data @> '{"role": "開発"}'::jsonb)
14.
1Copyright © 2015
NTT DATA Corporation JSONB + GIN による強力なインデックス検索 CREATE TABLE employee (data JSONB); CREATE INDEX employee_idx ON employee USING gin (data jsonb_path_ops); INSERT INTO employee VALUES ('{"name" : "斉藤", "age" : 27, "role" : "開発"}'), ('{"name" : "田中", "age" : 45, "role" : "営業"}'), ('{"name" : "佐藤", "age" : 33, "role" : "開発"}'), ('{"name" : "山田", "age" : 53, "role" : "経営"}'); SELECT * FROM employee WHERE data @> '{"name" : "山田"}'; SELECT * FROM employee WHERE data @> '{"age" : 33}'; SELECT * FROM employee WHERE data @> '{"role" : "開発"}'; INSERT INTO employee VALUES ('{"name" : "安田", "age" : 41, "role" : "総務", "office" : "東京"}'); SELECT * FROM employee WHERE data @> '{"office" : "東京"}'; すべてのKeyに対して インデックス検索可能 新規追加のKeyに 対しても インデックス検索可能
15.
1Copyright © 2015
NTT DATA Corporation 振り返りのまとめ v9.2 (2012年) v9.3 (2013年) v9.4 (2014年) v9.5 TEXT型 + 構文チェッカ 利用可能な関数と演算子 はわずか 演算子4個追加 要素抽出の演算子(->) 関数10個追加 JSONから行への変換 バイナリ形式 + 構文チェッカ GINインデックス対応 JSON型 サポート JSONB型 サポート !? 関数と演算子の 充実化
16.
Copyright © 2015
NTT DATA Corporation 1 次期メジャーバージョン9.5でのJSONB型の新機能
17.
1Copyright © 2015
NTT DATA Corporation 充実してきたPostgreSQLのJSON(B)型ですが。。 • キーによる値の取り出し (->) • パスによる値の取り出し (#>) • 任意のパスのオブジェクトを 追加 (?) • 〃 を 更新 (?) • 〃 を 削除 (?)
18.
1Copyright © 2015
NTT DATA Corporation 9.5ではJSONBデータを操作する関数が追加 新規に追加された関数一覧 jsonb_concat() 追加 jsonb_delete() 削除 jsonb_set() 更新 jsonb_pretty() JSONB型を見やすく整形 NEW! NEW! NEW! NEW!
19.
1Copyright © 2015
NTT DATA Corporation jsonb_concat関数 SELECT jsonb_concat( '{"a": 1, "b": "hoge"}'::jsonb, '{"a": 999, "c": [1,2]}'::jsonb ); jsonb_concat -------------------------------------- {"a": 999, "b": "hoge", "c": [1, 2]} (1 row)
20.
2Copyright © 2015
NTT DATA Corporation jsonb_delete関数 SELECT jsonb_delete( '{"a": 1, "b": {"c": 999}, "d": [2,3]}'::jsonb, 'a‘ ); jsonb_delete -------------------------------- {"b": {"c": 999}, "d": [2, 3]} (1 row) SELECT jsonb_delete( '{"a": 1, "b": {"c": 999}, "d": [2,3]}'::jsonb, '{d, -1}‘ ); jsonb_delete ------------------------------------- {"a": 1, "b": {"c": 999}, "d": [2]} (1 row)
21.
2Copyright © 2015
NTT DATA Corporation jsonb_set関数 (置き換え) SELECT jsonb_set( ' {"n" : null, "a": {"b": 100}}'::jsonb, 'n', ‘999‘ ); jsonb_set --------------------------------- {"a": {"b": 100}, "n": 999} (1 row)
22.
2Copyright © 2015
NTT DATA Corporation jsonb_set関数 (ネストしたパス指定) SELECT jsonb_set( '{"a":{"b": 2}}'::jsonb, '{a, b}', '[1,2]‘ ); jsonb_set ---------------------- {"a": {"b": [1, 2]}} (1 row)
23.
2Copyright © 2015
NTT DATA Corporation jsonb_set関数 (添字に負の数) SELECT jsonb_set( '{"a": {"b": [2,3]}}'::jsonb, '{a, b, -1}', '999‘ ); jsonb_set ------------------------ {"a": {"b": [2, 999]}} (1 row)
24.
2Copyright © 2015
NTT DATA Corporation jsonb_set関数 (なかったら追加) SELECT jsonb_set( ' {"n" : null, "a": {"b": 999}}'::jsonb, 'c', ‘999‘, true ); jsonb_set ----------------------------------------- {"a": {"b": 2}, “c": 999, "n": null} (1 row)
25.
2Copyright © 2015
NTT DATA Corporation jsonb_pretty関数 SELECT jsonb_pretty('{"a":"hoge", "b":[1,2,3], "c":{"d": 999}}'::jsonb); jsonb_pretty ------------------ { + "a": "hoge", + "b": [ + 1, + 2, + 3 + ], + "c": { + "d": 999 + } + } (1 row)
26.
2Copyright © 2015
NTT DATA Corporation 演算子 JSONB型の演算子一覧 ->、 ->> キー指定で要素取得 #>、 #>> パス指定で要素取得 @>、 <@ 包含(JSONBのみ) ?、 ?|、 ?& 存在(JSONBのみ) -、-# 削除(JSONBのみ) || 追加(JSONBのみ) NEW! NEW! JSONBデータを操作する演算子が追加
27.
2Copyright © 2015
NTT DATA Corporation 削除 SELECT '{ "a" : 1, "b" : { "c" : 2 }}'::jsonb - 'b'; delta ------------- {"a": 1} SELECT '{ "a" : 1, "b" : { "c" : 2 }}'::jsonb - 'c'; delta ------------------------- {"a": 1, "b": {"c": 2}} SELECT '{"a":1, "b":{"c":2}}'::jsonb #- '{b,c}'; delta --------------------- {"a": 1, "b": {}} (1 row)
28.
2Copyright © 2015
NTT DATA Corporation 追加 SELECT '{ "a" : 1, "b" : 2}'::jsonb || '{ "c" : 3 }'; concat -------------------------- {"a": 1, "b": 2, "c": 3} SELECT '{ "a" : 1, "b" : 2}'::jsonb || '{ "a" : 3 }'; concat ------------------ {"a": 3, "b": 2}
29.
2Copyright © 2015
NTT DATA Corporation 9.5新機能まとめ 関数 演算子 -、-# 削除 || 追加 jsonb_concat() 追加 jsonb_delete() 削除 jsonb_set() 更新 jsonb_pretty() JSONB型を見やすく整形 NEW! NEW! NEW! NEW! NEW! NEW!
30.
Copyright © 2015
NTT DATA Corporation 3 JSONB型の今後の開発展望について
31.
3Copyright © 2015
NTT DATA Corporation 今後のはなし JSONB型の関数の拡充 次期バージョンにむけてJSONB型の関数の拡充が進行中。 さらなる利便性の向上に期待! - Update and Delete operations for jsonb - by Andrew Dunstan at PGCon 2015
32.
3Copyright © 2015
NTT DATA Corporation 今後のはなし 検索機能の向上 JSONB型を使ったクエリは書きにくい? 次期バージョンに向けて改善が進められています! - Rethinking JSONB - by Alexander Korotkov, Konstantin Knizhnik, Oleg Bartunov at PGCon 2015
33.
3Copyright © 2015
NTT DATA Corporation 検索機能の向上 例えば、配列がネストされた複雑なデータの場合。 SELECT jsonb_pretty( ‘{"department": [{"staff": [{"name": “hoge", "title": “chief”}]}]}’ ); jsonb_pretty ------------------------------------- { + "department": [ + { + “staff”: [ + { + "name": “hoge", + "title": “chief" + } + ] + } + ] + }
34.
3Copyright © 2015
NTT DATA Corporation 検索機能の向上 「name」がhoge、「title」がmanagerまたはchiefのデータを探そうとすると。。 SELECT * FROM company WHERE jb->’department’->0->’staff’->0->’name’ = ‘hoge’ AND ( jb->’department’->0->’staff’->0->’title’ = ‘manager’ OR jb->’department’->0->’staff’->0->’title’ = ‘chief’ ) SELECT * FROM company WHERE ( jb->’department’->0->’staff’->0->’name’ = ‘hoge’ AND jb->’department’->0->’staff’->0->’title’ = ‘manager’ ) OR ( jb->’department’->0->’staff’->0->’name’ = ‘hoge’ AND jb->’department’->0->’staff’->0->’title’ = ‘chief’ ) jsonb_pretty ------------------------------------------- { + "department": [ + { + “staff”: [ + { + "name": “hoge", + "title": “chief" + } + ] + } + ] + }
35.
3Copyright © 2015
NTT DATA Corporation 検索機能の向上 「name」がhoge、「title」がmanagerまたはchiefのデータを探そうとすると。。 SELECT * FROM company as c WHERE EXISTS ( SELECT 1 FROM ( SELECT jsonb_array_elements(t1.col1->’staff’) as col2 FROM ( SELECT jsonb_array_elements(jb->’department’) as col1 FROM company ) as t1 ) as t2 WHERE t2.col2 ->> ‘name’ = ‘hoge’ AND t2.col2 ->> ‘title’ IN (‘manager’, ‘chief’) ); jsonb_pretty ------------------------------------------- { + "department": [ + { + “staff”: [ + { + "name": “hoge", + "title": “chief" + } + ] + } + ] + }
36.
3Copyright © 2015
NTT DATA Corporation 検索機能の向上 New Syntax : { ANY | EACH } { ELEMENT | KEY | VALUE | VALUE ANYWHERE } OF container AS alias SATISFIES (expression) SELECT * FROM company WHERE ANY ELEMENT OF jb->’department’ AS d SATISFIES ( ANY ELEMENT OF d->’staff’ AS s SATISFIES ( s ->> ’name’ = ‘hoge’ AND s ->> ‘title’ IN (‘manager’, ‘chief’) ) );
37.
3Copyright © 2015
NTT DATA Corporation 今後のはなし JSONB型の圧縮 JSONB型はサイズが大きくなりがち。 データサイズについての改善も進められています! - Rethinking JSONB - by Alexander Korotkov, Konstantin Knizhnik, Oleg Bartunov at PGCon 2015
38.
3Copyright © 2015
NTT DATA Corporation まとめ 9.5でJSONB型データの操作がより便利に! 9.6以降もさらなる進化に期待!
39.
Copyright © 2011
NTT DATA Corporation Copyright © 2015 NTT DATA Corporation