More Related Content
Similar to MySQLドキュメントストアとCTE (20)
More from yoyamasaki (20)
MySQLドキュメントストアとCTE
- 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQLドキュメントストアとCTE
2018/10/13
Yoshiaki Yamasaki / 山﨑 由章
MySQL Global Business Unit
MySQL Senior Sales Consultant
- 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき
ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも
のではない為、購買決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
弊社の裁量により決定されます。
2
- 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL ドキュメントストアとは?
MySQLでJSONドキュメントを扱う簡単な方法
3
#1
New Feature
- 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 4
リレーショナル
データベース
ハイブリッド
データベース
ドキュメント
データベース
SQL
リレーショナルテーブル
外部キー
NoSQL
JSONドキュメント
スキーマレスJSONコレクション
- 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQLドキュメントストア: コンポーネント
• MySQL X プラグイン
• リレーショナルおよびドキュメント操作の
ためにXプロトコルを導入
• CRUD操作を標準SQL(リレーショナル表、
JSONデータ型および関数)にマップする
• X プロトコル
• 業界標準(Protobuf)に基づく新しいMySQL
クライアントプロトコル
• CRUD と SQL の両方で動作
• X DevAPI
• Xプロトコルの上でCRUDおよびSQL操作を行う
ための、非同期処理も可能な先進的なAPI
• 新しいスキーマオブジェクトとしてコレクション
を導入
• MySQL Shell
• アプリプロトタイピングのためのインタラクティブ
なX DevAPIモードを提供
• MySQL コネクタ
• X DevAPI をサポートする豊富なコネクタ
• JavaScript, Python, PHP, Java, C#, C++
5
- 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL Connectors include X Dev API
• Use SQL, CRUD APIs
スキーマレスドキュメントおよびリレーショナルテーブルに対応
- Classic APIsに加えて、これらの全てが追加されます
6
Operation Document Relational
Create Collection.add() Table.insert()
Read Collection.find() Table.select()
Update Collection.modify() Table.update()
Delete Collection.remove() Table.delete()
参照) http://dev.mysql.com/doc/x-devapi-userguide/en/crud-operations-overview.html
- 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
ドキュメントストアがどのように動作するか?
Architecture from the Application’s POV
7
フロントエンド
CRUD リクエスト + JSON
バックエンド MySQL
JSON
アプリケーション
ドキュメントストア
- 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
ドキュメントストアがどのように動作するか?
Architecture & Components
8
アプリ
ケーション
コネクタ MySQL
X プラグ
イン
DevAPI Protobuf / X Protocol / TCP/IP SQL
InnoDB
- 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL Shell
• Javascript, Python, SQL でスクリプト利用可能
• MySQLスタンダードプロトコル と Xプロトコル の両方をサポート
• ドキュメント&リレーショナルモデル
• CRUDドキュメント&リレーショナルAPI
• テーブル、JSON、タブ区切りの出力フォーマット
• インタラクティブ操作&バッチ操作
MySQLの開発と管理のためのインターフェース
9
- 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 10
CTE(Common Table Expressions)
• サブクエリの導出表 (derived table) の代替
• WITH句と呼ばれることも
• 利点
– 複雑なSQLの簡素化(可読性向上)
– パフォーマンス向上
– 再帰的なクエリの記述(階層構造のデータ参照、など)
Feature Request
from Developers
WITH t1 AS (SELECT * FROM tblA WHERE a=‘b’)
SELECT * FROM t1;
- 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 11
再帰的CTEのシンプルな例
Print 1 to 10 :
WITH RECURSIVE qn AS
( SELECT 1 AS a
UNION ALL
SELECT 1+a FROM qn WHERE a<10
)
SELECT * FROM qn;
1
2
3
4
5
6
7
8
9
10
- 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
次のセッションでは、これらの機能を利用しています
• MySQL8.0を使ってブロックチェーンを実装する
https://speakerdeck.com/masayuki14/mysql8-dot-0woshi-tuteburotukutienwoshi-zhuang-suru
12
- 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
MySQL Innovation Day 2018 秋 を開催します!!
• Oracle Open World 2018で発表された最新情報をフィードバック!!
– MySQL開発チームのVice PresidentであるTomas Ulinによる基調講演も予定しています
(同時通訳有り)
• 日時:2018年11月21日(水) 13:30~20:00
• 場所:AP新橋
• 参加費:無料
• 詳細、申込:
– 申込ページ完成次第、以下に掲載されます
https://www.oracle.com/search/events/_/N-2bu
14