どうしてこうやってイベント後の数日経ってからしかかけないのか自分でも全くわからない。。。
というのはおいておいて、OSSの2大RDBMSの合同勉強会に行ってきた話。
会場はDMM.comでした。
開始前の会場の様子。
社内のオープンスペースだったのだけど、昼から夕方にかけての勉強会だったことも会って、いろんな人が周囲を通って辛かった。。。
今回も自分的メモとして発表内容を書いていきます。
・データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
by 奥野さん
nippondanji.blogspot.jp
1. データモデルとは
データの論理的な表現
データを表現するためにどんな方法が使えるか
データ設計のことではない
一般的な「データモデル」データの論理的な表現、データの設計
今日話すのはERD(ER図)ではなくリレーショナルモデル。
2. データモデルと演算
データの表現方法 ≒ 格納方法
どのように出し入れするかが重要
簡単かつ的確に操作する
データの型によって用意された演算を適切につかうべき
3. 様々なデータモデル
リレーショナル、グラフ、階層型、キーバリュー、オブジェクト、ドキュメント
双方向で考える
そのデータモデルはどのような演算が得意か
アプリケーションが必要とする演算はなにか
逸脱した部分も状況に応じて使っていく
1つの製品では足りない!
データの同期が問題
1つの製品で
複数のデータモデルを扱えるようになってきている
4. 正しいデータモデル
正しい答えがほしいからデータベースを使う。
データの正しさとは?
同時アクセス時の整合性
クラッシュリカバリ
正規化理論
重複を排除することによる理論的な矛盾の回避
制約
NoSQLでは??
データの正しさの保証はアプリケーションに委ねられる
5. 実装について意識する
論理的な表現=データモデル
物理的な表現=実装
ex)
・データがテーブルに格納される
・高速のためにメモリ上にキャッシュされる
・インデックスによって高速にアクセスできる
↑これらは実装であって、データモデルではない
実装について知ることの意義
コンピュータ上で仕事をするのはプログラムそのもの。
プログラムは思ったとおりではなく書いたとおりに動く
仕事の量を見積もるため
I/O、メモリ、CPUをどれくらいのコストを必要とするのか
実装とデータモデルの混同はダメ
データモデルに沿って論理データの設計がある。
論理設計 > 物理実装
6. スケーラビリティに着いての課題
マシンの能力には限界がある
デモデータベースに求められるのは青天井
分散処理における課題
どのようにデータを分散するか
自分で分散するのか
シャーディング
コンシステントハッシュ
データモデルが保たれないケースをどうするか
シャードにまたがった結合は出来ない
どのようにデータを同期するか
7. システムへの要求は絶えず変化する
スモールスタートからユーザの激増
ベータ版からの正式リリース
規模が大きくなりリソースの枯渇
道具も絶えず変化する
製品の進化
ハードウェアの進化
常に手の内のカードはアップデートしておく
データモデル
データモデルの垣根を超えることは非常に難しい
新しいソフトウェア製品
ハードウェアの進化
他社の事例
本当に次の手をうつ必要があるのか?NoSQLでやる必要があるのか?
結論:NoSQLは必要か? => YES!!
リレーショナルモデルだけでは全ての要件を満たすのは難しい。
しっかりとした計画を持ってNoSQLの利用を。
・PostgreSQLからみるSQL (FDWの話)
by 曽根さん
テーマ「RDBの限界を感じたことありませんか?」
木構造とかグラフ型はRDBで表現するの辛いよね
ー> 無理にPostgreSQL内でやらないで外部データラッパに任せよう!
1. 自己紹介
(略)
2. 外部データラッパとは
FDWとは
外部データにテーブルと同じように
SQLでアクセスできる Where, order by, group byとかも使える
更新や削除もできる
メインはPostgre to Postgre
3. 外部データラッパを使う
デモ。デモ怖い。動画でとっておくべきか。。。
4. 外部データラッパを作る
Multicorn
まとめ:
外部の世界につなげて便利
当然オーバヘッドある(データ大きかったり通信の遅延はなかなか)
・JSONBはPostgreSQL9.5でいかに改善されたのか?今後の展望は?
藤井さん、澤田さん
半構造化データの取扱の話
体調悪くて聞けず。。。((((;゚Д゚))))
DyanamoDBとは
完全マネージド型のNoSQLデータベースサービス
〜DyanamoDBの紹介〜
梶山さん
開発始まって20年
sunが買収されて5年
(早くてはっきり聞き取れなかったので、間違ってるかも)
MySQL5.6日本語マニュアルがついにできた
MySQL Labsで先進的な機能や実験的な仕様をいち早く公開している
URLアクセスで
SQLを実行させたりォオー!!(゚д゚屮)屮
@yoku0825さん
体調悪くて聞けず、、、
個人的には"データベース実践入門"の著者であり、漢のコンピュータ道のHPでもよくお世話になる奥野さんを拝めて面白かったです。割りと怖そうな人だと勝手に思っていたけど、イメージより優しそうな人だった(っ・ω・)っ
奥野さんの話は、MySQLやPostgreSQLとかって話ではなかく、NoSQL流行ってるけど、RDB使う意味って?という疑問に対する模範解答のような発表で、最初は「あれ?」となったんだけど、その後の発表内容も割りとNoSQLをどう取り込んでいくか見たいな内容も多かったので、発表の最初に来た意味を後から感じさせられて、「おおお」となっています。
森さんのDynamoDBの話はこのイベントの後に行ったJAWS-UGのイベントでもDynamoDBの論文紹介の発表を聞いたので、DynamoDBとの変な縁を感じた一日になりました。(今使う機会ないけど、、、)
MySQLがHTTPのエンドポイント持つのってどういうユースケース想定してるのか結構疑問だった。梶山さんもデモしながら「苦い顔が多いのわかります。」みたいなことを行っていたので、どうなんだろう?
便利なのかもしれないけど、運用とか管理考えるとかなり疑問だった。。。
全体を通して体調が悪かったです。。。腹痛的な面でo(`ω´*)o
@yoku0825さんの発表とかtwitterとかslideshareでよく見かけるので、特に聞きたかったんだけど、最悪。
ー結論ー
健康大事。⊂゚U┬───┬~