
MYSQLやPostgreSQLなどのRDMSと、MongoDBやCasandraなどのNoSQL、これらは似て非なる歩み寄りはない全くの別物DBシステムですが、
その中間にあたるNewSQLについて中身を理解したくなったので、書籍を読んでみることにしました。
一体、NewSQLとは、どういう技術で、これまでのDatabaseの常識をどのくらい担保しつつ、これまで困っていた内容を改修してくれるのか・・・
興味半分、勉強全開で学習してみたいと思います。
レビュー
★★★☆☆
漫画進行はわかりやすくていいですね。
NewSQLの本質と、TiDBというNewSQLのツールの使い方紹介で解説が進んでいきます。
手元にパソコンを準備して、書かれているコマンドを打ち込みながら、体感すると、手軽に操作や環境構築は覚えられそうですね。
ノード障害や、アップデートなどで、便利にNewSQLを操作して、サービス断せずに運用できるのはよくわかったんですが、
ローカル環境でdockerを使っての構築や、TiUPではなく、Ansibleでの環境構築などの方法ももう少し詳しく書いていて欲しかったですね。
こうしたニッチな情報と、網羅性って、技術書籍において、結構重要なんだという事を改めて認識することができた気付きは悪くはないかもしれませんね。
この書籍の学びポイント
初めてのNewSQL
NewSQLは、NoSQLのスケーラビリティと、従来のSQLのリレーショナル機能をどちらも備えられた新しいタイプのSQLという事で、NewSQLと呼ばれています。
製品は、GoogleのCloudSpannerや、PingCap社のTiDBなどがあり、この書籍では、TiDBを使って、実運用の事を想定したチュートリアルが紹介されています。
リレーショナルデータベースの特徴
ACIDについての解説
・Atomic(原子性)
処理が全て正常に完了するか、または実行されないかのいずれかであり、中途半端を許容しないこと。
トランザクション処理など。
・Consistency(一貫性)
処理の前後であらかじめ定義されている制約条件を満たすこと。
代表的なものは、同じ値が複数存在しないというユニークID。
・Isolution(独立性)
処理が相互に影響し合わないこと。
同時に実行する処理が、お互いに影響を与えないこと。
・Durability(永続性)
処理の結果が失われないこと。
データベースでは、システムに障害が発生しても、確定した結果が失われない、耐障害性を持つこと。
NoSQLの特徴
基本的に1台のサーバーで動作するのに対して、NoSQLは、サーバーを増やして性能を向上させる事で柔軟なデータ形式をサポートしてきた。
・Basically Available(基本的に利用可能)
一部ノードが落ちても、システム全体は応答し続ける
完璧じゃなくても「とりあえず返す」ことを優先
例:検索結果が一部欠けててもレスポンスする
・Soft state(柔軟な状態)
データは時間とともに変わる可能性がある(確定状態じゃない)
キャッシュやレプリケーション前提のゆるい整合性
状態が「揺らぐ」ことを許容
・Eventual consistency(結果整合性)
最終的には整合する(時間差OK)
書き込み直後は不整合があってもOK
例:SNSのいいね数が端末ごとに一瞬ズレる
NewSQLの特徴
ACIDのリレーショナルを維持しながら、分散できるシステムになっている。
つまり、NewSQLは、NoSQLとSQLのいいとこどりをしたシステムと言える。
ACID準拠
トランザクションはちゃんと保証
銀行レベルの整合性もOK
分散アーキテクチャ
複数ノードでデータを管理
自動シャーディング・レプリケーション
高スケーラビリティ
ノード追加で性能が伸びる
従来RDBのボトルネックを回避
SQLがそのまま使える
既存のRDB資産が活きる
学習コストが低い
特徴のまとめ
あとがき
本書の大半は、TiBDの使い方や各種設定、操作事例などのコマンドや解説が、漫画仕立て+文章説明で書かれています。
実際のコマンドサンプルなども掲載されているので、チュートリアル本として読み進めるのがいいでしょう。
ただ、個人的には、もう少しワクワクする事例内容とか、とんでもない失敗例などについても書いてもらいたかったです。
いいことばかり書いてあるモノって、そのまま使うと必ず何かしらのデメリットがあり、実はそれを事前に学ぶことができるというのが求めていることなんですよ。
使い方などは、今時、ググtたりチャピッたりすれば、いくらでも学習できますからね。
0 件のコメント:
コメントを投稿