MySQL・PostgreSQLユーザーグループ(MyNA・JPUG)合同DB勉強会 in 東京
にピザに釣られて参加してきた。(初勉強会)
@soudai1025 さんにまとめ書きなYO!とお尻ペンペンされたのでまとめてみる。
以下当日のスライドリンク:
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
Postgre sqlから見るnosql
JSONBはPostgreSQL9.5でいかに改善されたのか
DynamoDBの話(仮)
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
Handlerさんコンニチワ
講演内容:
・MySQL、PostgreSQLなどRDBMS本体とプラグインなどの概要
・DB設計をするにあたっての考え方
・RDBMSとNoSQLの違い、NoSQLの使いどころ
RDBMSとは、トランザクションや正規化理論・制約などでデータの矛盾が生じるのを防ぎ、正確性を保証するシステムであり、一方NoSQLはおおざっぱにはRDBMS以外のものだがシンプルな構造でデータの正確性はない。
それではどうするかというと、アプリケーション側の実装でカバーするしかなく、それはとても大変なコストがかかる(やだ困る!)
なので最近流行っているからといってNoSQLを単体で使うのではなく、基本的にはRDBMSを使用し、必要な部分はNoSQLでカバーをする手法をとるとよい。(レンガで家を建てて隙間をパテで覆う、そんなイメージを思い浮かべた)
そのためにはデータをどのように持つか、最初に論理的な設計をしてから物理的な設計をするという順番を守るのはとても大切である。
・PostgreSQL9.5での新機能紹介(JSONデータの扱い方)
・PostgreSQLとNoSQLの連携(外部データラッパーの使用)
・MySQL5.7(RC)とHTTP Plugin for MySQL
RDBMSとNoSQLの組み合わせを主にJSONデータを用いてのデモ。
PostgreSQLは9.2からJSON(テキスト型)、9.4からJSONB(バイナリ型)を扱えるようになり、9.5からさらにJSON周りの関数が追加され、JSONB型データの操作がより簡単に行えるようになるとのこと。
PostgreSQLは外部データラッパー(FDW)を用いることで、外部のデータをあたかも内部に持っているかのように使えるようになる。対象はRDB・NoSQLを問わず、さらにはGitログの結果やグーグルの検索結果なども扱える。なんかすごい。こんな柔軟でいいの?
HTTP Plugin for MySQLとは、まだ実験室版(RC)ではあるもののURLから決められた形式で記述したSQLを実行して結果をJSON形式で受け取れるようになるプラグイン。
参加してみて:
今まで業務上では色んなプロジェクトで色んなDB使って、広く浅く、調べながらSQL書いたりする程度の知識でした。それぞれの特徴とか何が出来るかといったことはまったく知らなかったので、かなり盛りだくさん具だくさんな内容でした。知恵熱出る!ぼくミジンコでしたすみません。でもレベルを知れたのはいいこと(と前向きに考えてみる)。
そんなnoobなので、多分このまとめも理解が浅かったり取りこぼしとか勘違いあるかもです。。