今日(5月10日)MySQL Innovation Day Tokyoに午前中行ってきて、
を聞いてきたのでメモメモ(ちょっとはじめ、遅れたので動画の前はわからない)
■イベント概要紹介
動画
MySQL Document Database
RDBだけでなく、ドキュメントも
2007年くらいからNoSQL
Xプロトコル Googleのプロトコルバッファで実装
MySQL 5.7 GA
・多くの機能が実装
・レビュー
5.6の3倍の速度
レプリケーション改善グループレプリケーション:プラグインで予定
MySQL5.7 JSONサポート
・スキーマレスで入っている
・テーブルからもJSON作れる
グループレプリケーション
・まだGAにはなっていないけど、プラグインで
・マスターサーバーの冗長化できる
・管理:オープンソースもあるけど・・・
レプリケーションモニターが使える
マルチソース、サーキュラー、トポロジーを容易に管理
MySQL Document Store
・Xプロトコル
・X Dev API
・MySQL Shell→メインのCLIになる
Xプロトコル
Java pythonも
・接続方法
スタンダード
memcached
→X Protocol
・セキュリティ
X Protocol
・非同期APIサポート
パフォーマンスがいい
プッシュ通知
エラー処理の設定
シャーディング:現状のコネクタではまだ
オープンスタンダード:カスタマイズ性も優れている
MySQL XDevAPI
・ステートレス
・CRUDできる
・JSON
・MySQL Connector (nodeJSも)
・ドキュメント、リレーショナル両方
MySQL Shell(GAではない)
・まだまだ不完全だけど・・
・Pythonを使う場合は、コネクターが出ていないのでMySQL Shellで
・MySQLのプロビは、このAPI経由でできる→Dockerリクエスト
・Javascript流しこめる、パイプにつなげる
MySQL Document Store
・スキーマレス・リレーショナル・ハイブリッド
・ACIDトランザクション(inno DBでうごいているので)
本日のセッション
■Key Note Introducing the MySQL Document Store
マイクさん&同時通訳 梶山さん
・新しい機能
ハイブリッド型(ドキュメントとRDB)
・MySQLはRDBとして高い品質:ACID
SQL:複雑な処理も、分析も
非常に多くの環境で利用:どこにでも、情報も簡単に、拡張性の実績
・ドキュメントデータベース
RDBはすべてのアプリケーションというわけではない
スキーマを定義しないでというニーズ
高い柔軟性、高い信頼性、uptime
JSON
アプリケーションの構造に
node.js,python
・リレーショナルとドキュメント
1つの製品にまとめていく→MySQL
・基礎:MySQL5.7 JSONデータタイプ
SQLのよさをひきつづき
JSON向けのSQL関数
正式なデータ型
基本的には作りこんでいるはず
演算子
・GeneratedColumns(生成列)
演算したものを作る→インデックスも作れる
生成列→alter table→index
JSONデータに対してインデックス作れる
・生成列
STORED(格納)
参照は早くなる
テーブルの再作成
VIRTUAL
格納速くなるが
参照遅くなる
インデックスはバーチャルに制限
・ドキュメントの使い道
テーブルにデータ、ドキュメントJSONで出力
関数を用意してある
ときどきぐちゃくちゃになるかも・・・きれいにマッピングできない
・JSONドキュメントコンテナーとしてのMySQL
1つの列にJSON型を使う→array等、テーブルマッピング困難だったものに対応できる
・一部分だけをスキーマレス、ほかはスキーマ
JOINして1つの結果→シンプル
・The X DevAPI
SQLが複雑すぎる
開発者が必要としているメソッドを重ねる
SCRUD(select+CRUD)をするAPI
非同期処理
O/Rマッパーでなく、独自のAPI
・ドキュメントのあつまりコレクション
→コレクション操作できる
後ろにメソッドを重ねる(フリューエント)
ドキュメントデータの削除
X Session
セッション使わない操作もできる
テーブルに対する操作も用意
いまDMR(開発途上版)
・5.7.12
ドキュメントストアプラグイン(Xプラグイン)
→ひつようなら有効に
プラグインより
MySQL 8 新しい機能はプラグイン
MySQLシェル
3つの接続部品
APIのポイント
開発言語にあったAPI用意
ぜひ、フィードバック
・Connector/Node.js 1.0
あたらしいもの
非同期への処理も対応
・MySQLシェル
Python、Node.js
開発用だが、運用・管理も
・MySQL プラグイン for Visual Studio
・ドキュメント用意してある
サンプルプログラム
■MySQLドキュメントストアの紹介
・ドキュメントストア
JSON→スキーマレス
XDEV API、X protocol
mysqlxというデーモンが入るとxプロトコルしゃべれる
・X dev API
X pluginを有効にすることで
NoSQLライク Javascript,,pythonから処理
・X プロトコル
何回かも?Googleのプロトコルバッファ読んだ
大量に小さな処理
シャーディング
非同期処理
パイプライン処理:まとめて複数のコマンドを一気に投げられる
・XProtocol
ネゴシエーション
オーセンティフィケーション
実行
なにがいいの:非同期
失敗したら、すべて失敗など、エラー処理もカスタマイズできる
→デフォルトは失敗しても無視する
ネスティングもできる
・X Protocol
圧縮はもう少し:ただしプロトコルバッファはすでに無駄を排除している
→サイズ圧縮
・MySQL Shell 概要
mysqlsh
Jacascriptモード
\pyでpythonモードに
\sqlでSQLモードに
Visual studioとの連携も将来的には
標準的な言語で
・機能
クラッシックは3306ポート、他は33060
接続を登録できる
・開発API
・バッチモード
・出力フォーマット
・セッション
コネクションを作って共有できる
・バックワードコンパチビリティ
3306で接続 クラッシックでアクセス
・制約
MySQLシェルはCLIでないので、外部のシェルコマンドは呼び出せない
・将来
グループレプリケーションの設定(MySQLパブリック)
ユーティリティ→MySQL Shellでできるようにしている
Development API
・デモ
Twitter→JSON→indexつけてDBへ
・参考 プロトCでカスタマイズできる
を聞いてきたのでメモメモ(ちょっとはじめ、遅れたので動画の前はわからない)
■イベント概要紹介
動画
MySQL Document Database
RDBだけでなく、ドキュメントも
2007年くらいからNoSQL
Xプロトコル Googleのプロトコルバッファで実装
MySQL 5.7 GA
・多くの機能が実装
・レビュー
5.6の3倍の速度
レプリケーション改善グループレプリケーション:プラグインで予定
MySQL5.7 JSONサポート
・スキーマレスで入っている
・テーブルからもJSON作れる
グループレプリケーション
・まだGAにはなっていないけど、プラグインで
・マスターサーバーの冗長化できる
・管理:オープンソースもあるけど・・・
レプリケーションモニターが使える
マルチソース、サーキュラー、トポロジーを容易に管理
MySQL Document Store
・Xプロトコル
・X Dev API
・MySQL Shell→メインのCLIになる
Xプロトコル
Java pythonも
・接続方法
スタンダード
memcached
→X Protocol
・セキュリティ
X Protocol
・非同期APIサポート
パフォーマンスがいい
プッシュ通知
エラー処理の設定
シャーディング:現状のコネクタではまだ
オープンスタンダード:カスタマイズ性も優れている
MySQL XDevAPI
・ステートレス
・CRUDできる
・JSON
・MySQL Connector (nodeJSも)
・ドキュメント、リレーショナル両方
MySQL Shell(GAではない)
・まだまだ不完全だけど・・
・Pythonを使う場合は、コネクターが出ていないのでMySQL Shellで
・MySQLのプロビは、このAPI経由でできる→Dockerリクエスト
・Javascript流しこめる、パイプにつなげる
MySQL Document Store
・スキーマレス・リレーショナル・ハイブリッド
・ACIDトランザクション(inno DBでうごいているので)
本日のセッション
■Key Note Introducing the MySQL Document Store
マイクさん&同時通訳 梶山さん
・新しい機能
ハイブリッド型(ドキュメントとRDB)
・MySQLはRDBとして高い品質:ACID
SQL:複雑な処理も、分析も
非常に多くの環境で利用:どこにでも、情報も簡単に、拡張性の実績
・ドキュメントデータベース
RDBはすべてのアプリケーションというわけではない
スキーマを定義しないでというニーズ
高い柔軟性、高い信頼性、uptime
JSON
アプリケーションの構造に
node.js,python
・リレーショナルとドキュメント
1つの製品にまとめていく→MySQL
・基礎:MySQL5.7 JSONデータタイプ
SQLのよさをひきつづき
JSON向けのSQL関数
正式なデータ型
基本的には作りこんでいるはず
演算子
・GeneratedColumns(生成列)
演算したものを作る→インデックスも作れる
生成列→alter table→index
JSONデータに対してインデックス作れる
・生成列
STORED(格納)
参照は早くなる
テーブルの再作成
VIRTUAL
格納速くなるが
参照遅くなる
インデックスはバーチャルに制限
・ドキュメントの使い道
テーブルにデータ、ドキュメントJSONで出力
関数を用意してある
ときどきぐちゃくちゃになるかも・・・きれいにマッピングできない
・JSONドキュメントコンテナーとしてのMySQL
1つの列にJSON型を使う→array等、テーブルマッピング困難だったものに対応できる
・一部分だけをスキーマレス、ほかはスキーマ
JOINして1つの結果→シンプル
・The X DevAPI
SQLが複雑すぎる
開発者が必要としているメソッドを重ねる
SCRUD(select+CRUD)をするAPI
非同期処理
O/Rマッパーでなく、独自のAPI
・ドキュメントのあつまりコレクション
→コレクション操作できる
後ろにメソッドを重ねる(フリューエント)
ドキュメントデータの削除
X Session
セッション使わない操作もできる
テーブルに対する操作も用意
いまDMR(開発途上版)
・5.7.12
ドキュメントストアプラグイン(Xプラグイン)
→ひつようなら有効に
プラグインより
MySQL 8 新しい機能はプラグイン
MySQLシェル
3つの接続部品
APIのポイント
開発言語にあったAPI用意
ぜひ、フィードバック
・Connector/Node.js 1.0
あたらしいもの
非同期への処理も対応
・MySQLシェル
Python、Node.js
開発用だが、運用・管理も
・MySQL プラグイン for Visual Studio
・ドキュメント用意してある
サンプルプログラム
■MySQLドキュメントストアの紹介
・ドキュメントストア
JSON→スキーマレス
XDEV API、X protocol
mysqlxというデーモンが入るとxプロトコルしゃべれる
・X dev API
X pluginを有効にすることで
NoSQLライク Javascript,,pythonから処理
・X プロトコル
何回かも?Googleのプロトコルバッファ読んだ
大量に小さな処理
シャーディング
非同期処理
パイプライン処理:まとめて複数のコマンドを一気に投げられる
・XProtocol
ネゴシエーション
オーセンティフィケーション
実行
なにがいいの:非同期
失敗したら、すべて失敗など、エラー処理もカスタマイズできる
→デフォルトは失敗しても無視する
ネスティングもできる
・X Protocol
圧縮はもう少し:ただしプロトコルバッファはすでに無駄を排除している
→サイズ圧縮
・MySQL Shell 概要
mysqlsh
Jacascriptモード
\pyでpythonモードに
\sqlでSQLモードに
Visual studioとの連携も将来的には
標準的な言語で
・機能
クラッシックは3306ポート、他は33060
接続を登録できる
・開発API
・バッチモード
・出力フォーマット
・セッション
コネクションを作って共有できる
・バックワードコンパチビリティ
3306で接続 クラッシックでアクセス
・制約
MySQLシェルはCLIでないので、外部のシェルコマンドは呼び出せない
・将来
グループレプリケーションの設定(MySQLパブリック)
ユーティリティ→MySQL Shellでできるようにしている
Development API
・デモ
Twitter→JSON→indexつけてDBへ
・参考 プロトCでカスタマイズできる