2023年夏のデータベースの学習

2023年夏はNoSQLを中心に学習

今年の夏はこれまで存在は知っていたけど内容をよく知らなかったNoSQLについて学ぶことにしたので、実際に書籍を2冊読むことを通して学習をしてみた。今回読んだ書籍は上記の写真に掲載の以下の2冊。

  • RDB技術者のためのNoSQLガイド
  • 実践Redis入門

上記について簡単な書評を書いて所感をまとめておく。

書評

RDB技術者のためのNoSQLガイド

RDB技術者のためのNoSQLガイドは2016年の書籍ということでもう7年ほど前の書籍ということで、かなり内容は古い可能性があるので、最新の状況とは乖離している部分は少なからずあるとは思うけど、様々なNoSQLと呼ばれるデータベースを並列に並べてそれぞれについて言及されている書籍だったので、幅広く学ぶことができたと思う。ドキュメントDBはJSONを扱うデータベースなんだとか、ACID特性だけじゃなくBASE特性という言葉があるとか、色々知らないことを知ることが理解できてよかったと思う。

本書でもRedisについて触れていたけど、Redisについは後ほど記載する書籍で詳しく学ぶことができたので良かったと思う。それ以外に、Cassandra がワイドカラムのKVSということも分かったし、Facebook製だということを理解できたのもよかった。Hadoopというキーワードの意味するところはまだ理解は浅いけど、Hadoopで利用される列指向のHBaseというデータベースがあるということが理解できたものよかった。ドキュメントDBであるMongoDBについて学べたのも良かった。私が実務で使う可能性がありそうなものは取り急ぎ上記の4つくらいだと思うので、適材適所で使い分けていきたいと思った。

実践Redis入門

実践Redis入門の方は非常に詳しく書かれている書籍だったので、大変勉強になった。その中でも基本的なデータ型など仕様の部分も勉強になったけど、数学的な難しさなどもあって理解しきれなかった箇所もあった。また、アプリケーションの実装例みたいなものを掲載していただいていたので、具体的にどういうケースで利用できるのかのイメージが湧いたのは大きかった。実装サンプルとして、PHP、Ruby、Pythonの3言語が取り上げられており、自分の実務とも近しいと感じたので親しみを覚えた。

運用管理、トラブルシューティングについては、実際に運用上の課題にぶち当たってから学習しようと思えたので、今回は全体にざっと目を通した程度だ。その後ろの章であるレプリケーション、Redisクラスターなども、事業を拡大するタイミングまでは利用することはないと思ったので一旦ざっと目を通した程度になっている。今後、Redisを使う機会があって、実際に必要になった際のために取っておくことにした。

高機能・高性能なRDBは現役だけど、適材適所でNoSQLも検討すると良さそう

RDBは非常に便利だし、今後アプリを作る際に土台になるデータベースとしてはAWSのRDSを利用した構築がデフォルトになると自分自身でそう感じている。それでも、スキーマレスなMongoDBやCassandraやRedisなどのKVS、Hadoop用途のHbaseなど、今後場合によっては利用する機会があると感じたデータベースもあったので、提案できそうな箇所では適宜提案をしていこうと思った。

自社開発においては、必要になったタイミングでそれらを利用しようと思うし、特にRedisについては、パフォーマンスの改善が必要になるケースがあると利用する機会は確かに今後ありそうな感じはしているので、RDB直接だとパフォーマンスに難があるケースに向けていつでも使えるように準備をしていきたいと思った。業務アプリの場合にはそこまで必要とされるケースも少ないかもしれないけれど、SI会社のお客様先にも提案ができると思う。

今年の秋からの自社製品開発に向けて、着実に準備を進めていこう。データベースもRDB以外の選択肢を選べるようになったことで選択肢は確実に広がったので、より良い開発体験に向けて一歩ずつ歩を進めていきたいと思う。