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
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
NS
Uploaded by
NTT DATA OSS Professional Services
PDF, PPTX
9,678 views
JSONBはPostgreSQL9.5でいかに改善されたのか
MyNA・JPUG合同DB勉強会 in 東京 発表量 『JSONBはPostgreSQL9.5でいかに改善されたのか』
Technology
◦
Read more
6
Save
Share
Embed
Embed presentation
Download
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
21
/ 39
22
/ 39
23
/ 39
24
/ 39
25
/ 39
26
/ 39
27
/ 39
28
/ 39
29
/ 39
30
/ 39
31
/ 39
32
/ 39
33
/ 39
34
/ 39
35
/ 39
36
/ 39
37
/ 39
38
/ 39
39
/ 39
More Related Content
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
by
NTT DATA Technology & Innovation
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
by
NTT DATA Technology & Innovation
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
by
NTT DATA Technology & Innovation
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
by
NTT DATA Technology & Innovation
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
by
NTT DATA Technology & Innovation
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
by
NTT DATA Technology & Innovation
What's hot
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
PDF
爆速クエリエンジン”Presto”を使いたくなる話
by
Kentaro Yoshida
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
by
NTT DATA OSS Professional Services
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
PPTX
Apache Avro vs Protocol Buffers
by
Seiya Mizuno
PDF
これからLDAPを始めるなら 「389-ds」を使ってみよう
by
Nobuyuki Sasaki
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
by
NTT DATA Technology & Innovation
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
PDF
カスタムプランと汎用プラン
by
Masao Fujii
PDF
単なるキャッシュじゃないよ!?infinispanの紹介
by
AdvancedTechNight
PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
by
Kouhei Sutou
PDF
DynamoDBの初心者に伝えたい初めて触るときの勘所
by
Ryo Sasaki
PDF
例外設計における大罪
by
Takuto Wada
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
PDF
KafkaとPulsar
by
Yahoo!デベロッパーネットワーク
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
爆速クエリエンジン”Presto”を使いたくなる話
by
Kentaro Yoshida
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
マイクロサービス 4つの分割アプローチ
by
増田 亨
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
by
NTT DATA OSS Professional Services
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
Apache Avro vs Protocol Buffers
by
Seiya Mizuno
これからLDAPを始めるなら 「389-ds」を使ってみよう
by
Nobuyuki Sasaki
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
2025年現在のNewSQL (最強DB講義 #36 発表資料)
by
NTT DATA Technology & Innovation
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
カスタムプランと汎用プラン
by
Masao Fujii
単なるキャッシュじゃないよ!?infinispanの紹介
by
AdvancedTechNight
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
by
Kouhei Sutou
DynamoDBの初心者に伝えたい初めて触るときの勘所
by
Ryo Sasaki
例外設計における大罪
by
Takuto Wada
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
KafkaとPulsar
by
Yahoo!デベロッパーネットワーク
Similar to JSONBはPostgreSQL9.5でいかに改善されたのか
PDF
PGCon.jp 2014 jsonb-datatype-20141205
by
Toshi Harada
PDF
PostgreSQL 9.5 新機能紹介
by
NTT DATA OSS Professional Services
PDF
Jpug study-jsonb-datatype-20141011
by
Toshi Harada
PDF
MyNA JPUG study 20160220-postgresql-json-datatype
by
Toshi Harada
PDF
Chugokudb study-20150131
by
Toshi Harada
PDF
JSONB型でpostgresをNoSQLっぽく使う
by
Yuki Takeichi
PDF
Postgre sql9.3新機能紹介
by
Daichi Egawa
PDF
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
PDF
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
by
Satoshi Nagayasu
PDF
Lt ingaoho-jsonb+postgeres fdw
by
Toshi Harada
PDF
20150530 pgunconf-pgbench-semi-structured-benchmark
by
Toshi Harada
PDF
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
by
Insight Technology, Inc.
PDF
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
by
Ryuichiro Munechika
PDF
pg_bigmを触り始めた人に伝えたいこと
by
Masahiko Sawada
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
PDF
20150530 pgunconf-ycsb-jsonb
by
Toshi Harada
PDF
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
by
kwatch
PDF
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
by
NTT DATA Technology & Innovation
PDF
10大ニュースで振り返るPGCon2015
by
NTT DATA OSS Professional Services
PDF
KOF2015 PostgreSQL 9.5
by
Toshi Harada
PGCon.jp 2014 jsonb-datatype-20141205
by
Toshi Harada
PostgreSQL 9.5 新機能紹介
by
NTT DATA OSS Professional Services
Jpug study-jsonb-datatype-20141011
by
Toshi Harada
MyNA JPUG study 20160220-postgresql-json-datatype
by
Toshi Harada
Chugokudb study-20150131
by
Toshi Harada
JSONB型でpostgresをNoSQLっぽく使う
by
Yuki Takeichi
Postgre sql9.3新機能紹介
by
Daichi Egawa
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
by
Satoshi Nagayasu
Lt ingaoho-jsonb+postgeres fdw
by
Toshi Harada
20150530 pgunconf-pgbench-semi-structured-benchmark
by
Toshi Harada
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
by
Insight Technology, Inc.
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
by
Ryuichiro Munechika
pg_bigmを触り始めた人に伝えたいこと
by
Masahiko Sawada
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
20150530 pgunconf-ycsb-jsonb
by
Toshi Harada
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
by
kwatch
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
by
NTT DATA Technology & Innovation
10大ニュースで振り返るPGCon2015
by
NTT DATA OSS Professional Services
KOF2015 PostgreSQL 9.5
by
Toshi Harada
More from NTT DATA OSS Professional Services
PDF
Global Top 5 を目指す NTT DATA の確かで意外な技術力
by
NTT DATA OSS Professional Services
PDF
Spark SQL - The internal -
by
NTT DATA OSS Professional Services
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
by
NTT DATA OSS Professional Services
PDF
Hadoopエコシステムのデータストア振り返り
by
NTT DATA OSS Professional Services
PDF
HDFS Router-based federation
by
NTT DATA OSS Professional Services
PDF
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
by
NTT DATA OSS Professional Services
PDF
Apache Hadoopの新機能Ozoneの現状
by
NTT DATA OSS Professional Services
PDF
Distributed data stores in Hadoop ecosystem
by
NTT DATA OSS Professional Services
PDF
Structured Streaming - The Internal -
by
NTT DATA OSS Professional Services
PDF
Apache Hadoopの未来 3系になって何が変わるのか?
by
NTT DATA OSS Professional Services
PDF
Apache Hadoop and YARN, current development status
by
NTT DATA OSS Professional Services
PDF
HDFS basics from API perspective
by
NTT DATA OSS Professional Services
PDF
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
by
NTT DATA OSS Professional Services
PDF
20170303 java9 hadoop
by
NTT DATA OSS Professional Services
PPTX
ブロックチェーンの仕組みと動向(入門編)
by
NTT DATA OSS Professional Services
PDF
Application of postgre sql to large social infrastructure jp
by
NTT DATA OSS Professional Services
PDF
Application of postgre sql to large social infrastructure
by
NTT DATA OSS Professional Services
PDF
Apache Hadoop 2.8.0 の新機能 (抜粋)
by
NTT DATA OSS Professional Services
PDF
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
by
NTT DATA OSS Professional Services
PDF
商用ミドルウェアのPuppet化で気を付けたい5つのこと
by
NTT DATA OSS Professional Services
Global Top 5 を目指す NTT DATA の確かで意外な技術力
by
NTT DATA OSS Professional Services
Spark SQL - The internal -
by
NTT DATA OSS Professional Services
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
by
NTT DATA OSS Professional Services
Hadoopエコシステムのデータストア振り返り
by
NTT DATA OSS Professional Services
HDFS Router-based federation
by
NTT DATA OSS Professional Services
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
by
NTT DATA OSS Professional Services
Apache Hadoopの新機能Ozoneの現状
by
NTT DATA OSS Professional Services
Distributed data stores in Hadoop ecosystem
by
NTT DATA OSS Professional Services
Structured Streaming - The Internal -
by
NTT DATA OSS Professional Services
Apache Hadoopの未来 3系になって何が変わるのか?
by
NTT DATA OSS Professional Services
Apache Hadoop and YARN, current development status
by
NTT DATA OSS Professional Services
HDFS basics from API perspective
by
NTT DATA OSS Professional Services
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
by
NTT DATA OSS Professional Services
20170303 java9 hadoop
by
NTT DATA OSS Professional Services
ブロックチェーンの仕組みと動向(入門編)
by
NTT DATA OSS Professional Services
Application of postgre sql to large social infrastructure jp
by
NTT DATA OSS Professional Services
Application of postgre sql to large social infrastructure
by
NTT DATA OSS Professional Services
Apache Hadoop 2.8.0 の新機能 (抜粋)
by
NTT DATA OSS Professional Services
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
by
NTT DATA OSS Professional Services
商用ミドルウェアのPuppet化で気を付けたい5つのこと
by
NTT DATA OSS Professional Services
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
Download